Que fait Twilio ?

December 11, 2019
Rédigé par

Que fait Twilio ?

Nous utilisons toutes et tous nos téléphones chaque jour. On ne peut aller nulle part sans eux. Il est même fort probable que vous ayez interagi d'une manière ou d'une autre avec un système téléphonique alimenté par Twilio. Cependant, comme Twilio travaille en arrière-plan pour relier les applications Web et les téléphones, il peut être difficile de comprendre comment Twilio s'intègre dans le flux des communications client.

Que fait réellement Twilio ? Et comment fonctionne-t-il ? Pour répondre à ces questions, nous aurons d'abord besoin d'un peu de connaissances sur le monde de la téléphonie.

Nous allons discuter de sujets de haut niveau, mais nous avons inclus des liens vers des informations plus détaillées sur certains concepts clés à la fin de cet article.

Le monde des télécommunications

Il existe un réseau ancien. Plus ancien qu'Internet. Un réseau qui permet les communications vocales et par SMS telles que nous les connaissons. Il s'agit du réseau téléphonique. Bien qu'il soit essentiel pour la connectivité à l'échelle mondiale, ce réseau fonctionne dans un écosystème relativement fermé, lent et coûteux.

Le réseau téléphonique est connecté par des opérateurs - responsables du flux de voix, de messages textes et de données dans le monde entier. Les opérateurs vendent des connexions à leurs réseaux.

Pour vous et moi, cette connexion est simple : un téléphone portable ou une connexion Internet domestique. Les consommateurs sont tenus à l'écart de l'univers complexe des langages, du matériel et des protocoles utilisés pour assurer un réseau téléphonique mondial.

Toutefois, pour les entreprises, ce n'est pas si simple. Pour créer des fonctionnalités personnalisées en plus de cette connexion, comme un système téléphonique d'entreprise (PBX) ou un centre d'appels, de nombreux éléments supplémentaires sont nécessaires. Des serveurs et des logiciels spécialisés sont nécessaires pour effectuer ce travail, ainsi que des installations spécialisées pour héberger et faire fonctionner l'équipement. Une main-d'œuvre spécialisée doit également intervenir pour installer et entretenir l'équipement.

Imaginez investir des années de travail et des millions d'euros simplement pour configurer votre installation. Que se passerait-il alors si vous vouliez la modifier ? Préparez-vous à investir encore plus de temps et d'argent pour passer à un nouveau système.

Tous les systèmes ne parlent pas la même langue

Les réseaux téléphoniques fonctionnent également grâce à une myriade de protocoles complexes, souvent propriétaires. Internet communique principalement à l'aide d'un protocole fondamental de base, le protocole HTTP (HyperText Transport Protocol).

Les réseaux téléphoniques utilisent un ensemble de protocoles divers, chacun adapté à la tâche à accomplir : SIP (Session Initiation Protocol) pour la gestion des sessions voix, vidéo et de messagerie en temps réel XMPP (Extensible Messaging and Presence Protocol), un protocole de messagerie en temps réel spécialisé (par exemple, IRC) ; RTP (Real-time Transport Protocol) pour la diffusion de voix et de vidéo sur les connexions IP ; Les communications GSM (Global System for Mobile) pour connecter des appareils mobiles.

Pour n'en citer que quelques-uns. La liste complète a de quoi donner le tournis et les protocoles eux-mêmes peuvent être très complexes. Il n'est pas facile d'implémenter ces protocoles.

Comment Twilio résout-il le problème ?

Chez Twilio, nous avons constaté qu'Internet n'avait pas les mêmes complexités que le réseau téléphonique.

  • Le nombre de développeurs est impressionnant, car il est relativement facile d'apprendre à développer du contenu sur Internet.
  • Il existe une méthode de communication standard : HTTP.
  • Internet est indépendant du langage de programmation. Les développeurs peuvent écrire leurs applications dans un langage qui leur est familier.
  • Les coûts d'investissement sont très faibles en raison de l'existence de solutions PaaS (Platform as a Service, ou plateforme en tant que service). Les coûts de déploiement sont faibles au début et évoluent à mesure que l'entreprise se développe.
  • Le changement est beaucoup plus facile et banal. Les coûts liés à l'essai d'un autre service ou d'une autre technologie sont très faibles.

Mais il y avait un obstacle de taille : Internet n'était pas connecté au réseau de téléphonie.

Twilio voit sa place entre ces deux réseaux. Nous faisons tout notre possible pour fournir un pont entre les opérateurs et Internet. Les développeurs peuvent écrire des logiciels à déployer aux emplacements où l'apprentissage est facile et bon marché. Twilio peut permettre à ces logiciels d'interagir avec l'écosystème d'opérateurs hautement spécialisé.

