NotifyScoped - Com escopo

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 11 min. de leitura
  • A API NotifyScoped permite que você interaja com chamadas do Notify e mensagens SMS usando scripts.

    Execute a classe NotifyScoped e seus métodos associados do namespace sn_notify.

    NotifyScoped - call(cadeia de caracteres notifyPhoneNumber, cadeia de caracteres toPhoneNumber, GlideRecord conferenceCall, GlideRecord conferenceCallRecord, cadeia de caracteres userSysId, cadeia de caracteres groupSysId, GlideRecord sourceRecord)

    Liga para o número de telefone compatível com E.164 especificado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    notifyPhoneNumber Cadeia de caracteres Número de telefone do Notify a partir do qual a chamada será feita. Quando você inicia uma chamada, o fluxo de trabalho de chamada de saída para o grupo de números associado a este número é executado. Certifique-se de que este fluxo de trabalho inclua uma atividade Ingressar na chamada em conferência para conectar o usuário à chamada em conferência.
    paraNúmeroDeTelefone Cadeia de caracteres Número de telefone para ligar. Os números chamados são adicionados à chamada em conferência.
    ConferenceCall GlideRecord Opcional. Se este parâmetro for passado, os solicitantes identificados no parâmetro toPhoneNumber ingressarão automaticamente na chamada em conferência identificada por este registro.

    GlideRecord para a tabela Chamada do Notify [notify_call] que identifica o registro da chamada em conferência. Este registro é adicionado automaticamente ao bloco de anotações do fluxo de trabalho de chamada de saída como a variável workflow.scratchpad.conference_call.

    userSysId Cadeia de caracteres Opcional. Identificador exclusivo (sys_id) do usuário associado à chamada.
    groupSysId Cadeia de caracteres Opcional. Identificador exclusivo (sys_id) do grupo associado à chamada.
    sourceRecord GlideRecord Opcional. Registro de origem que solicitou esta chamada.
    Tabela 2. Retorna
    Tipo Descrição
    vazio

    Este exemplo ilustra como iniciar uma chamada para outro número de telefone.

    var from = '+14048007337';
    var to = '+31646810495';
    
    // set up call
    new sn_notify.NotifyScoped().call(from, to);

    Este exemplo ilustra como iniciar uma chamada para uma lista de números de telefone e ingressar automaticamente esses números em uma nova chamada em conferência.

    var notify = new sn_notify.NotifyScoped();
    var from = '+14041234567';
    var participants = ['+31612345678', '+31623456789', '+31687654321'];
    
    // set up a conference call
    var conferenceCall = notify.conferenceCall();
    
    // set up the outbound calls for all conference call participants
    for (var i in participants) {
        var to = participants[i];
        notify.call(from, to, conferenceCall);
    }

    NotifyScoped - conferenceCall(GlideRecord sourceRecord)

    Cria uma nova chamada em conferência GlideRecord.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    sourceRecord GlideRecord Opcional. Registro que iniciou a solicitação para criar a chamada em conferência. Usado para preencher os campos de origem e de tabela no registro notify_conference_call.
    Tabela 4. Retorna
    Tipo Descrição
    GlideRecord Novo registro de chamada em conferência do Notify [notify_conference_call].
    var notify = new sn_notify.NotifyScoped();
    var from = '+14041234567';
    var participants = ['+31612345678', '+31623456789', '+31687654321'];
    
    // set up a conference call
    var conferenceCall = notify.conferenceCall();
    
    // set up the outbound calls for all conference call participants
    for (var i in participants) {
        var to = participants[i];
        notify.call(from, to, conferenceCall);
    }

    NotifyScoped - dequeueCall(GlideRecord callRecord)

    Retoma uma chamada depois que ela é colocada em uma fila (em espera).

    Use este método para retomar chamadas que foram colocadas em uma fila com o método queueCall().

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    registro de chamada GlideRecord Objeto GlideRecord na tabela Chamada do Notify [notify_call] com a chamada em espera que você deseja retomar.
    Tabela 6. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como reativar uma chamada que foi colocada em espera.

    var notifyCallGr = new GlideRecord('notify_call');
    notifyCallGr.get('active participant sys id');
     
    if (notifyCallGr.isValid) {
        sn_notify.NotifyScoped.dequeueCall(notifyCallGr);
    }

    NotifyScoped - encaminharCall(chamada GlideRecord, destino da cadeia de caracteres, dtmf da cadeia de caracteres)

    Encaminha a chamada especificada para um destinatário de chamada diferente.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    chamada GlideRecord ou String Notifique o registro de chamadas ou o ID de chamada do provedor de telefonia da chamada a ser encaminhada.
    destination GlideRecord ou String Notifique o registro de número de telefone ou um número de telefone compatível com E.164 do solicitante para o qual a chamada será encaminhada.
    dtmf Cadeia de caracteres Código de tom duplo - Multifrequência (DTMF) a ser enviado na conexão de chamada.
    Tabela 8. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como encaminhar uma chamada para outro número de telefone.

    var callID = 'CA92374b5aa561dab476a7001db6026edc'; // Twilio Call ID
    var phoneNumber = '+91406xxxxxxx';
    var dtmfTones = null;
     
    var notifyCallGr = new GlideRecord('notify_call');
    notifyCallGr.get('active participant sys id');
     
    if (notifyCallGr.isValid) {
        sn_notify.NotifyScoped.forwardCall(notifyCallGr(or) callID, phoneNumber, dtmfTones)
    }

    NotifyScoped – getAvailableClients(cadeia de caracteres notifyNumber)

    Retorna uma lista de sessões de cliente que estão disponíveis para receber chamadas.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    notifyNumber Cadeia de caracteres Número de telefone do Notify válido.
    Tabela 10. Retorna
    Tipo Descrição
    Matriz GlideRecord da tabela notify_client_session para o número de telefone especificado.

    Retorna "0" se não houver sessões de cliente disponíveis.

    O exemplo a seguir mostra como usar o método getAvailableClients() para indexar na tabela notify_client_session e iterar em todos os clientes Notify disponíveis.

    var clientSessionGr = sn_notify.NotifyScoped.getAvailableClients('+185xxxxxxxx'); 
    // Here clientSessionGr is of type GlideRecord on 'notify_client_session' table.
     
    var isLoggedInUserAvailable = false;
    while (clientSessionGr.next()) {
      if (clientSessionGr.user == gs.getUserID())
        isLoggedInUserAvailable = clientSessionGr.available;
    }
    gs.info('isLoggedInUserAvailable - ' + isLoggedInUserAvailable);

    NotifyScoped – getPhoneNumbers()

    Retorna todos os números de telefone e códigos curtos disponíveis para o Notify.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Matriz Lista de objetos NotifyPhoneNumber, cada objeto representando um número de telefone disponível para o Notify.

    Este exemplo ilustra como obter os números de telefone do Notify e iterar na lista.

    // Instantiate notify
    var notify = new sn_notify.NotifyScoped();
    
    // Retrieve all available phone numbers
    var phoneNumbers = notify.getPhoneNumbers();
    
    // Iterate over phone numbers
    for (var i = 0; i < phoneNumbers.length; i++) {
      var number = phoneNumbers[i];
    
      // Perform any actions using each phone number
    
    }

    NotifyScoped – getShortCodes()

    Retorna todos os códigos curtos disponíveis para o Notify.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    vazio

    Este exemplo ilustra como obter os códigos curtos do Notify e iterar na lista.

    // Instantiate notify
    var notify = new sn_notify.NotifyScoped();
    
    // Retrieve all available shortcodes
    var shortCodes = notify.getShortCodes();
    
    // Iterate over phone numbers
    for (var i = 0; i < shortCodes.length; i++) {
      var shortCode = shortCodes[i];
      gs.log(shortCode.getNumber());
    
    //perform any actions using each shortcode
    
    }

    NotifyScoped – getTokens(GlideRecord, registro)

    Retorna tokens de cliente para todos os drivers de telefonia ativos para uso em clientes móveis ou WebRTC.

    Este método usa o registro de usuário conectado no momento como o cliente.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord a ser usado para identificar o cliente Notify, como um registro de grupo ou um registro de usuário.
    Tabela 16. Retorna
    Tipo Descrição
    Cadeia de caracteres Tokens RTC da web para os drivers compatíveis, como uma cadeia de caracteres JSON com o seguinte formato: {driverName1: "token1", driverName2: "token2"}, como "TwilioDirect":"eyJhxxxx.eyJleHAiOiIxxxx.7fejxxx_mbLxxx"

    Este exemplo mostra como obter os tokens de cliente para o usuário conectado no momento.

    // get Notify client Tokens per active Notify driver for the currently logged in user
    var json = new sn_notify.NotifyScoped().getTokens();
     
    // Parse the JSON that was return into a tokens object
    var tokens = JSON.parse(json);
    
    // Log line
    gs.log('Notify client tokens for the currently logged in user');
    
     // iterate over the driver tokens
    for (var driver in tokens) {
     	gs.log(driver + ' Driver token: ' + tokens[driver]);
    }

    Este exemplo mostra como obter os tokens do cliente para cada grupo do Notify.

    // instantiate Notify
    var notify = new sn_notify.NotifyScoped.Notify();
     
    // get all Notify Groups
    var notifyGroup = new GlideRecord("notify_group");
    notifyGroup.query();
     
    // iterate over all notify groups
    while (notifyGroup.next()) {
      // generate Notify Client tokens per active Notify Driver for this group
      var json = notify.getTokens(notifyGroup);
      var tokens = JSON.parse(json);
     
      for (var driver in tokens) {
        gs.log(gs.getMessage("Notify Client token for {0} driver and Notify Group '{1}': {2}", [driver, notifyGroup.getValue('name'), tokens[driver]]));
      }
    }

    Este exemplo ilustra como obter os tokens de cliente para os drivers de telefonia ativos.

    var notify = new sn_notify.NotifyScoped();
    var now_GR = new GlideRecord('sys_user');
    if (now_GR.get(gs.getUserID())) {
      gs.info(notify.getTokens(now_GR));
    }

    Saída:

    {"TwilioDirect":"eyJhxxxx.eyJleHAiOiIxxxx.7fejxxx_mbLxxx"}

    NotifyScoped – getTokenTTL(cadeia de caracteres do proprietário)

    Retorna o tempo máximo que uma sessão do cliente permanece ativa para um driver de telefonia especificado antes de atingir o tempo limite automaticamente.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    responsável Cadeia de caracteres Nome do driver de telefonia para o qual a duração da sessão será recuperada.

    Valores válidos:

    • Twilio: para o driver antigo
    • TwilioDirect: para o novo driver
    Tabela 18. Retorna
    Tipo Descrição
    Inteiro Duração máxima da sessão (em segundos).

    Padrão: 1800 segundos

    O exemplo a seguir mostra como chamar corretamente este método e a resposta associada. Ele também mostra o que é retornado se um driver inválido for aprovado.

    var owner = "TwilioDirect";  // Valid driver
    var ttl = SNC.Notify.getTokenTTL(owner);
    gs.info("Token TTL for " + owner + " --> " + ttl);
     
    owner = "Abcxyz";  // Invalid driver
    ttl = SNC.Notify.getTokenTTL(owner);
    // For an invalid driver, we throw NoSuchNotifyDriverException saying that Abcxyzdriver is not available
    // and return the default value of TTL
    gs.info("Token TTL for " + owner + " --> " + ttl); 

    NotifyScoped - hasCapability(cadeia de caracteres notifyPhoneNumber, capacidade de cadeia de caracteres)

    Determina se o número de telefone especificado tem a capacidade especificada.

    O driver de telefonia associado ao número de telefone contém uma lista de todos os recursos do telefone.

    Nota:
    No sistema base, o driver Notify JS tem somente "show_speakers" como uma capacidade; isso pode ser modificado.
    Tabela 19. Parâmetros
    Nome Tipo Descrição
    notifyPhoneNumber Cadeia de caracteres Número de telefone para o qual a capacidade especificada será verificada.
    capacidade Cadeia de caracteres Capacidade de detecção. O texto da cadeia de caracteres deve corresponder exatamente ao que está no telefone.
    Tabela 20. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o telefone especificado tem a capacidade especificada.
    • verdadeiro: o telefone tem a capacidade
    • falso: o telefone não tem a capacidade

    Este exemplo mostra como verificar se um telefone tem uma capacidade específica.

    // Each driver has a defined set of capabilities.
    
    var capability = 'show_speakers';
    gs.info(sn_notify.NotifyScoped.hasCapability('+185xxxxxxxx', capability)); // true
     
    capability = 'send_sms';
    gs.info(sn_notify.NotifyScoped.hasCapability('+185xxxxxxxx', capability)); // false

    NotifyScoped - kick(participante do GlideRecord)

    Remove o chamador especificado da chamada em conferência atual do Notify.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    participante GlideRecord Objeto GlideRecord que contém o registro de Participante do Notify [notify_participant] do solicitante a ser removido da chamada em conferência.
    Tabela 22. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como remover um participante de uma chamada.

    var participant = new GlideRecord('notify_participant');
    participant.get('<sys_id>');
    if (participant.isValid()) {
        new sn_notify.NotifyScoped().kick(participant);
    }

    NotifyScoped - modificaCall(GlideRecord callRecord, NotifyAction notifyAction)

    Executa uma ou mais atividades em uma chamada telefônica ativa do Notify.

    Use este método para mudar o comportamento de uma chamada. Por exemplo, transferir uma chamada, reproduzir áudio ou forçar um desligamento.
    Nota:
    A implementação com escopo deste método só oferece suporte a atividades personalizadas do Notify. Ao contrário da implementação global, ele não fornece uma API NotifyAction. Para obter detalhes sobre como criar uma atividade do Notify personalizada, consulte Atividades de fluxode trabalho do Notify.
    Tabela 23. Parâmetros
    Nome Tipo Descrição
    registro de chamada GlideRecord Chamada do Notify [notify_call] Registro da chamada para a qual as ações serão aplicadas.
    NotifyAction NotifyAction Objeto NotifyAction que descreve uma ou mais atividades a serem executadas na chamada.
    Tabela 24. Retorna
    Tipo Descrição
    vazio

    NotifyScoped - mudo (GlideRecord participanteRecord)

    Silencia o participante da chamada em conferência especificado.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    ParticipantRecord GlideRecord GlideRecord da tabela notify_participant para o participante silenciar.
    Tabela 26. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como silenciar um solicitante.

    var notifyParticipantGr = new GlideRecord('notify_participant');
    notifyParticipantGr.get('active participant sys id');
     
    if (notifyParticipantGr.isValid) {
        sn_notify.NotifyScoped.mute(notifyParticipantGr);
    }

    NotifyScoped - queueCall(GlideRecord callRecord)

    Coloca a chamada especificada em uma fila (em espera).

    Retome uma chamada na fila usando o método dequeueCall().

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    registro de chamada GlideRecord Objeto GlideRecord do registro de Chamada do Notify (tabela notify_call) a ser colocado em espera.
    Tabela 28. Retorna
    Tipo Descrição
    vazio
    var call = new GlideRecord('notify_call');
    call.get('<call record sys_id>');
    if (call.isValid()) {
        new sn_notify.NotifyScoped().queueCall(call);
    }

    NotifyScoped - sendBulkSMS(NotifyPhoneNumber notifyPhoneNumber, String toPhoneNumbers, String messageBody, GlideRecord source)

    Envia uma mensagem SMS especificada para a lista especificada de clientes do Notify (números de telefone).

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    notifyPhoneNumber NotifyPhoneNumber Número de telefone do qual a mensagem SMS está sendo enviada.
    paraNúmerosDeTelefone Cadeia de caracteres Números de telefone da lista separados por vírgulas para os quais a mensagem SMS será enviada.

    Formato: compatível com E.164

    corpo da mensagem Cadeia de caracteres Texto SMS a ser enviado.
    origem GlideRecord Registro de origem que solicitou esta mensagem SMS, como um incidente.
    Tabela 30. Retorna
    Tipo Descrição
    Cadeia de caracteres Nulo

    Este exemplo mostra como enviar uma mensagem SMS para vários números de telefone (SMS em massa).

    var incidentGr = new GlideRecord('incident');
    incidentGr.get('active incident sys_id');
    if (incidentGr.isValid()) {
        sn_notify.NotifyScoped.sendBulkSMS('+15413970605', ['+919885XXXXXX', '+919775XXXXXX'], 'Test automation message', incidentGr);
    }

    NotifyScoped - sendSMS (NotifyPhoneNumber notifyPhoneNumber, String toPhoneNumber, String messageBody, GlideRecord source)

    Envia uma mensagem de texto SMS para um número de telefone compatível com E.164.

    Este método cria um novo registro na tabela Notify Message [notify_message] e o associa ao registro de origem.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    notifyPhoneNumber NotifyPhoneNumber Notifique o número de telefone ou código curto para o qual esta mensagem SMS será enviada.
    paraNúmeroDeTelefone Cadeia de caracteres Número de telefone compatível com E.164 para o qual a mensagem SMS será enviada.
    corpo da mensagem Cadeia de caracteres Mensagem de texto SMS.
    origem GlideRecord Registro de origem que solicitou esta mensagem SMS, como um incidente.
    Tabela 32. Retorna
    Tipo Descrição
    Cadeia de caracteres SID de mensagem exclusiva; armazenado no registro Notify Message [notify_message] como message_id.

    O exemplo a seguir mostra como enviar uma mensagem SMS.

    var incidentGr = new GlideRecord('incident');
    incidentGr.get('active incident sys_id');
    if (incidentGr.isValid()) {
        sn_notify.NotifyScoped.sendSMS('+15413970605', '+919885XXXXXX', 'Test automation message', incidentGr);
    }

    NotifyScoped - unmute(GlideRecord ParticipantRecord)

    Reativa o mudo do participante da chamada em conferência especificado.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    ParticipantRecord GlideRecord GlideRecord da tabela notify_participant para o participante cancelar o mudo.
    Tabela 34. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como reativar o mudo de um participante de chamada especificado.

    var notifyParticipantGr = new GlideRecord('notify_participant');
    notifyParticipantGr.get('active participant sys id');
     
    if (notifyParticipantGr.isValid) {
        sn_notify.NotifyScoped.unmute(notifyParticipantGr);
    }