Initialisation du client COMHUB

Connection au serveur COMHUB

Avant de pouvoir utiliser les fonctions COMHUB, il est nécessaire d'établir une connexion avec le serveur. Cette opération est réalisée par la méthode de classe "connect()", qui accepte comme unique paramètre l'URL du relai vers le serveur COMHUB. Techniquement, cette connexion consiste à vérifier la compatibilité avec le serveur COMHUB (numéro de version concordant) et appeler le web service "user/info" (se repporter à la documentation de l'API COMHUB/WebServices)

Pour rappel, il est impossible d'attaquer directement un serveur COMHUB car le navigateur ne le permet pas (relire les premiers chapitres de cette documentation pour plus de détails sur le " cross domain scripting ").

Au cours de la phase de connexion, le client javascript récupère les informations concernant l'utilisateur associé au canal COMHUB. Ces informations sont accessibles par la méthode "userInfo()", ainsi que les méthodes userid(), phoneList(), displayName(), extension(), etc. Ces méthodes sont détaillées dans les pages suivantes.

      // Initializes COMHUB interface
$(function()        
{
    if(!cComHub.connect("comhubproxy.php"))
    {
        alertf("The connection to COMHUB server failed !\n\n%s",cComHub.lastError());
        return;
    }
    alertf("Welcome, %s",TbComHub.displayName());
});
  

La méthode de classe "connect" positionne une variable globale "TbComHub", qui sera utilisée ensuite pour faire référence à l'instance du client COMHUB que l'on vient de créer.

Boucle évenementielle

Par défaut, l'instance COMHUB initialisée ne se préoccupe pas de récupérer les évenements du serveur. Lorsque que la page de votre application le nécessite, il faut donc activer explicitement ce mécanisme. C'est essentiel quand on désire effectuer des actions sur les appels entrants (montée de fiche, par exemple).

D'un point de vue technique, la boucle évenementielle est implémentée en maintenant en permanence une unique connexion HTTP vers le serveur. Dès qu'un évenement est disponible, il est retourné via cette connexion, et inséré dans sa boucle évenementielle. Lorsque plusieurs évenements sont disponibles, ils sont retournées en même temps afin d'optimiser l'utilisation des ressources réseau et réduire les délais d'acheminement.

void startEventLoop ( [function(event) { ... }] )
Démarre la boucle évenementielle COMHUB et positionne (en option) une fonction callback qui traitera les évenements reçus. Il est bien sur possible d'ajouter d'autres callback ultérieurement. Plus de détails sur les méthodes liées aux évenements sont disponibles plus loin.
      // Initializes COMHUB interface
$(function()        
{
    if(!cComHub.connect("comhubproxy.php"))
    {
        alertf("The connection to COMHUB server failed !\n\n%s",cComHub.lastError());
        return;
    }
    // Starts event loop
    TbComHub.startEventLoop(function(event)
    {
        LOGERROR("received event %s - %s",event.type,Dumper(event));
    });
});