NotifyClient - Cliente

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 10 min. de leitura
  • A API NotifyClient permite que você use a funcionalidade de telefonia do Notify, como fazer e receber chamadas, de um navegador da Web.

    Vários métodos NotifyClient usam uma função de retorno de chamada como parâmetro. Como as chamadas NotifyClient são feitas de forma assíncrona, esses métodos não podem retornar um valor diretamente. Use a função de retorno de chamada para analisar os dados retornados, por exemplo, atribuindo variáveis ou fazendo outras chamadas de API.

    NotifyClient - Client(Object notifyConfig, booliano inicializeVendorClientLazily)

    Instancia um novo objeto Notify WebRTC Client.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    inicializarVendorClientLazily Booliano Sinalizador que indica se a função autoSelectVendorCallback deve ser usada no método setCallerId() para definir automaticamente o fornecedor associado do solicitante (notifyConfig.vendor não precisa ser definido no construtor).
    • falso: padrão. Não use a função autoSelectVendorCallback para definir o fornecedor do solicitante. O fornecedor deve ser definido no construtor.
    • verdadeiro: use a função autoSelectVendorCallback para definir o fornecedor quando o ID do chamador estiver definido.
    notifyConfig Objeto Objeto JSON que contém as definições de configuração do cliente Notify WebRTC.
    notifyConfig.autoLoadScriptResources Booliano Sinalizador que indica como carregar a biblioteca JS principal necessária para o cliente do fornecedor.
    • falso: padrão. Use códigos específicos do fornecedor para carregar a biblioteca JS do fornecedor necessária (habilita a compatibilidade com versões anteriores).
    • verdadeiro: use notifyClient.js para carregar a biblioteca JS principal.
    notifyConfig.callerId Número Número do Notify registrado a ser usado. Não defina diretamente este valor. Use o método notifyClient.setCallerID() para definir este valor.
    notifyConfig.forceRefreshToken Booliano Sinalizador que indica se os tokens de cliente expirados devem ser renovados automaticamente.
    • falso: não renove automaticamente os tokens de cliente quando eles expirarem.
    • verdadeiro: padrão. Renovar automaticamente os tokens de cliente quando eles expirarem.
    notifyConfig.skipParentId Booliano Sinalizador que indica se o solicitante onIncoming deve ser invocado imediatamente para as chamadas recebidas.
    • falso: padrão. Não invoque imediatamente o manipulador de eventos onIncoming.
    • verdadeiro: invoque imediatamente o manipulador de eventos onIncoming. Ao definir este sinalizador, se houver outra chamada, em que o<Dial><Client> Twiml causou a chamada de entrada e, em seguida, definir este sinalizador faz com que o sistema pesquise automaticamente o back-end. Esta pesquisa automática obtém a referência notify_call primária.
    notifyConfig.vendor Constante Fornecedor ao qual o solicitante pertence.
    • SNC.Notify.Fornecedor.TWILIO_DIRECT
    • SNC.Notify.Vendor.TWILIO (driver Twilio mais antigo e obsoleto)

    O exemplo a seguir mostra como criar o construtor NotifyClient, registrar vários ouvintes de eventos e inicializar o driver do cliente.

    jQuery(function () {
    
      var notifyConfig = {
        autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
      };
      var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper vendor for the given number is auto determined
      client.setCallerId('valid_notify_long_number', function () {
        // This is called after the vendor has been determined.
    
        if (!notifyConfig.vendor) // Means this number has no compatible vendor
          return;
    
        client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
          // Ability to call is available
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
          // Ability to call is _not_ available right now
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
          // Some error happened
        });
          //... register other event handlers here
          //Show UI elements which can be used to invoke client.call() and other APIs
        client.init(); // This is important to call this.
        });
    });

    NotifyClient - addEventListener(cadeia de caracteres evento, Função fn)

    Registra um manipulador de eventos para ouvir mudanças em um cliente Notify.

    Usando este método, você pode registrar vários ouvintes. Cada ouvinte deve ser uma chamada de método separada.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    evento Cadeia de caracteres Nome do evento a ser escutado.

    Em vez de passar cadeias de caracteres, use as constantes definidas em SNC.Notify.STD_EVENTS.

    • CALL_START: a chamada foi iniciada e está em andamento.
    • CALL_CANCEL: o chamador cancelou a chamada.
    • CALL_INIT: WebRTC conectado a uma chamada (entrada ou saída).
    • CALL_DISCONNECT: a chamada atual foi desconectada.
    • ERRO: ocorreu um erro. Parâmetros: message(string), errCode(string)
      • message: mensagem de erro a ser exibida.
      • errCode: Opcional. Código de erro associado.
    • INCOMING_CALL: a chamada está sendo recebida. Parâmetros: from(string), to(string), callId(string), parentId(string), sysId(string), isFromClient(boolean)
      • de: o número de telefone do solicitante.
      • para: número de telefone chamado.
      • callId: SID da chamada.
      • parentId: referência notify_call primário. Se skipParentId estiver definido como verdadeiro, este parâmetro não deverá ser aprovado.
      • sysId: somente chamadas WebRTC para WebRTC. Identificador exclusivo (sys_id) do solicitante.
      • isFromClient: somente chamadas WebRTC para WebRTC. Sinalizador que indica se a chamada é de outro cliente WebRTC.
    • CALL_MUTE: o cliente está mudo.
    • CALL_UNMUTE: o cliente não está mudo.
    • OFF-LINE: a sessão WebRTC não está ativa.
    • ONLINE: a sessão WebRTC está pronta. Deve ser definido após a chamada do método init().
    Tabela 3. Retorna
    Tipo Descrição
    Função Função a ser usada para cancelar o registro de um ouvinte.

    Este exemplo mostra como registrar vários ouvintes.

    jQuery(function () {
    
      var notifyConfig = {
        autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
      };
      var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper client for the given number is auto determined
      client.setCallerId('valid_notify_long_number', function () {
        // This is called after the client has been determined.
    
        if (!notifyConfig.vendor) // Means this number has no compatible client
          return;
    
        client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
          // Ability to call is available
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
          // Ability to call is _not_ available right now
        });
        client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
          // Some error happened
        });
          //... register other event handlers here
         
        client.init(); // This is important to call this.
        });
    });

    Este exemplo mostra como cancelar o registro de um ouvinte.

    var dereg = notifyClient.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
     ... 
     }); 
     dereg(); 
      // The event listener function is no longer triggered.

    NotifyClient - call (identificador de objeto)

    Chama o número de telefone especificado ou o número de telefone associado a um usuário especificado.

    Nota:
    Ao verificar o status de uma chamada/conexão, sempre compare com as constantes fornecidas por SNC.Notify.Status.
    Tabela 4. Parâmetros
    Nome Tipo Descrição
    identificador Objeto Objeto JSON que contém um número de telefone para ligar ou o sys_id de um usuário WebRTC. Passar um usuário sys_id faz com que a chamada seja feita por meio de comunicação de navegador para navegador.

    Você pode obter o usuário sys_id da tabela Sessão WebRTC do Notify.

    Nota:
    Se você fornecer um número de telefone e um sys_id do usuário, o método usará somente o número de telefone.
    Tabela 5. Retorna
    Tipo Descrição
    vazio

    Este exemplo demonstra a passagem de um número de telefone como o parâmetro da função.

    notifyClient.call({
        phoneNumber: "+18001112223"
    });

    Este exemplo demonstra a passagem de um sys_id de registro de usuário como o parâmetro da função.

    notifyClient.call({
        userId: "6816f79cc0a8016401c5a33be04be441"
    });

    Este exemplo mostra um manipulador de cliques de botão.

    $j("#pickupCallBtn").on("click", function() {
    	notifyClient.hangupCall();
    });

    Este exemplo mostra um manipulador de eventos.

    onConnect: function(status) {  
      // webRTC receives a call connection event (incoming or outgoing).
      if (status == SNC.Notify.Status.OPEN) {
        setStatus(getTimeStamp() + " -- Successfully established call");
        showHangupButton();
      }
    },

    NotifyClient - destruir ()

    Elimina o cliente Notify atual, tornando-o inutilizável.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    vazio

    NotifyClient - encaminharCall (argumento do objeto)

    Encaminha uma chamada telefônica de entrada ou de saída em andamento para um número de telefone diferente ou um cliente WebRTC diferente.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    argumento Objeto Objeto JSON que contém as informações necessárias para encaminhar a chamada para um número de telefone ou um cliente WebRTC (sys_id do usuário). Você pode obter esse sys_id na tabela Sessão WebRTC do Notify.
    Tabela 9. Retorna
    Tipo Descrição
    vazio

    Este exemplo demonstra o encaminhamento de uma chamada para um número de telefone diferente. O atributo dtmf permite que você envie tons de discagem DTMF para o número de recebimento.

    var arg = {
        type: "number",
        id: "+17012345678",
        dtmf: "1234"
    }
    client.forwardCall(arg);

    Este exemplo demonstra o encaminhamento de uma chamada para um cliente Notify diferente.

    var arg = {
        type: "userId",
        id: "6816f79cc0a8016401c5a33be04be441"
    }
    client.forwardCall(arg);

    NotifyClient - getAvailableClients(Função de retorno de chamada)

    Retorna uma lista de clientes disponíveis para aceitar chamadas.

    Este método exclui o cliente atual da lista. O método Notify-getAvailableClients() equivalente não filtra nenhum usuário.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    retorno de chamada Função Função a ser usada para analisar a lista de clientes. Esta função aceita um único parâmetro, uma matriz de objetos JSON com o seguinte formato:
    [{
        sys_id: "...",  // user's sys_id
        name: "..." // user's name
    }]
    Tabela 11. Retorna
    Tipo Descrição
    vazio

    NotifyClient - getParentId(cadeia de caracteres callId, função de retorno de chamada)

    Retorna o identificador de chamada primário para um identificador de chamada especificado, se houver.

    Dependendo do provedor de telefonia, pode haver um atraso antes que o identificador de chamada primário seja retornado; portanto, você deve fornecer uma função de retorno de chamada.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    ID da chamada Cadeia de caracteres Identificador exclusivo da chamada para a qual o identificador de chamada primário será retornado.
    retorno de chamada Função Função que obtém o objeto JSON que contém o identificador de chamada primário ou uma mensagem de erro se o identificador não puder ser obtido após várias tentativas.
    Tabela 13. Retorna
    Tipo Descrição
    Cadeia de caracteres Identificador de chamada primária.

    Este exemplo mostra como usar este método para obter o identificador de chamada primária.

    notifyClient.getParentId( callId, function(jsonObj) {} );

    Este exemplo mostra o conteúdo do parâmetro jsonObj.

    {
    	parentId: "xyz",
    	error: "msg"
    }

    NotifyClient - getStatus()

    Retorna o status normalizado da chamada atual.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 15. Retorna
    Tipo Descrição
    Cadeia de caracteres Status atual da chamada. Os valores retornados pela API do provedor de telefonia são normalizados substituindo o valor do driver retornado pelo valor equivalente, conforme definido em SNC.Notify.Status.

    Este exemplo mostra como obter o status do cliente Notify atual.

    clientStatus = notifyClient.getStatus();

    NotifyClient - hangupCall()

    Encerre a chamada atual.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como desconectar uma chamada.

    $j("#pickupCallBtn").on("click", function() {
        notifyClient.hangupCall();
    });

    NotifyClient - init()

    Inicializa o driver do cliente.

    Por exemplo, ao usar o cliente Twilio, ele invoca o método Twilio.Device.setup(). Chame este método depois que o usuário interagir com a página. Este processo de inicialização é assíncrono, portanto, você deve fornecer um manipulador de eventos ON-LINE. Este manipulador é chamado quando o processo de configuração é concluído e o sistema está pronto para receber ou fazer chamadas.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como inicializar o cliente Notify.

    $j(function() {
      notifyClient = new SNC.Notify.Client( notifyConfig );
      notifyClient.setCallerId( '+31858889170' );
      notifyClient.init();
    });

    NotifyClient - mudo (booliano mudo)

    Ative ou desative o mudo do cliente atual.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    muted Booliano Ativa ou desativa o mudo da chamada atual.
    • falso: (ou qualquer valor diferente de verdadeiro) desativa o mudo da chamada atual.
    • verdadeiro: silencia a chamada atual.
    Tabela 21. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como enviar mudo a chamada atual.

    notifyClient.mute( "true" );

    NotifyClient - pickCall()

    Atende e se conecta a uma chamada de entrada de um cliente WebRTC.

    Chame este método quando houver uma notificação de uma chamada de entrada.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 23. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como capturar uma chamada.

    $j("#pickupCallBtn").on("click", function() {
        notifyClient.pickupCall();
    });

    NotifyClient - sendDtmf(cadeia de caracteres digits)

    Envie um ou mais dígitos válidos para DTMF na chamada atual.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    dígitos Cadeia de caracteres Um ou mais dígitos válidos para DTMF.
    Tabela 25. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como enviar sinais DTMF para a chamada atual.

    notifyClient.SendDtmf( "1246AF" ) {} );

    NotifyClient - setCallerId(cadeia de caracteres value, Function autoSelectVendorCallback)

    Define o ID do chamador da sessão do cliente atual.

    Você pode mudar ou atualizar o ID do chamador a qualquer momento. No entanto, o ID do chamador deve pertencer ao mesmo fornecedor.

    Tabela 26. Parâmetros
    Nome Tipo Descrição
    valor Cadeia de caracteres Número de telefone a ser usado para fazer e receber chamadas.
    autoSelectVendorCallback Função Opcional. initializeVendorClientLazily deve ser definido como "verdadeiro" no construtor para usar esta função, caso contrário, será gerado um erro.

    Nome da função de retorno de chamada a ser chamada quando o fornecedor for definido automaticamente para o número de telefone especificado. Com esta opção, o fornecedor não precisa ser especificado no construtor (notifyConfig.vendor). A seleção automática de fornecedor é uma operação assíncrona. Portanto, este retorno de chamada é necessário para indicar quando é seguro chamar notifyConfig.init(), já que este método requer que o fornecedor seja definido antes de ser chamado. Além disso, você também deve verificar se notifyConfig.vendor foi definido no retorno de chamada para garantir que um fornecedor tenha sido especificado.

    Tabela 27. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como definir o ID do chamador. Este exemplo pressupõe que o fornecedor esteja definido no construtor.

    $j(function() {
      notifyClient = new SNC.Notify.Client( notifyConfig );
      notifyClient.setCallerId( '+31858889170' );
      notifyClient.init();
    });

    NotifyClient - setClientAvailable(booliano disponível)

    Define a disponibilidade de um agente do cliente WebRTC ativo.

    Este tipo de disponibilidade é diferente de um agente estar em uma chamada. Nesse caso, um cliente WebRTC ativo pode estar conectado e não em uma chamada, mas pode não querer receber chamadas.

    Chamar este método atualiza o valor do campo Disponível no registro de Sessão conectada do cliente do Notify [notify_client_session] associado a esta sessão do cliente. Você pode obter uma lista de clientes disponíveis usando o método getAvailableClients().

    Tabela 28. Parâmetros
    Nome Tipo Descrição
    disponível booliano Sinalizador que indica se um cliente WebRTC ativo deseja receber chamadas.
    • falso: o cliente não deseja receber chamadas.
    • verdadeiro: o cliente deseja receber chamadas.
    Tabela 29. Retorna
    Tipo Descrição
    vazio