NotifyUtil - Global
L’include de script NotifyUtil fournit des méthodes utilitaires à utiliser lors de l’interaction avec les appels Notify et les messages SMS à l’aide de scripts côté serveur.
Pour utiliser cet include de script, vous devez activer le module d’extension Notification (com.snc.notify).
À l’aide de l’include de script NotifyUtil , vous pouvez :
- Obtenir tous les numéros de téléphone Notification et les informations Notification connexes à partir d’un enregistrement source spécifié.
- Obtenir une liste de numéros de téléphone Notify uniques.
- Déterminez s’il existe des téléconférences actives pour l’enregistrement source spécifié.
- Obtenir le numéro compatible avec SMS associé à l’utilisateur de Notification spécifié.
- Validez un numéro de téléphone Notification spécifié.
NotifyUtil : NotifyUtil()
Instancie un objet de classe NotifyUtil.
| Nom | Type | Description |
|---|---|---|
| Aucun |
Cet exemple instancie un objet NotifyUtil.
var notifyUtil = new NotifyUtil();
notifyUtil.getTelephonyProviers();
NotifyUtil : getListOfNotifyNumbersAndProviders(String sourceTable, String sourceSysId, String notifyGroupSelectorSysId, Boolean filterSMSCapableNums)
Renvoie tous les numéros de téléphone Notification et les informations Notification connexes provenant d’un enregistrement source spécifié, comme un incident.
Vous pouvez utiliser ces informations pour lancer un appel ou envoyer un SMS sur un enregistrement source particulier. Les informations renvoyées sont basées sur la configuration du cadre de travail du sélecteur de fournisseur de Notification. Pour plus d’informations, consultez Notifier
| Nom | Type | Description |
|---|---|---|
| filterSMSCapableNums | Booléen | Facultatif. Marqueur indiquant si seuls les numéros compatibles avec les SMS doivent être renvoyés. Valeurs valides :
Valeur par défaut : false |
| notifyGroupSelectorSysId | Chaîne | Facultatif. Sys_id d’un groupe Notification auquel renvoyer les numéros et les informations de Notification. Par défaut : tous les groupes |
| sourceSysId | Chaîne | Sys_id de l’enregistrement source pour lequel renvoyer les numéros et les informations de Notification. Par exemple, il peut s’agir de la sys_id d’un enregistrement dans la table Incident [incident]. |
| sourceTable | Chaîne | Nom de la table qui contient l’enregistrement source qui contient les numéros Notification souhaités et les informations. |
| Type | Description |
|---|---|
| Fournisseurs de conf | Liste des fournisseurs de services de conférence disponibles. Type de données : tableau |
| numéros | Liste d’objets, chacun décrivant un numéro Notification unique. Type de données : tableau |
| numbers.defaultFlag | Marqueur indiquant si le numéro Notification associé est le numéro par défaut. Valeurs possibles :
Type de données : booléennes |
| numbers.name | Nom ou étiquette du numéro. Type de données : chaîne |
| nombre.numéro | Numéro de Notification. Type de données : chaîne |
| numéros.shortCode | Marqueur indiquant si le numéro Notification associé est un code court. Valeurs possibles :
Type de données : booléennes |
| numbers.sysId | Sys_id du numéro de Notification. Type de données : chaîne |
Cet exemple montre comment obtenir les numéros de téléphone Notification et les informations Notification connexes à partir d’un enregistrement source spécifié.
function updateConferenceBridges(sourceTable, sourceId) {
var notifyUtil = new global.NotifyUtil();
var numbersAndProviders = notifyUtil.getListOfNotifyNumbersAndProviders(sourceTable, sourceId);
var confBridges = [];
if (numbersAndProviders.confProviders) {
numbersAndProviders.confProviders.forEach(function(provider){
confBridges.push(provider);
});
}
if (numbersAndProviders.numbers) {
numbersAndProviders.numbers.forEach(function(number){
confBridges.push(number.name);
});
}
}
NotifyUtil : getSMSNumberForUser(String userGrOrId)
Renvoie le numéro compatible avec SMS associé à l’utilisateur de Notification spécifié.
| Nom | Type | Description |
|---|---|---|
| userGROrId | Chaîne ou GlideRecord - Global | Sys_id de l’enregistrement utilisateur, situé dans la table Utilisateur [sys_user], ou le GlideRecord sys_user de l’utilisateur pour lequel renvoyer le numéro de téléphone compatible SMS. |
| Type | Description |
|---|---|
| Chaîne | Numéro de téléphone de l’utilisateur compatible avec SMS. Renvoie null si l’utilisateur spécifié n’est pas trouvé. |
Cet exemple montre comment obtenir un numéro de téléphone compatible avec les SMS à l’aide du GlideRecord associé.
var sourceRecord = new GlideRecord('incident');
sourceRecord.query();
if (sourceRecord.next()) {
var fromNumber = getFromNumber();
var nUtil = new NotifyUtil();
var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
var notifySMS = new NotifySMS();
notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
}
}
function getFromNumber() {
var prop = gs.getProperty('custom_property_name', '');
if (!prop){
return getFallbackFromNumber();
}
return prop;
}
function getFallbackFromNumber() {
var notifyNumGr = new GlideRecord("notify_number");
notifyNumGr.addActiveQuery();
notifyNumGr.addQuery('has_sms_out', 'yes');
notifyNumGr.query();
if (notifyNumGr.next()) {
return notifyNumGr.number + '';
}
return '';
}
NotifyUtil : getUniquePhoneNumbersForUsersAndGroups(Tableau de nombres, Tableau d’utilisateurs, Tableaux de groupes, Type de chaîne, booléen getData)
Renvoie une liste de numéros de téléphone Notification uniques.
Si vous ne transmettez aucun paramètre lors de l’appel, tous les numéros Notification de la table Numéro de téléphone de notification [notify_number] sont vérifiés pour détecter les doublons, chaque numéro de téléphone disponible n’apparaissant qu’une seule fois dans la liste renvoyée. Vous pouvez affiner les résultats de renvoi en spécifiant une liste d’utilisateurs ou de groupes à vérifier, ou en spécifiant un ensemble de nombres ou de types de numéros (SMS ou appels vocaux). Vous pouvez également demander que les métadonnées associées à chaque numéro soient renvoyées avec les numéros uniques. Si vous ne souhaitez pas utiliser de paramètre, passez simplement null comme espace réservé. Par exemple : return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false) ;.
| Nom | Type | Description |
|---|---|---|
| getData (en anglais seulement) | Booléen | Facultatif. Marqueur indiquant s’il faut renvoyer les métadonnées avec la liste des numéros de téléphone uniques. Valeurs valides :
Valeur par défaut : false |
| groupes | Tableau | Facultatif. Liste des groupes sys_id à vérifier. Situé dans la table Groupe [sys_user_group]. Par défaut : cocher tous les groupes. |
| numéros | Tableau | Facultatif. Liste des numéros de téléphone Notification spécifiques à vérifier. Par défaut : vérifiez tous les numéros de téléphone. |
| type | Chaîne | Facultatif. Type de numéros de téléphone à vérifier. Valeurs valides (sensibles à la casse) :
Par défaut : vérifiez tous les types de numéros de téléphone |
| utilisateurs | Tableau | Facultatif. Liste des sys_ids d’utilisateurs spécifiques à vérifier. Situé dans la table Utilisateur [sys_user]. Par défaut : cocher tous les utilisateurs |
| Nom | Description |
|---|---|
| numéros | Numéros de téléphone uniques de Notification. Type de données : tableau |
| résultat | Renvoyé uniquement si getData la valeur est définie sur vrai. Métadonnées associées à chaque numéro unique. Type de données : objet |
| numéro.résultat | Numéro de téléphone unique de Notification. Type de données : chaîne |
| result.sysId | Sys_id de l’enregistrement qui contient le numéro de téléphone de Notification. Situé dans la table Numéro de téléphone de Notification [notify_number]. Type de données : chaîne |
| type.résultat | Contient toujours « u » pour l’utilisateur. Type de données : chaîne |
| résultat.valide | Marqueur indiquant si le numéro de téléphone Notification est au format E.164 valide. Valeurs possibles :
Type de données : booléennes |
Cet exemple montre comment demander un ensemble spécifique de numéros de téléphone Notify uniques dotés d’options SMS.
var fromNumber = getFromNumber();
var toNumbers = getRecipientNumbers();
var message = 'This is an example SMS';
var sourceRecord = new GlideRecord('incident');
sourceRecord.query();
if (sourceRecord.next()) {
var notifySMS = new NotifySMS();
notifySMS.sendToNumber(fromNumber, toNumbers, message, sourceRecord);
}
function getRecipientNumbers() {
var userGr = new GlideRecord('sys_user');
userGr.addActiveQuery();
userGr.addQuery('first_name', 'STARTSWITH', 'A');
userGr.setLimit(5);
userGr.query();
var userIds = [];
while (userGr.next()) {
userIds.push(userGr.getUniqueValue());
}
if (userIds.length > 0) {
var nUtil = new NotifyUtil();
return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);
}
}
function getFromNumber() {
var prop = gs.getProperty('custom_property_name', '');
if (!prop){
return getFallbackFromNumber();
}
return prop;
}
function getFallbackFromNumber() {
var notifyNumGr = new GlideRecord("notify_number");
notifyNumGr.addActiveQuery();
notifyNumGr.addQuery('has_sms_out', 'yes');
notifyNumGr.query();
if (notifyNumGr.next()) {
return notifyNumGr.number + '';
}
return '';
}
NotifyUtil : hasActiveConferenceCalls(String sourceRecSysId)
Détermine s’il y a des téléconférences actives pour l’enregistrement source spécifié.
| Nom | Type | Description |
|---|---|---|
| sourceRecSysId | Chaîne | Sys_id de l’enregistrement pour vérifier les téléconférences actives. Par exemple, le sys_id d’un enregistrement dans la table Incident. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si des téléconférences actives sont associées à l’enregistrement spécifié. Valeurs possibles :
|
Cet exemple affiche un message d’information si des téléconférences actives sont associées à un enregistrement d’incident.
(function executeRule(current, previous /*null when async*/) {
var nUtil = new NotifyUtil();
if (nUtil.hasActiveConferenceCalls(current.getUniqueValue())) {
gs.addInfoMessage("There are active conference calls related to this Incident.");
}
})(current, previous);
NotifyUtil : validateOutboundNotifyPhoneNumber (numéro de chaîne)
Valide un numéro de téléphone Notification spécifié.
- Indique si le numéro de Notification existe dans la table Numéro de téléphone de Notification [notify_number].
- Indique si un groupe Notification est associé au numéro Notification.
- Indique si le numéro de Notification est actif.
| Nom | Type | Description |
|---|---|---|
| Numéro | Chaîne | Numéro de Notification à valider. |
| Type | Description |
|---|---|
| Aucun |
Cet exemple illustre la validation d’un numéro de notification.
var sourceRecord = new GlideRecord('incident');
sourceRecord.query();
if (sourceRecord.next()) {
var fromNumber = getFromNumber();
var nUtil = new NotifyUtil();
var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
var notifySMS = new NotifySMS();
notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
}
}
function getFromNumber() {
var prop = gs.getProperty('custom_property_name', '');
if (!prop){
return getFallbackFromNumber();
}
return prop;
}
function getFallbackFromNumber() {
var notifyNumGr = new GlideRecord("notify_number");
notifyNumGr.addActiveQuery();
notifyNumGr.addQuery('has_sms_out', 'yes');
notifyNumGr.query();
if (notifyNumGr.next()) {
return notifyNumGr.number + '';
}
return '';
}
NotifyUtil : validatePhoneNumber(numéro de chaîne)
Vérifie que le numéro spécifié est un numéro de téléphone E.164 valide.
| Nom | Type | Description |
|---|---|---|
| Numéro | Chaîne | Numéro de téléphone à valider. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si le numéro spécifié est un numéro de téléphone valide. Valeurs possibles :
|
Cet exemple illustre comment valider un numéro de téléphone.
var sourceRecord = new GlideRecord('incident');
sourceRecord.query();
if (sourceRecord.next()) {
var fromNumber = getFromNumber();
var nUtil = new NotifyUtil();
var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
var notifySMS = new NotifySMS();
notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
}
}
function getFromNumber() {
var prop = gs.getProperty('custom_property_name', '');
if (!prop){
return getFallbackFromNumber();
}
return prop;
}
function getFallbackFromNumber() {
var notifyNumGr = new GlideRecord("notify_number");
notifyNumGr.addActiveQuery();
notifyNumGr.addQuery('has_sms_out', 'yes');
notifyNumGr.query();
if (notifyNumGr.next()) {
return notifyNumGr.number + '';
}
return '';
}