(abstract)api Solution de Couplage Télécom-Information [CTI] Préparé pour: Partenaires & Editeurs TelNowEdge Préparé par: Bruno Guibert Résumé Extrait du Référentiel des fonctions primitives de couplage CTI de la Distribution Asterisk Telnowedge TELNOWEDGE SAS - 95, Rue des Grives F-38920 CROLLES - Tel: 04 38 92 00 92 RCS Grenoble 495 075 079 - TVA FR 49495075079 - NAF 722C - APE 6201Z
Introduction Telnowedge éditeur de solutions innovantes de Communication sur IP (CoIP) propose une approche intuitive de couplage entre informatique et téléphonie. A destination de partenaires éditeurs et intégrateurs, cette API a pour avantage de faciliter les échanges bi-directionnels d informations et d événements entre une application informatique et une application voix [ipbx]. Le respect des standards ouverts de l informatique guide constamment nos efforts de recherche & développements. Architecture CTI Sous le terme couplage téléphonie-informatique se retrouvent 3 grandes fonctions généralement attendues dans ces architectures tout IP. La présentation du nom : de part l utilisation de téléphone à affichage LCD, il est maintenant commun de proposer une présentation du nom. Cette fonction à l avantage de permettre un meilleur accueil des appelants. Le Clic2Dial permet d automatiser la numérotation depuis des outils bureautiques. Les produits les plus répandus (outlook,..) sont aujourd hui couvert par cette offre. Des produits relevant des mêmes technologies peuvent être étudiés. La levée de fiche. Cette fonction relève d une analyse systématique des besoins fonctionnels de l entreprise. En effet sa pertinence est le résultat de l adéquation entre les informations reçues (généralement le N de l appelant), la somme d informations disponibles dans le SI de l entreprise, et enfin, de la fonction de l appelé au sein de l entreprise (Direction, Opérations, Finances, ) L approche de Telnowedge en matière de CTI est centrée sur le besoin de chaque entreprise. Les outils informatiques devront être configurés de manière à faciliter la dynamique de levée de fiche A un membre de la direction, on fournira les informations de type société (tableau de bord,.) A un membre d une équipe plus opérationnelle, une liste des dernière opérations en cours (commande, livraisons, installation demande de support, etc) sera fourni Enfin, à un membre de l équipe financière (comptabilité, ) ce seront, dans aucun doute, des données économique et/ou budgétaire qui seront restituée à l écran. De part sa position d éditeur logiciel, et en relation avec des acteurs à même de porter les adaptations nécessaires aux progiciels métier (ERP, CRM, GED, ) utilisés par l entreprise, Telnowedge propose tout type de couplage sur une logique de type souscription/notification. La réalisation de tel couplage et leur mise en oeuvre sont généralement conduit comme un projet indépendant sur la base de spécifications Solution de Couplage Téléphonie-Informatique TelNowEdge Page 2
fonctionnelles détaillées. Enfin la sécurité de la plateforme Telnowedge - basée sur une authentification MD5 - apporte toutes les garanties de sécurité à l utilisateur final. Principales Références/Produits Produit Partenaire Application Informat, Atlante, ERP, CRM, CallCenter CoServIt CRM, CallCenter GlobalTel CRM (Support & SAV) Abicom, Aprias OCS, Lync CoServIt Supervision Services IT (ITIL) Corimao Console PO/PC Axx-it CRM Profession libérale/secteur bancaire Combodo IT management, infogérance, ITIL Mécanisme CTI de base. Principe CTI de Couplage entre Informatique & Téléphonie (c) Telnowedge 3 levée de fiche : http://@ IP 4/subscribe/event sur notify Select CRM.iunfo from N présenté Display N présenté @ IP 1 Info affichée @ IP 2 Poste PC/Mac ERP CRM N distant Notifie LAN N présenté 1 Clic2Dial : Fonction Poste PC http://@ip 4/Call/N distant/poste 123 @ IP 4 Nom stocké SIP Phone Dial ipbx Souscrit @ IP 3 Poste # 123 2 présentation du nom : Fonction Poste SIP Select CRM.nom from N présenté : Display Solution de Couplage Téléphonie-Informatique Le schéma ci contre décrit de manière fonctionnelle la logique des traitements des informations échangées entre les différents systèmes d information cibles : ipbx; ERP, CRM pour trois fonctions de base (code couleur). TelNowEdge Page 3
Syntaxe générale: La syntaxe générale des fonctions API est: http ://<nom-ipbx-serveur>:<port>/3pcc/<fonction>/<argv1/argv2: /Argvn> avec: nom-ipbx-serveur : un nom de host ou son adresse IP port : port d attaque http du service hébergé par l ipbx 3pcc : code fonction : parmi les verbes référencés ci dessous Argv1/Argv2: /Argvn: autant d arguments que la fonction pré citée le nécessite. Exemple http ://obelix:1984/3pcc/call/209/208/pierre DUVAL A propos de la sécurité L ensemble des commandes peut être sécurisé (authentifié) avec la syntaxe suivante : http://<@ip:port>/auth/<hash>[/< user >/uuid/3pcc/< cmd>/...] L authentification est faite par utilisateur (valeur précédant le uuid) et par commande. Il existe 2 méthodes possibles à ce jour: Méthode 1: par adresse IP. Dans ce cas on fait confiance à l adresse IP du demandeur. Cette méthode est intéressante pour la partie de gestion des SDA (GetNumDir, SetNumDir, DelNumDir) Méthode 2: Par hash MD5. Cette méthode est celle à utiliser pour les commandes de gestion des appels Dans les deux cas, le champ «uuid» doit changer à chaque commande. Solution de Couplage Téléphonie-Informatique TelNowEdge Page 4
Extraits (5) de l API Call: Etablir un appel 3pcc/Call/<poste source>/<numéro destination>/[<caller ID>] poste source: Le poste qui fait la demande de numérotation numéro destination: le numéro de la destination doit respecter le plan de numérotation Caller ID: La chaîne de caractère présentée sur le terminal source. si OK : structure JSON { extention :"<poste source>","status":"ok","uuid":"<le handle pour manipuler l appel>"} Exemple: { extention :"208","status":"OK","uuid":"1TmSASTSvLwal"} Pickup : Récupérer un appel en cours non répondu 3pcc/Pickup/<poste source>/<handle call> Permet de faire décrocher un appel (sur certain téléphone). poste source: Le poste qui fait la demande de pickup handle call: le numéro unique de l appel. Celui retourné par la commande GetDevices Si OK: {"status":"ok", extention :"<poste source>","uuid":"<celui de l appel>"} Si Erreur: {"status":"error", "description":"un explicatif de l erreur"} Solution de Couplage Téléphonie-Informatique TelNowEdge Page 5
TransferB : Activer un Transfert Aveugle ([B]lind) 3pcc/TransferB/<poste source>/<handle call source>/<poste destination>/[<caller ID>] Transfert direct d un appel sans aucune annonce. poste source: Le poste qui fait la demande de transfert handle call source: le numéro unique de l appel, retourné par la commande Call ou GetDevices. poste destination: le poste destination du transfert.! Ce numéro doit respecter le dialplan de l installation (Cf FreePBX). Caller ID: La chaîne de caractère présenté sur le terminal destination.! Ce paramètre est optionnel. Par défaut on présente «ClickDial TNE» Si OK: {"status":"ok", extention :"<poste source>","uuid":"<celui de l appel>"} Si Erreur: {"status":"error", "description":"un explicatif de l erreur"} Subscribe : S abonner à un événement SIP 3pcc/Subscribe/<extention> <ext1-ext2>,<ext3>,/<event1>, <event2>... All/<methode>[/param] Permet de recevoir une notification sur une machine externe avec la méthode choisi dans <methode>. Le système met en place les notifications pour l ensemble des terminaux associés au poste source. L adresse IP de destination de la notification et celle du demandeur (celui qui exécute le Subscribe). «event» peut prendre comme valeur: OnLine,Wait,Call,Up,Ringing,Hangup,QueueCallIn,QueueCallOut,QueueCallAbandon,QueueMemberIn, QueueMemberOut, QueueMemberPaused,All Dans le cas de All on souscrit en une seule fois à tous les events ext: Le poste qui fait la demande. Même syntaxe que pour GetExtention status: sur quel événement on veut la notification: valeurs supportées : voir au dessus methode: growl ou notifier pwd: celui utilisé pour Growl sur la machine distante. Les retours sont les mêmes que pour la commande GetDevices. Solution de Couplage Téléphonie-Informatique TelNowEdge Page 6
QueueStatus : Fournir les informations sur une/des/toutes les/ queue(s) 3pcc/QueueStatus/<queue> All <queue1>,<queue1>,...[/summary Full] queue: Numéro de queue ou liste de numéro de queues All; permet d avoir l'information sur l ensemble des queues du système. Summary: Donne une information minimum par queue. Nombre d agents, nombre d agents en pause, nombre d appels en attente. Full: Donne toutes les informations sur la (les) queues. OK ou Error si OK : structure JSON avec [Exemple] Exemple sur la queue 200 «Summary» {"status":"0k","queue":{"1":{"pausedcount":"0","info":{"queue":"200"},"agent":{"1": {"Location":"Local/208@from-internal/n"}}, "agentcount":"1", "callcount":"0"}}, "queuecount":"1"} Exemple sur la queue 200 «Full» {"status":"0k","queue":{"1":{"pausedcount":"0","info":{"holdtime":"", "Completed":"", "ServicelevelPerf":"0.0", "Queue":"200", "Calls":"", "Abandoned":"", "ServiceLevel":"", "Weight":"","Max":""},"agent":{"1":{"Status":"1","Queue":"200","Paused":"", "Membership":"static","Penalty":"","LastCall":"","CallsTaken":"","Location":"Local/208@frominternal/n","Name":"Local/208@from-internal/n"}}, "agentcount":"1", "callcount":"0"}},"queuecount":"1"} Solution de Couplage Téléphonie-Informatique TelNowEdge Page 7
Annuaire des primitives Call : Etablir un appel GetNumDir: Rendre l association actuelle d une extension SetNumDir: Créer association et route entre une SDA/SVI et une extension DelNumDir: Supprimer une association SetNumDir Hold/UnHold : Activer la pause et reprise d un appel GetExtention : Identifier dynamiquement les associations utilisateur/terminaux SetExtention : Permettre les modifications sur l état d une (ou des) extension(s) Pickup : Récupérer un appel en cours non répondu hangup : Raccrocher un appel en cours TransferA : Activer un Transfert Annoncé ([A]nnounced) TransferB : Activer un Transfert Aveugle ([B]lind) PlayDTMF : Générer une suite de DTMF Subscribe : S abonner à un événement SIP UnSubscribe : Activer une rupture d abonnement à un événement SIP QueueStatus : Fournir les informations sur une/des/toutes les/ queue(s) QueueAddMember : connexion d un agent sur une (des) queue(s) QueueRemoveMember : deconnexion d un agent sur une (des) queue(s) QueuePauseMember : mise en pause d un agent sur une (des) queue(s) QueueUnPauseMember : sortie de pause d un agent sur une (des) queue(s) GetAsteriskDB : Fournit la valeur d une variable de la database Asterisk SetAsteriskDB : Affecte une valeur à une variable de la database Asterisk DelAsteriskDB : Détruit une variable de la database Asterisk SetDeviceState : Donne un état à un hint Asterisk du type Custom:<hint> Solution de Couplage Téléphonie-Informatique TelNowEdge Page 8
Telnowedge juin 2013 Informations : info@telnowedge.com Retour d expérience : bruno.guibert@telnowedge.com Notice légale Telnowedge SAS détient les droits de propriété intellectuelle de la solution TNE4IP et de l API décrit dans ce manuel. TNE4IP et l API TNE4IP restent la propriété de Telnowedge nonobstant l utilisation que vous en faites. La licence d utilisation de l API n emporte aucun transfert de droit de propriété à votre endroit ou à celui des utilisateurs finals. Nous n'acceptons aucune responsabilité ou obligation concernant tout dommage de quelque nature que ce soit découlant de toute utilisation de l API TNE4IP. En outre, vous reconnaissez que, si l'api TNE4IP est amenée à être utilisée en combinaison avec votre application et d autres logiciels ou données de tiers, Telnowedge ne porte aucune responsabilité pour tout dommage qui en découlerait. Vous devez veiller à ce que, dans toute utilisation de l API TNE4IP, apparaissent la mention abrégée «API Telnowedge» et l année en cours. Vous ne devez en aucun cas utiliser l API TNE4IP pour demander l'enregistrement de toute marque commerciale ou pour engager une procédure auprès de n'importe quel registre relatif au commerce ou au droit des marques. Telnowedge se réserve le droit d'apporter des modifications à l API TNE4IP sans préavis. Solution de Couplage Téléphonie-Informatique TelNowEdge Page 9