NotifyClient : client

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 10 minutes de lecture
  • L’API NotifyClient fournit des méthodes qui vous permettent d’utiliser la fonctionnalité de téléphonie de Notify, comme l’émission et la réception d’appels à partir d’un navigateur Web.

    Plusieurs méthodes NotifyClient prennent une fonction de rappel comme paramètre. Étant donné que les appels de méthode NotifyClient sont effectués de manière asynchrone, ces méthodes ne peuvent pas renvoyer une valeur directement. Utilisez la fonction de rappel pour analyser les données renvoyées, par exemple en affectant des variables ou en effectuant d’autres appels d’API.

    NotifyClient : client (objet notifyConfig, boolean initializeVendorClientLazily)

    Instancie un nouvel objet client WebRTC Notify.

    Tableau 1. Paramètres
    Nom Type Description
    initializeVendorClientLessely Booléen Marqueur indiquant s’il faut utiliser la fonction autoSelectVendorCallback transmise dans la méthode setCallerId() pour définir automatiquement le fournisseur associé à l’appelant (notifyConfig.vendor il n’est pas nécessaire de le définir dans le constructeur).
    • false : valeur par défaut. N’utilisez pas la fonction autoSelectVendorCallback pour définir le fournisseur de l’appelant. Le fournisseur doit être défini dans le constructeur.
    • vrai : utilisez la fonction autoSelectVendorCallback pour définir le fournisseur lorsque l’ID de l’appelant est défini.
    notifyConfig Objet Objet JSON qui contient les paramètres de configuration pour le client Notify WebRTC.
    notifyConfig.autoLoadScriptResources Booléen Marqueur indiquant comment charger la bibliothèque JS principale requise par le client du fournisseur.
    • false : valeur par défaut. Utilisez des codes spécifiques au fournisseur pour charger la bibliothèque JS du fournisseur requise (active la rétrocompatibilité).
    • true : utilisez notifyClient.js pour charger la bibliothèque JS principale.
    notifyConfig.callerId Numéro Numéro de Notification enregistré à utiliser. Ne définissez pas directement cette valeur. Utilisez la méthode notifyClient.setCallerID() pour définir cette valeur.
    notifyConfig.forceRefreshToken Booléen Marqueur indiquant s’il faut renouveler automatiquement les jetons client expirés.
    • false : ne renouvelez pas automatiquement les jetons client lorsqu’ils expirent.
    • true : valeur par défaut. Renouvelez automatiquement les jetons client lorsqu’ils expirent.
    notifyConfig.skipParentId Booléen Marqueur indiquant s’il faut appeler immédiatement l’appelant onIncoming pour les appels entrants.
    • false : valeur par défaut. N’invoquez pas immédiatement le gestionnaire d’événements onCominging.
    • true : invoque immédiatement le gestionnaire d’événements onCominging. En définissant ce marqueur, s’il y a un autre appel, où le <Dial><Client> Twiml est à l’origine de l’appel entrant, la définition de ce marqueur entraîne une interrogation automatique du système sur le back-end. Cette interrogation automatique permet d’obtenir la référence du notify_call parent.
    notifyConfig.vendor Constante Fournisseur auquel l’appelant appartient.
    • SNC. Notify.Vendor.TWILIO_DIRECT
    • SNC. Notify.Vendor.TWILIO (pilote Twilio ancien et obsolète)

    L’exemple suivant montre comment créer le constructeur NotifyClient, enregistrer divers écouteurs d’événements et initialiser le pilote client.

    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(String event, Function fn)

    Enregistre un gestionnaire d’événements pour écouter les changements dans un client Notification.

    Cette méthode vous permet d’enregistrer plusieurs écouteurs. Chaque écouteur doit être un appel de méthode distinct.

    Tableau 2. Paramètres
    Nom Type Description
    event Chaîne Nom de l’événement à écouter.

    Au lieu de transmettre des chaînes, utilisez les constantes définies dans SNC. Notify.STD_EVENTS.

    • CALL_START : l’appel a démarré et est en cours.
    • CALL_CANCEL : l’appelant a annulé l’appel.
    • CALL_INIT : WebRTC connecté à un appel (entrant ou sortant).
    • CALL_DISCONNECT : l’appel en cours a été déconnecté.
    • ERREUR : une erreur s’est produite. Paramètres : message(chaîne), errCode(chaîne)
      • Message : Message d’erreur à afficher.
      • errCode : facultatif. Code d’erreur associé.
    • INCOMING_CALL : L’appel arrive. Paramètres : from(string), to(string), callId(string), parentId(string), sysId(string), isFromClient(boolean)
      • De : le numéro de téléphone de l’appelant.
      • À : numéro de téléphone appelé.
      • callId : SID de l’appel.
      • parentId : référence de notify_call parent. Si skipParentId est défini sur vrai, ce paramètre ne doit pas être transmis.
      • sysId : appels WebRTC à WebRTC uniquement. L’identificateur unique (sys_id) de l’appelant.
      • isFromClient : appels WebRTC à WebRTC uniquement. Marqueur indiquant si l’appel provient d’un autre client WebRTC.
    • CALL_MUTE : le son du client est coupé.
    • CALL_UNMUTE : le son du client est rétabli.
    • HORS LIGNE : la session WebRTC n’est pas active.
    • EN LIGNE : La session WebRTC est prête. Doit être défini après l’appel de la méthode init().
    Tableau 3. Renvoie
    Type Description
    Fonction Fonction à utiliser pour annuler l’enregistrement d’un écouteur.

    Cet exemple montre comment enregistrer plusieurs écouteurs.

    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.
        });
    });

    Cet exemple montre comment annuler l’enregistrement d’un écouteur.

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

    NotifyClient : appel (identificateur d’objet)

    Appelle le numéro de téléphone spécifié ou le numéro de téléphone associé à un utilisateur spécifié.

    Remarque :
    Lors de la vérification de l’état d’un appel/d’une connexion, comparez-le toujours aux constantes fournies par SNC. Notify.Status.
    Tableau 4. Paramètres
    Nom Type Description
    identificateur Objet Objet JSON qui contient soit un numéro de téléphone à appeler, soit le sys_id d’un utilisateur WebRTC. Le passage d’un sys_id utilisateur entraîne l’envoi de l’appel via une communication de navigateur à navigateur.

    Vous pouvez obtenir l’sys_id de l’utilisateur à partir de la table Session WebRTC de Notify.

    Remarque :
    Si vous fournissez à la fois un numéro de téléphone et un sys_id d’utilisateur, la méthode utilise uniquement le numéro de téléphone.
    Tableau 5. Renvoie
    Type Description
    nul

    Cet exemple illustre la transmission d’un numéro de téléphone comme paramètre de fonction.

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

    Cet exemple illustre la transmission d’un sys_id d’enregistrement utilisateur en tant que paramètre de fonction.

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

    Cet exemple montre un gestionnaire de clics sur un bouton.

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

    Cet exemple montre un gestionnaire d’événements.

    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 : destroy()

    Arrête le client Notification actuel, le rendant inutilisable.

    Tableau 6. Paramètres
    Nom Type Description
    Aucun
    Tableau 7. Renvoie
    Type Description
    nul

    NotifyClient : forwardCall(argument objet)

    Transfère un appel téléphonique entrant ou sortant en cours vers un autre numéro de téléphone ou un autre client WebRTC.

    Tableau 8. Paramètres
    Nom Type Description
    argument Objet Objet JSON qui contient les informations nécessaires pour transférer l’appel vers un numéro de téléphone ou un client WebRTC (utilisateur sys_id). Vous pouvez obtenir cette sys_id à partir de la table Session WebRTC de Notify.
    Tableau 9. Renvoie
    Type Description
    nul

    Cet exemple illustre le transfert d’un appel vers un autre numéro de téléphone. L’attribut dtmf vous permet d’envoyer des tonalités DTMF au numéro récepteur.

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

    Cet exemple illustre le transfert d’un appel vers un autre client Notification.

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

    NotifyClient : getAvailableClients (rappel de fonction)

    Renvoie une liste de clients disponibles pour accepter des appels.

    Cette méthode exclut le client actuel de la liste. La méthode équivalente Notify-getAvailableClients() ne filtre aucun utilisateur.

    Tableau 10. Paramètres
    Nom Type Description
    rappel Fonction Fonction à utiliser pour analyser la liste des clients. Cette fonction accepte un seul paramètre, un tableau d’objets JSON au format suivant :
    [{
        sys_id: "...",  // user's sys_id
        name: "..." // user's name
    }]
    Tableau 11. Renvoie
    Type Description
    nul

    NotifyClient : getParentId(String callId, rappel de fonction)

    Renvoie l’identificateur d’appel parent pour un identificateur d’appel spécifié, s’il en existe un.

    Selon le fournisseur de téléphonie, il peut y avoir un délai avant que l’identificateur d’appel parent ne soit renvoyé ; Par conséquent, vous devez fournir une fonction de rappel.

    Tableau 12. Paramètres
    Nom Type Description
    ID d’appel Chaîne Identificateur unique de l’appel auquel renvoyer l’identificateur d’appel parent.
    rappel Fonction Fonction qui obtient l’objet JSON qui contient soit l’identificateur d’appel parent, soit un message d’erreur si l’identificateur n’a pas pu être obtenu après plusieurs essais.
    Tableau 13. Renvoie
    Type Description
    Chaîne Identificateur d’appel parent.

    Cet exemple montre comment utiliser cette méthode pour obtenir l’identificateur d’appel parent.

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

    Cet exemple montre le contenu du paramètre jsonObj.

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

    NotifyClient : getStatus()

    Renvoie l’état normalisé de l’appel actuel.

    Tableau 14. Paramètres
    Nom Type Description
    Aucun
    Tableau 15. Renvoie
    Type Description
    Chaîne État actuel de l’appel. Les valeurs renvoyées par l’API du fournisseur de téléphonie sont normalisées en remplaçant la valeur du pilote renvoyée par sa valeur équivalente telle que définie dans SNC. Notify.Status.

    Cet exemple montre comment obtenir l’état du client Notification actuel.

    clientStatus = notifyClient.getStatus();

    NotifyClient : hangupCall()

    Mettez fin à l’appel en cours.

    Tableau 16. Paramètres
    Nom Type Description
    Aucun
    Tableau 17. Renvoie
    Type Description
    nul

    Cet exemple explique comment raccrocher un appel.

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

    NotifyClient : init()

    Initialise le pilote client.

    Par exemple, lors de l’utilisation du client Twilio, il invoque la méthode Twilio.Device.setup(). Appelez cette méthode une fois que l’utilisateur a interagi avec la page. Ce processus d’initialisation est asynchrone, par conséquent, vous devez fournir un gestionnaire d’événements EN LIGNE. Ce gestionnaire est appelé lorsque le processus de configuration est terminé et que le système est prêt à prendre ou à passer des appels.

    Tableau 18. Paramètres
    Nom Type Description
    Aucun
    Tableau 19. Renvoie
    Type Description
    nul

    Cet exemple montre comment initialiser le client Notification.

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

    NotifyClient : muet (booléen en sourdine)

    Activer ou désactiver le micro du client actuel.

    Tableau 20. Paramètres
    Nom Type Description
    assourdi Booléen Désactive ou réactive le son de l’appel en cours.
    • false : (ou toute valeur autre que true) active le son de l’appel en cours.
    • vrai : désactive le son de l’appel en cours.
    Tableau 21. Renvoie
    Type Description
    nul

    Cet exemple montre comment mettre en sourdine l’appel en cours.

    notifyClient.mute( "true" );

    NotifyClient : pickupCall()

    Répond à un appel entrant à partir d’un client WebRTC et s’y connecte.

    Appelez cette méthode lorsqu’il y a une notification d’appel entrant.

    Tableau 22. Paramètres
    Nom Type Description
    Aucun
    Tableau 23. Renvoie
    Type Description
    nul

    Cet exemple montre comment prendre un appel.

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

    NotifyClient : sendDtmf(chiffres de la chaîne)

    Envoyez un ou plusieurs chiffres valides DTMF sur l’appel en cours.

    Tableau 24. Paramètres
    Nom Type Description
    Chiffres Chaîne Un ou plusieurs chiffres valides DTMF.
    Tableau 25. Renvoie
    Type Description
    nul

    Cet exemple montre comment envoyer des signaux DTMF à l’appel actuel.

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

    NotifyClient : setCallerId(valeur de chaîne, fonction autoSelectVendorCallback)

    Définit l’ID de l’appelant pour la session client en cours.

    Vous pouvez modifier ou mettre à jour l’ID de l’appelant à tout moment, mais l’ID de l’appelant doit appartenir au même fournisseur.

    Tableau 26. Paramètres
    Nom Type Description
    valide Chaîne Numéro de téléphone à utiliser pour passer et recevoir des appels.
    autoSelectVendorCallback Fonction Optionnel. initializeVendorClientLazily doit être défini sur « true » dans le constructeur pour utiliser cette fonction, sinon une erreur est générée.

    Nom de la fonction de rappel à appeler une fois que le fournisseur est automatiquement défini pour le numéro de téléphone spécifié. Avec cette option, le fournisseur n’a pas besoin d’être spécifié dans le constructeur (notifyConfig.vendor). La sélection automatique des fournisseurs est une opération asynchrone. Par conséquent, ce rappel est nécessaire pour indiquer quand il est possible d’appeler notifyConfig.init() en toute sécurité, car cette méthode nécessite que le fournisseur soit défini avant d’être appelé. En outre, vous devez également vérifier si notifyConfig.vendor défini a été défini dans le rappel pour vous assurer qu’un fournisseur a été spécifié.

    Tableau 27. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir l’ID de l’appelant. Cet exemple suppose que le fournisseur est défini dans le constructeur.

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

    NotifyClient : setClientAvailable(booléen disponible)

    Définit la disponibilité d’un agent client WebRTC actif.

    Ce type de disponibilité est différent de celui d’un agent en cours d’appel. Dans ce cas, un client WebRTC actif peut être connecté et ne pas être en communication, mais ne pas vouloir recevoir d’appels.

    L’appel de cette méthode met à jour la valeur du champ Disponible sur l’enregistrement Session connectée au client de notification [notify_client_session] associé à cette session client. Vous pouvez obtenir une liste de clients disponibles à l’aide de la méthode getAvailableClients().

    Tableau 28. Paramètres
    Nom Type Description
    Disponible booléen Marqueur indiquant si un client WebRTC actif souhaite recevoir des appels.
    • Faux : le client ne veut pas recevoir d’appels.
    • Vrai : le client souhaite recevoir des appels.
    Tableau 29. Renvoie
    Type Description
    nul