NotifyUtil - Global
A inclusão de script NotifyUtil fornece métodos de utilitário a serem usados ao interagir com chamadas do Notify e mensagens SMS usando scripts do lado do servidor.
Para usar esta inclusão de script, você deve ativar o plug-in Notify (com.snc.notify).
Usando a inclusão de script NotifyUtil, você pode:
- Obtenha todos os números de telefone do Notify e informações relacionadas do Notify de um registro de origem especificado.
- Obtenha uma lista de números de telefone exclusivos do Notify.
- Determine se há chamadas em conferência ativas para o registro de origem especificado.
- Obtenha o número compatível com SMS associado ao usuário do Notify especificado.
- Valide um número de telefone do Notify especificado.
NotifyUtil - NotifyUtil()
Instancia um objeto da classe NotifyUtil.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum(a) |
Este exemplo instancia um objeto NotifyUtil.
var notifyUtil = new NotifyUtil();
notifyUtil.getTelephonyProviers();
NotifyUtil – getListOfNotifyNumbersAndProviders(cadeia de caracteres sourceTable, cadeia de caracteres sourceSysId, cadeia de caracteres notifyGroupSelectorSysId, booliano filterSMSCapableNums)
Retorna todos os números de telefone do Notify e informações relacionadas do Notify de um registro de origem especificado, como um incidente.
Você pode usar essas informações para iniciar uma chamada ou enviar uma mensagem SMS em um registro de origem específico. As informações retornadas são baseadas na configuração da estrutura do Seletor de Provedor Notify. Para obter informações adicionais, consulte Notify
| Nome | Tipo | Descrição |
|---|---|---|
| filterSMSCapableNums | Booliano | Opcional. Sinalizador que indica se somente números que são compatíveis com SMS devem ser retornados. Valores válidos:
Padrão: falso |
| notifyGroupSelectorSysId | Cadeia de caracteres | Opcional. Sys_id de um grupo do Notify para o qual os números e informações do Notify serão retornados. Padrão: todos os grupos |
| sourceSysId | Cadeia de caracteres | Sys_id do registro de origem para o qual os números e informações do Notify serão retornados. Por exemplo, pode ser o sys_id de um registro na tabela Incidente [incidente]. |
| sourceTable | Cadeia de caracteres | Nome da tabela que contém o registro de origem que contém os números e informações desejados do Notify. |
| Tipo | Descrição |
|---|---|
| provedoresdeconferência | Lista de provedores de conferência disponíveis. Tipo de dados: matriz |
| números | Lista de objetos, cada um descrevendo um único número do Notify. Tipo de dados: matriz |
| números.DefaultFlag | Sinalizador que indica se o número do Notify associado é o número padrão. Valores possíveis:
Tipo de dados: booliano |
| numbers.name | Nome ou rótulo do número. Tipo de dados: cadeia de caracteres |
| números.número | Número do Notify. Tipo de dados: cadeia de caracteres |
| números.códigocurto | Sinalizador que indica se o número do Notify associado é um código curto. Valores possíveis:
Tipo de dados: booliano |
| números.sysId | Sys_id do número do Notify. Tipo de dados: cadeia de caracteres |
Este exemplo mostra como obter os números de telefone do Notify e as informações relacionadas do Notify de um registro de origem especificado.
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(cadeia de caracteres userGrOrId)
Retorna o número compatível com SMS associado ao usuário do Notify especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| userGROrId | Cadeia de caracteres ou GlideRecord - Global | Sys_id do registro do usuário, localizado na tabela Usuário [sys_user], ou o sys_user GlideRecord do usuário para o qual o número de telefone compatível com SMS será retornado. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Número de telefone compatível com SMS do usuário. Retorna nulo se o usuário especificado não for encontrado. |
Este exemplo mostra como obter um número de telefone compatível com SMS usando o GlideRecord associado.
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 (números de matrizes, usuários de matrizes, grupos de matrizes, tipo de cadeia de caracteres, booliano getData)
Retorna uma lista de números de telefone exclusivos do Notify.
Se você não aprovar nenhum parâmetro na chamada, todos os números do Notify na tabela Número de telefone do Notify [notify_number] serão verificados quanto a duplicatas, com cada número de telefone disponível aparecendo apenas uma vez na lista retornada. Você pode refinar os resultados de retorno especificando uma lista de usuários ou grupos a serem verificados ou especificando um conjunto de números ou tipos de números (SMS ou de voz). Você também pode solicitar que os metadados associados a cada número sejam retornados junto com o exclusivo números. Se você não quiser usar um parâmetro, basta passar nulo como espaço reservado. Por exemplo: retornar nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);.
| Nome | Tipo | Descrição |
|---|---|---|
| obterDados | Booliano | Opcional. Sinalizador que indica se os metadados devem ser retornados junto com a lista de números de telefone exclusivos. Valores válidos:
Padrão: falso |
| grupos | Matriz | Opcional. Lista de grupos sys_id a serem verificados. Localizado na tabela Grupo [sys_user_group]. Padrão: verificar todos os grupos. |
| números | Matriz | Opcional. Lista de números de telefone específicos do Notify a serem verificados. Padrão: verificar todos os números de telefone. |
| tipo | Cadeia de caracteres | Opcional. Tipo de números de telefone a serem verificados. Valores válidos (diferencia maiúsculas de minúsculas):
Padrão: verificar todos os tipos de número de telefone |
| usuários | Matriz | Opcional. Lista de sys_ids de usuários específicos a serem verificados. Localizado na tabela Usuário [sys_user]. Padrão: verificar todos os usuários |
| Nome | Descrição |
|---|---|
| números | Números de telefone exclusivos do Notify. Tipo de dados: matriz |
| resultado | Retornado somente se getData estiver definido como verdadeiro. Metadados associados a cada número exclusivo. Tipo de dados: objeto |
| resultado.número | Número de telefone exclusivo do Notify. Tipo de dados: cadeia de caracteres |
| resultado.sysId | Sys_id do registro que contém o número de telefone do Notify. Localizado na tabela Número de telefone do Notify [notify_number]. Tipo de dados: cadeia de caracteres |
| resultado.tipo | Sempre contém "u" para o usuário. Tipo de dados: cadeia de caracteres |
| resultado.válido | Sinalizador que indica se o número de telefone do Notify está no formato E.164 válido. Valores possíveis:
Tipo de dados: booliano |
Este exemplo mostra como solicitar um conjunto específico de números de telefone exclusivos do Notify que tenham recursos de 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(cadeia de caracteres sourceRecSysId)
Determina se há chamadas em conferência ativas para o registro de origem especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| sourceRecSysId | Cadeia de caracteres | Sys_id do registro para verificar chamadas em conferência ativas. Por exemplo, o sys_id de um registro na tabela Incidente. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o registro especificado tem chamadas em conferência ativas associadas. Valores possíveis:
|
Este exemplo exibe uma mensagem informativa se houver chamadas em conferência ativas associadas a um registro de incidente.
(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 – validOutboundNotifyPhoneNumber(cadeia de caracteres numérica)
Valida um número de telefone do Notify especificado.
- Se o número do Notify existe na tabela Número de telefone do Notify [notify_number].
- Se o número do Notify tem um grupo do Notify associado a ele.
- Se o número do Notify está ativo.
| Nome | Tipo | Descrição |
|---|---|---|
| número | Cadeia de caracteres | Número do Notify para validar. |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
Este exemplo ilustra como validar um número de notificação.
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 – validPhoneNumber(cadeia de caracteres numérica)
Verifica se o número especificado é um número de telefone E.164 válido.
| Nome | Tipo | Descrição |
|---|---|---|
| número | Cadeia de caracteres | Número de telefone para validar. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o número especificado é um número de telefone válido. Valores possíveis:
|
Este exemplo ilustra como validar um número de telefone.
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 '';
}