Pourtant, Twilio ne se trouve pas réellement dans le fossé qui sépare Internet et les télécommunications. Il déploie toute son infrastructure sur Internet. Grâce à des connexions dédiées aux opérateurs, Twilio fait le lien entre Internet et la téléphonie.

Tout commence par le numéro de téléphone

La magie de pouvoir communiquer avec le réseau téléphonique est construite sur la capacité à cibler les communications vers un appareil spécifique. Comme nous le savons toutes et tous, chaque téléphone portable dispose d'un numéro de téléphone qui l'identifie de manière unique. Un numéro de téléphone Twilio offre une présence virtuelle sur le réseau de téléphonie physique.

Twilio acquiert et teste la qualité de nombreux numéros de téléphone auprès d'opérateurs et de fournisseurs de numéros dans le monde entier. Nous disposons d'équipes et de processus brevetés dédiés à la gestion de notre inventaire de numéros de téléphone.

La clientèle de Twilio peut chercher dans cet inventaire le numéro qui correspond à son cas d'utilisation, que ce soit par région, par pays ou avec la possibilité de l'épeler en chiffres et en lettres pour l'écrire.

Lorsqu'un numéro est provisionné (on dit plus souvent qu'il est acheté), Twilio attribue ce numéro au client. Le numéro de téléphone est maintenant prêt à être configuré par le client.

C'est maintenant que la partie commence.

Que peut-on faire avec un numéro de téléphone Twilio ?

Les développeurs peuvent utiliser les chiffres qu'ils obtiennent de notre part de plusieurs manières. Toutefois, les deux produits de base qui répondent à la majorité des cas d'utilisation de Twilio sont les communications vocales et de messagerie.

Imaginez une application simple pour illustrer nos exemples : une application météo de base qui permet aux clients de demander la météo actuelle et de recevoir un message automatique tous les matins avec le temps attendu pour la journée.

Recevoir des messages : quel temps fait-il ?

Dans ce premier exemple, nous voulons que les gens indiquent leur position par SMS à notre application météo. Nous pourrons ainsi leur répondre avec les prévisions météo.

Nous appelons cela un événement initié par l'opérateur. Ce message est transmis du téléphone d'une personne à l'opérateur. L'opérateur réalise une recherche (un peu comme on consulte des sites Web sur Internet) pour voir qui possède le numéro de téléphone du destinataire. Dans ce cas, l'opérateur verra que Twilio est propriétaire du numéro. Ce message est ensuite acheminé vers Twilio via un protocole appelé SMPP, le protocole de messages texte.

Twilio reçoit le message de l'opérateur via une connexion dédiée entre eux. Le message arrive ensuite dans la pile de traitement de messagerie de Twilio où il dispose d'un logiciel écrit pour recevoir et interpréter ce message.

À ce stade, Twilio peut reconnaître le numéro de téléphone qui doit recevoir le message et recherche si ce numéro a été configuré avec une URL de messagerie. L'URL pointe vers l'endpoint de l'application qui traitera les messages entrants.

Twilio fait ensuite une requête à l'application. C'est ce que l'on appelle un webhook.

Le webhook est une requête HTTP contenant les détails du message envoyé au numéro de téléphone du client. Avec les informations contenues dans la requête, l'application du client peut décider de la façon dont elle souhaite gérer le SMS et, si elle le souhaite, fournir une réponse à Twilio sur la façon de procéder.

Répondre avec TwiML : « Il fait chaud dehors ! »

L'application répondra dans un langage conçu par Twilio appelé TwiML, abréviation de Twilio Markup Language. Cette réponse contient un ensemble d'instructions qui indiquent à Twilio comment répondre au message entrant.

Dans cet exemple, l'application renvoie la météo actuelle. La réponse de l'application se présentera comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Response>
    <Message>It is really freakin' sunny out!</Message>
</Response>

Les développeurs remarqueront sûrement la ressemblance frappante avec le HTML. HTML et TwiML sont une extension de XML - eXtensible Markup Language. TwiML a été spécialement conçu pour être reconnu par celles et ceux qui ont travaillé avec HTML ou XML.

Cette réponse est renvoyée à Twilio via HTTP, où Twilio la transformera en réponse SMS. Une fois la traduction effectuée, Twilio la renvoie à l'opérateur via SMPP. L'opérateur est alors responsable du renvoi de ce message vers l'utilisateur.

