Stéphanie Lacerte Document technique Connextek 31 mai 2013 Cloudtel
Introduction Le logiciel Cloudtel a été conçu dans le langage de programmation Java. Ce logiciel utilisant la voix sur IP, communique avec l IP-PBX avec l interface de programmation Asterisk. Il permet de faire afficher les informations du IP-PBX dans l espace conçu pour ceci ainsi qu établir une communication instantanée avec une autre personne par Voix sur IP. Définition Qu est-ce que la téléphonie IP? Avec la téléphonie IP, votre téléphone est directement branché au réseau internet plutôt qu à une ligne traditionnelle terrestre.
La téléphonie IP marie les options du téléphone portable à l atout principal du téléphone de maison : la stabilité. Le service IP s adapte à tout service Internet haute vitesse - DSL, par câble ou autre. Peu importe l endroit et le fournisseur Internet. Dans la téléphonie IP, la Voix sur IP peut être utilisée. Elle est l acronyme de Voice over IP (VoIP)et est une technologie qui permet à deux personnes de communiquer. Cette technologie est un mode de téléphonie utilisant le protocole de télécommunications créé pour Internet. La voix est numérisée puis acheminée sous forme de paquets comme n importe quelles autres données. Peu connu pour le moment, Voix sur IP est une famille de technologies qui balaient des implications pour tous ceux qui utilisent des téléphones, Internet, fax, e-mail et le Web. VoIP emprunte et augmente, de nombreuses disciplines de la technologie des communications; elle promet de révolutionner la plus connue de ces technologies, le téléphone. VoIP a trouvé sa place dans les systèmes téléphoniques d'affaires, les logiciels de messagerie de bureau, et le service de téléphonie résidentielle.
Qu est-ce qu un IP-PBX? PBX est l acronyme de Private Branch exchange. Il est pour les entreprises, le dispositif d'échange interne de données et de liaison avec le réseau téléphonique. On peut utiliser les synonymes IP-PBX, PAX et PABX également. En d autres mots, un PBX, permet de relier les lignes en interne et d'appeler à l'extérieur, c est un système de gestion téléphonique. Bien entendu, il permet aussi de tenir des conférences téléphoniques, des transferts d'appel, etc. Le système est directement déployé dans l'entreprise, sans passer par des serveurs distants. Concrètement, l'utilisateur du poste ne verra pas de grandes différences
par rapport à un PBX et un système téléphonique normal, car les fonctionnalités sont exactement les mêmes. Pour ce projet, le PBX utilisé a été FreePBX. Celui-ci est un outil de configuration graphique, très convivial, du logiciel de téléphonie libre Asterisk. C'est également le logiciel utilisé dans la distribution Trixbox et Elastix. Ces dernières utilisent linux CentOs. Pour Cloudtel, les fonctionnalités principales utilisées ont été : Extension (SIP peers) Trunk Réceptionniste digital (IVR) Stationnement virtuel/mise en attente (Parking lots) Suivi (Follow me) API Asterisk CLI Asterisk Commençons tout d abord avec les extensions. Ceux utilisés pour ce projet ont tous été des SIP, Session Initiation Protocol. Les SIP ont été conçus pour établir, modifier et terminer des sessions multimédias. Ils sont responsables de l authentification et de la localisation des
usagers. Les SIP n échangent pas les données durant les sessions de communication. Ils sont indépendants de la transmission de données ce qui permet d échanger tous types. Donc, chaque SIP correspond à un usager du système téléphonique dans notre cas. Par la suite, c est au tour du «Trunk». Un lien TRUNK est un lien qui permet de faire transiter plusieurs VLANs sur un seul lien physique. Il faut utiliser un Trunk pour effectuer un ou plusieurs appels à un système téléphonique. Dans notre cas, il fait le lien entre le téléphone physique vers l API Asterisk-Java, qui lui communique avec le PBX. Si le Trunk n existe pas, la communication entre ces éléments ne peut pas se faire. Vient le tour du IVR, réceptionniste virtuel ou bien serveur interactif vocal. Plusieurs noms sont associés à cet élément pour tous signifier la même chose : logiciel couplé au PBX permettant aux utilisateurs d'accéder à la base de données d'une société et d'émettre diverses demandes de service, au moyen d'un téléphone fixe, mobile ou logiciel. Les serveurs vocaux interactifs entrent plus généralement dans la catégorie des systèmes de dialogue. Il existe plusieurs modes d interaction, la plupart du temps, le système diffuse un intitulé pré-enregistré (bande magnétique ou fichier audio) après quoi l usager est invité à choisir une option parmi une liste de choix. Dans notre cas, ces celui-ci qui est utilisé.
Du côté des parkings lots, aire de mise en attente, ce module consiste à spécifier une destination pour les appels qui sont orphelins. Ceci peut se produire si un transfert d appel n est jamais acheminé ou bien si on met l appelant en attente. Dans le PBX, il y a la possibilité d activé l option Follow Me pour une extension. Cette option consiste à jumeler plus d un numéro de téléphone à la même extension. Donc si un usager essai de rejoindre une extension en particulier et que le Follow me est activé pour cette extension avec un numéro de cellulaire, et bien le poste de cette personne ainsi que son cellulaire vont sonner. Ce module est souvent utilisé dans les entreprises, car il permet de recevoir les appels du poste fixe sur n importe quel autre téléphone. Le Asterisk Manager Interface (AMI) permet à un programme de client de se connecter à une instance Asterisk et émettre des commandes ou lire les événements sur un flux TCP / IP. Pour Cloudtel, c est Asterisk-Java et cela est particulièrement utile, car il est possible par la suite d accéder toutes les informations du système téléphonique (PBX) et de les manipuler. Une «clé: valeur» protocole simple basé sur la ligne est utilisée pour la communication entre le client et la connexion PBX Asterisk.
Pour terminer, l'interface de ligne de commande Asterisk (CLI) est atteinte en utilisant la commande shell Linux «asterisk-r». Si on souhaite atteindre la sortie de débogage, ajoutez un ou plusieurs v: s Le serveur Asterisk doit être exécuté dans le contexte de la CLI pour commencer. L invite de commande permet avec les commandes générales d accéder aux informations principales tel que : Gestion de serveur, commandes AGI, Commandes de manipulation de base de données, Commandes IAX Chaîne, Commandes canaux H323, Commandes canaux SIP, Commandes canal Zap, Console commandes de canal, Asterisk MGCP commandes canal, commandes de
canal maigres, Asterisk canal CAPI commandes, Sirrix commandes canal RNIS et les fichiers batch avec CLI. Asterisk-Java Dans Cloudtel, Asterisk, comme mentionné ci-dessus, est l interface utilisée pour communiquer entre le système téléphonique et l usager. C est pourquoi il est bien important de commencer le serveur avec la création d une connexion avec le PBX. Par la suite, plusieurs possibilités s offrent à nous ; il est possible d accéder à plusieurs informations grâce à l API. Dans Cloudtel, le «.live» et le «.manager» regroupant les actions et les évènements ont été les plus utilisés. En général, le client envoie des paquets d'action pour le serveur Asterisk, le serveur Asterisk effectue l'opération demandée et renvoie le résultat (souvent le succès ou l'échec) d'un paquet de réponses. Comme il n'y a aucune garantie quant à l'ordre des paquets de réponses du client, la requête comprends généralement un paramètre ActionID dans chaque paquet d'action qui est renvoyé par Asterisk dans le paquet de réponses correspondantes. De
cette façon, le client peut facilement correspondre action et les paquets de réponses lors de l'envoi Actions en tout cas désiré sans avoir à attendre pour les paquets de réponses en suspens avant d'envoyer la prochaine action. managerconnection.sendaction(); Cloudtel utilise ces paquets pour obtenir plusieurs informations. Tout d abord, une requête est envoyée lorsqu un usager/client est sur l IVR. Le nom et le numéro de l appelant sont renvoyés et affichés dans l espace réserver pour celui-ci dans le logiciel Cloudtel. Le même protocole est utilisé pour obtenir les informations d un usager mis dans un Parking lot. On affiche le numéro de l appelant, l extension sur lequel il est mis en attente ainsi que le temps restant avant la coupure de la communication. On peut également obtenir toutes les informations de nos extensions. Dans notre cas, le numéro de poste, le nom ainsi que son statut est affiché en temps réel dans le logiciel. Une extension peut avoir différents statuts ; Connecté En appel Occupé Déconnecté En attente En sonnerie
Si une extension est communication avec un usagé, Asterisk permet d obtenir le nom et le numéro de l usager. return c.getcallerid().getnumber() + " - " + c.getcallerid().getname(); Pour terminer, Asterisk permet également d initialiser des appels à partir d une extension de son PBX. Le protocole n est pas très compliqué, Asterisk se connecte au PBX tel qu expliqué ci-dessus pour ensuite créer un appel sortant. Il suffit de lui donner en paramètre l extension d où l on veut faire l appel, ainsi que le numéro que l on souhaite appeler et le tour est joué.