Documentation technique CTI

Base de connaissances

Documentation technique CTI


Icons/System/eye-open Created with Sketch. 2902 vues 26.03.2018 Telecom / Téléphonie (Ligne VoIP)

Définition

CTI (Computer Telephony Integration) : Dispositif permettant d’interfacer le système de téléphonie aux applicatifs informatiques. Il permet principalement de gérer la remontée de fiches.

ERP (Enterprise Resource Planning) : Application dont le but est de coordonner l'ensemble des activités d'une entreprise (activités dites verticales telles que la production, l'approvisionnement ou bien horizontales comme le marketing, les forces de vente, la gestion des ressources humaines, etc.) autour d'un même système d'information.

CRM (Customer Relationship Management) : Application dont le but est d’optimiser la qualité de la relation client, de fidéliser et de maximiser le chiffre d’affaires ou la marge par client.

TOKEN (Jeton d'authentification) : Jeton utilisé en complément ou à la place d'un mot de passe pour identifier la ligne du client.

CGI (Common Gateway Interface) : Méthode standard utilisée pour générer un contenu dynamique de pages et d'applications web. Il fournit une interface entre le serveur web et l'application qui l'utilise.

Contexte

Les outils CTI d'OVHcloud permettent de recevoir des événements en continu sur l'état des lignes et des files d'appels OVHcloud.

Champ d'action

Les événements sont remontés pour le protocole SIP (sipCirpack) et les files d'appels OVHcloud (easyHunting et cloudHunting). Cela fonctionne pour quelques postes MGCP excepté dans les cas suivants :

  • Transferts d'appels
  • Appels en attente
  • Appels en absence

Prérequis

Cela nécessite d'effectuer en continu des requêtes (http) curl de long-polling du côté client. Aucune requête serveur n'est exécutée.

Principe

OVHcloud fournit des événements pour les lignes SIP/MGCP et files d'appels.

Pour une ligne :

  • Sonnerie (start_ringing)
  • Décroché (start_calling)
  • Fin de sonnerie (end_ringing)
  • Raccroché (end_calling)
  • Enregistrement (registered)

Pour une file d'appels :

  • Entrée d'un numéro dans la file (member-queue-start)
  • Prise en charge d'un numéro dans la file (bridge-agent-start)
  • Raccroché d'un numéro dans la file (member-queue-end)
  • Raccroché d'un numéro pris en charge (bridge-agent-end)
  • Nombre de numéros en queue (member-count)

Récupération du token d'authentification

Vous pouvez associer un token à une ligne/alias (sipCirpack, mgcpCirpack, easyHunting, cloudHunting) ou à un groupe de facturation.

Via l'API

One liner CURL

Après avoir récupéré votre token depuis l'API, supposons que celui-ci soit : ABCDEFAB-CDEF-ABCD-EFAB-CDEFABCDEFAB,

Vous pouvez vérifier la réception du flux d'événements en exécutant la requête Curl suivante :

curl https://events.voip.ovh.net/?token=ABCDEFAB-CDEF-ABCD-EFAB-CDEFABCDEFAB

Réception des paramètres

Le format type d'un événement (en JSON) :

Data: 
    Billing: "0033912312312" (Le numéro OVH)
    Body: "SIP/2.0 200 OK" (Le header du paquet SIP)
    CallId: "N2ZkZmEyNGMxZWM0N2VhN2M4NGJkMTY4ZGYwZmU2OTY." (Le callId de l'appel)
    Called: "0033912312312" (L'appelé)
    Calling: "0033912312312" (L'appelant)
    Cseq: "181 REGISTER" (Le code CSeq du paquet SIP)
    DateStart: Thu Mar 05 2015 12:44:30 GMT+0100 (CET) (La date)
    Dialed: "0033912312312" (Le numéro composé)
    Event: "registered" (Le type d'événement)
    Protocol: "sip" (Le type de protocole, sip ou mgcp)
    RelevantInfo: "" (Information importante)
    Ts: 1425554670.102
    TsGet: 1425554670238926800 (Le timestamp de l'événement en nanoseconde)

Date: "2015-03-05T12:24:30.255954 (CET)"
Details: 
    Description: "Gaelle Becquet" (Description du numéro OVH)
    Id: "295670" (Identifiant de la ligne du numéro OVH)
    IdBillingAccount: "59415" (Identifiant du groupe du numéro OVH)
    SimultaneousLine: "2" (Nombre de lignes simultanées)
    Type: "sipCirpack" (Type de ligne)

Event: "registered" (Le type d'événement)
Ressource: "0033912312312" (Le numéro OVH)
Service: "sip" (Le protocole)
Timestamp: 1425554670255954700 (Le timestamp de l'événement en nanoseconde)
Token: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" (Le token)

IMPORTANT !!!

  • Pour les événements de type register les informations de l'appelant, l'appelé et numéro composé sont les mêmes que le numéro OVH.
  • Il est possible que certains champs soient redondants.
  • Dans le cas d'une file d'appels, les headers freeswitchs sont stockés dans "Data" sous la forme "Queue" suivi du header sans les patterns "CC" et "-" .

Exemple de script Perl

Voici un exemple basique en Perl :

#!/usr/bin/perl

use strict;
use LWP::UserAgent;
use HTTP::Headers;

my $ua = LWP::UserAgent->new('keep_alive' =>  0, timeout => 7200);

while (1)
{
    my $request = HTTP::Request->new("GET",'https://events.voip.ovh.net/?token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', HTTP::Headers->new(), "\n\n");
    my $response = $ua->request($request);
    if ($response->is_success)
    {
        print $response->content."\n";
    }
}

Aller plus loin

Échangez avec notre communauté d'utilisateurs.

Articles associés