NotifyUtil - Global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 8 min. de leitura
  • 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.

    Tabela 1. Parâmetros
    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

    Tabela 2. Parâmetros
    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:
    • verdadeiro: retorna somente números de telefone e informações compatíveis com SMS.
    • falso: retorna todos os números de telefone e informações de notificação.

    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.
    Tabela 3. Retornos
    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

    "numbers": [{
      "defaultFlag": Boolean,
      "name": "String",
      "number": "String",
      "shortCode": Boolean,
      "sysId": "String
    }]
    números.DefaultFlag Sinalizador que indica se o número do Notify associado é o número padrão.
    Valores possíveis:
    • verdadeiro: número padrão
    • falso: não é o número padrão

    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:
    • verdadeiro: código curto
    • falso: não é um código curto

    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.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    userGROrId Cadeia de caracteres ou GlideRecord - Global Sys_id do registro do usuário,

    Tabela: tabela Usuário [sys_user] ou o GlideRecord sys_user do usuário para o qual o número de telefone compatível com SMS será retornado.

    Tabela 5. Retornos
    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);.

    Tabela 6. Parâmetros
    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:
    • verdadeiro: retorna metadados.
    • falso: não retorna metadados.

    Padrão: falso

    grupos Matriz Opcional. Lista de grupos sys_id a serem verificados.

    Padrão: verificar todos os grupos.

    Tabela: Grupo [sys_user_group]

    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):
    • serviços de voz
    • sms

    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.

    Padrão: verificar todos os usuários

    Tabela: usuário [sys_user]

    Tabela 7. Retornos
    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
    "result": {
      "number": "String",
      "sysId": "String",
      "type": "String",
      "valid": Boolean
    }
    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.

    Tipo de dados: cadeia de caracteres

    Tabela: Número de telefone do Notify [notify_number]

    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:
    • verdadeiro: formato E.164 válido.
    • falso: não está no formato E.164.

    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.

    Tabela 8. Parâmetros
    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.
    Tabela 9. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o registro especificado tem chamadas em conferência ativas associadas.
    Valores possíveis:
    • verdadeiro: chamadas em conferência ativas estão disponíveis para o registro especificado.
    • falso: não há chamadas em conferência ativas.

    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.

    O método executa três tipos de validação:
    1. Se o número do Notify existe na tabela Número de telefone do Notify [notify_number].
    2. Se o número do Notify tem um grupo do Notify associado a ele.
    3. Se o número do Notify está ativo.
    Se qualquer uma dessas validações falhar, o método emitirá uma exceção.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    número Cadeia de caracteres Número do Notify para validar.
    Tabela 11. Retornos
    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.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    número Cadeia de caracteres Número de telefone para validar.
    Tabela 13. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o número especificado é um número de telefone válido.
    Valores possíveis:
    • verdadeiro: número de telefone E.164 válido.
    • falso: número de telefone inválido.

    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 '';
    }