TwiML est conçu pour être le plus convivial possible. Twilio prend en charge les raccourcis spécifiques au contexte pour rationaliser le flux de réponse. Dans ce cas, il n'y a rien dans la réponse qui indique à Twilio à qui envoyer le message. Lorsque le message est traité dans le flux de messagerie, Twilio envoie automatiquement des réponses de ce type au numéro qui a envoyé le message d'origine.

Nous voyons ici la magie du Twilio. Twilio transforme les événements du monde réel en signaux virtuels que les logiciels peuvent gérer. TwiML est la principale technologie de Twilio qui permet aux développeurs de répondre facilement à ces événements du monde réel. Les développeurs peuvent utiliser les mêmes langages et protocoles que ceux déjà utilisés dans leurs applications Web.

Envoyer des messages : « Vous aurez besoin de votre parapluie aujourd'hui ! »

Même s'il est sympathique de pouvoir demander la météo actuelle, il n'est pas logique que tout le monde doive la demander tous les jours.

Dans ce cas, nous avons besoin de ce que l'on appelle un événement initié par l'application, qui commence avec une application client et se termine chez les opérateurs d’où les messages sont ensuite envoyés à bonne destination.

Ces événements sont initiés via l'API REST publique de Twilio (Application Programming Interface, ou interface de programmation d'application).

L'API REST prend les requêtes HTTP entrantes et tente d'exécuter l'action demandée. Les clients de Twilio peuvent passer des appels téléphoniques, envoyer des messages texte, acheter des numéros de téléphone et interagir avec tous les produits et services de Twilio.

L'application météo peut envoyer une requête HTTP à l'API Twilio pour envoyer un message texte à partir du numéro de téléphone de l'application vers un numéro de téléphone client, avec un message contenant les prévisions météo. Twilio renvoie alors une réponse confirmant la réception de la requête.

Toutefois, à ce stade, Twilio n'a pas encore envoyé ce message.

L'API peut renvoyer un certain nombre de réponses. En cas de problème dans l'application, l'API peut ne pas savoir comment interpréter la requête. De même, Twilio répondra en cas de problème lors du traitement de la requête. Toutefois, en supposant que tout fonctionne et que le compte client soit en règle, Twilio renvoie une réponse confirmant qu'il honorera la requête.

Un à la fois

Dans Twilio, ce message est ajouté à une file d'attente où les messages sont envoyés de manière séquentielle : c'est la méthode FIFO (First In, First Out, ou premier entré, premier sorti). Au moment de la publication de cet article, ce taux était constant au rythme de 1 message par seconde. Les modifications apportées début 2020 permettront d'augmenter le débit en fonction de la réputation de l'expéditeur.

Si une application nécessite un taux d'envois simultanés plus élevé ou si vous avez besoin d'envoyer un grand nombre de messages, Twilio propose des solutions supplémentaires. Aujourd'hui, une application peut utiliser un numéro gratuit pour l'envoi de messages à débit plus élevé. Si un débit très élevé et une transmission synchrone en masse sont nécessaires, l'application doit être configurée sur un numéro spécial, appelé code court, conçu pour la messagerie à grande échelle.

Une fois le message placé par Twilio en file d'attente pour transmission, le message est récupéré par le service responsable de l'envoi des messages sortants. Il est ensuite transmis à l'opérateur via SMPP et les prévisions météo du jour sont transmises au téléphone de destination.

Il s'agit ainsi d'un événement initié par l'application via l'API REST, le contraire d'un événement initié par l'opérateur. Twilio prend un signal virtuel et le traduit en événement réel. Votre téléphone s'allume pour vous informer d'un appel vocal ou d'un message texte.

Conclusion

Twilio fournit un point d'entrée simple dans le monde de la téléphonie et aide votre entreprise à éviter un grand nombre des complexités habituelles. Les développeurs peuvent rapidement obtenir une connectivité mondiale en interagissant avec Twilio à l'aide de protocoles Internet communs et un balisage simple.

Ce pont entre Internet et le réseau téléphonique n'est que la base de l'offre des produits Twilio, mais il illustre bien la puissance de nos capacités.

Les développeurs peuvent créer des logiciels sur Internet à l'aide de technologies qu'ils et elles connaissent déjà. Interagir avec la plateforme de Twilio est beaucoup plus simple qu'avec le monde coûteux, complexe et exigeant des télécommunications.

Maintenant que vous savez ce que nous faisons, inscrivez-vous et essayez notre solution.

Shawn Parker est le responsable technique chez Twilio de l'équipe d'ingénierie de la croissance. Vous pouvez le contacter à l'adresse shawn [at] twilio.com.

Ressources additionnelles