Asterisk et le protocole SIP

Bonjour à tous! Je suis Benoît, développeur d’applications chez NetDevices, spécialisé notamment dans le développement d’applications. Aujourd’hui, je vous présente le principe d’Asterisk et le protocole SIP.

Qu’est-ce qu’ Asterisk ?

Asterisk est un autocommutateur téléphonique privé (PABX) sous linux. L’autocommutateur téléphonique permet une gestion complète des communications internes et externes d’un ensemble de postes. Par exemple, c’est le cas au sein d’un groupe d’assurance, d’une entreprise, ou d’un hôpital.  

Asterisk possède ainsi un grand nombre de fonctionnalités qui répondent à une grande majorité des besoins en téléphonie. Il permet par exemple les appels directs (comme une ligne de téléphone classique), mais aussi la messagerie vocale, les files d’attente, les conférences d’appels, la redirection d’appel vers le service concerné suivant le choix des clients (centre d’appel)…

Ces fonctionnalités seront certainement complétées par des protocoles visant à améliorer l’UX téléphonique et mobile.

Un protocole possible: SIP.

Qu’est-ce que le protocole SIP ?

SIP (Session Initiation Protocole) est un protocole qui permet d’établir des appels multimédias (audios, vidéos, messages). Les appels sont d’abord initiés en audio. Puis il s’agit de passer en mode vidéo sans  aucune coupure de l’appel. Un autre exemple en cas de une perte de connexion ou de débit, il y a une renégociation de l’appel permettant de le garder en cours tout en diminuant la qualité de l’appel.

Ceci sera possible grâce au codec.

Qu’est-ce que le Codec ?

Le Codec (“codage-décodage”) est un dispositif capable de compresser et/ou de décompresser un signal numérique. Chaque codec peut avoir plusieurs modes de fonctionnement qui changeront ses performances. Le choix du codec à utiliser se fait donc en prenant en compte la possibilité de l’utiliser de bout en bout (lors d’un appel de type VOIP, il faut que les deux terminaux puissent coder, mais aussi décoder le signal, et donc avoir le codec d’installé) mais aussi de la qualité du réseau. Un codec avec un fort taux de compression (et donc une perte de qualité) sera choisi quand la qualité du réseau n’est pas suffisante. A contrario, les codecs de meilleure qualité seront utilisés avec des connexions de bonne qualité.

Quelques Exemples de codecs

Le codec le plus connu dans l’audio est: Le MP3

Cependant lors d’appel audio/vidéo les codecs les plus couramment utilisés sont:

  • G711 G723 G726 G729 GSM iLBC pour l’audio (on retrouve bien le GSM qui est utilisé pour les appels sur les réseaux mobiles)
  • H.261 H.263/ H.263+ / H.263++ MPEG-4 H.264 pour le vidéo

Il en existe bien évidemment plein d’autres, certains libres, d’autres propriétaires.

Projet made in NetDevices

Au sein de NetDevices, nous avons été amené à utiliser ces technologies pour un de nos clients. Notre client (VideoDesk) est une start-up qui permet à des sites de e-commerce d’intégrer une interface de “chat” (texte, audio ou vidéo) entre clients et vendeurs. VideoDesk proposait déjà leurs services dans l’intégration sur les sites internet et nous ont contactés afin de créer un SDK permettant d’intégrer leur service à des applications mobiles. Le SDK a été développé pour une intégration sur iOS et Android. Pour effectuer les différents tests, nous avons mis en place au sein de notre entreprise, un serveur SIP afin d’avoir la main sur les échanges de bout en bout.