Communication As Service – Twilio un cas concret

Par le passé, écrire des applications qui se basent sur des systèmes de communication (Appel, SMS, IVR…) n’était pas une tâche facile. Ceci demandait la mise en place et la configuration de certains équipements (Asterisk, FreePBX…) et outils, la connaissance de certains langages (Java, .Net, VoiceML…).

Le plus compliqué était les contrats avec les opérateurs (Orange, SFR et bien d’autres) ou avec d’autres fournisseurs de services. Très souvent ce sont des contrats qui nous engageaient à l’année et le modèle économique n’était pas toujours le plus intéressant.

Aujourd’hui les choses ont considérablement évoluée. La mise en place d’un service de communication n’est plus vraiment un travail complexe quand on fait de bons choix. Je me suis particulièrement intéressé à Twilio – cette entreprise américaine créée en 2008 et qui pour moi est l’une des entreprises les plus prometteuses dans son domine. Twilio est un fournisseur de services de communication dans le cloud. Ses valeurs ajoutées demeurent :

  • La simplicité
  • La flexibilité
  • La fiabilité
  • L’échelonnage
  • La sécurité
  • Le coût

Lorsque l’application ou le service qu’on désire mettre en place s’oriente vers une certaine catégorie d’applications comme le montre les figures ci-dessous, Twilio certainement un choix intéressant.

Aujourd’hui plusieurs applications bien connues utilisent déjà les services de la plateforme Twilio. On peut noter en autres :

  • Zendesk –  service à la clientèle
  • Ebay –  vente en ligne
  • AirBnb –  immobilier
  • Uber – transport
  • PayByPhone – paiement mobile
  • Box – stockage de fichiers aux entreprises
  • Match – réseau social et site de rencontre
  • Walmart – e-commerce et la logistique
  • Path – échange de messages privés
  • 37Signals – outil collaboratif

Le fonctionnement est simple,  tout ou presque est basé sur des appels de web services ou des API à intégrer dans vos applications.  Les lignes suivantes décrivent un peu la procédure à suivre.

  1. S’enregistrer sur le site de Twilio. Cet enregistrement est gratuit et vous permet d’avoir un seul numéro d’essai pour tester le service. La création du compte donne accès à un tableau de bord à partir duquel à peut gérer et configuration ses services et applications. Le tableau de bord permet aussi d’avoir des statistiques d’usage de nos services et applications. Le numéro d’essai ne permet pas d’envoyer de SMS.
  2. Mettre à jour son compte en achetant des numéros téléphones qui ont des fonctionnalités plus étendues. Cette opération passe par le renseignement de sa carte bancaire. Ce crédit est débité à chaque utilisation du service Twilio. N’ayez pas peur votre crédit ne se termine pas après quelques SMS envoyés.  Il est important de noter que l’achat d’un numéro coutera 1$/mois. Il faut voir ceci comme une location de numéro pour une période donnée. N’hésitez pas à faire usage de vos codes promo si vous en avez. Pour finir, notons qu’en fonction du pays, certains numéros ne peuvent envoyer ni recevoir de SMS.
  3. Configurer son numéro – cette étape nous force à renseigner les URLs des web services ou pages qui doivent traiter les appels ou SMS provenant de Twilio vers nos applications. En d’autres termes, ces URLs font le lien entre la plateforme Twilio et nos applications comme le montre le schéma ci-dessous.

Cette configuration signifie tout simplement que lorsqu’un utilisateur appelle ou envoie un SMS à notre numéro, la plateforme Twilio doit transférer un certain nombre d’information et de métadonnées à notre application via ces deux urls configurées en utilisant la méthode http appropriée. De la même manière, Twilio attend dans certains cas de la part de nos applications une réponse.

Il existe en général trois méthodes pour communiquer avec la plateforme Twilio depuis nos applications.

Chaque méthode présente ses avantages et inconvénients. Je dirai que tout dépendra de quel genre d’application on aimerait écrire et de sa complexité.

Exemple de réponse via TwiML et de verbes disponibles :

Quelques balises du langage TwiML :

Librairie cliente Java fournie par Twilio

Le développeur peut utiliser les librairies utilitaires qui permettent de communiquer avec la plateforme Twilio à partir du langage de programmation qu’il préfère (PHP, Java, Ruby, Python, .Net, Scala, C++, Perl, Erlang…)

Dans l’univers Java, on peut utiliser la librairie Twilio-java, qui s’intègre bien avec du Maven et permet d’entreprendre plusieurs actions de communication via la plateforme Twilio.

Il suffit de tirer les dépendances qu’il faut dans le fichier pom.xml associé à votre projet.

Exemple d’envoi de SMS :

Exemple d’écho :

Les outils pour développeur :

Voici un certain nombre d’outils disponibles aux développeurs pour mieux déboguer leurs applications ou services de communication.

  • ResquestBin – permet de créer des URLs temporaires qui serviront à monitorer les données envoyées par un client http. On peut l’utiliser pour avoir plus de détails sur les paramètres renvoyés par Twilio à nos services.

  • Hurl.it – permet de tester les web services en créant des requêtes http personnalisées.

  • Localtunnel – sert à partager les ressources de son serveur web local au monde extérieur via internet

  • Forward.io – Service de partage de conversations

Les plus…

Avant de finir ce blog, je tiens à présenter certains chantiers récents entrepris par Twilio.

Dans la catégorie des clients Twilio, on peut noter :

  • Le client iOS – qui permet aux applications écrites pour iPad, iPhone, iPod touch d’émettre et de recevoir des appels.
  • Le client Android – librairie java qui permet la communication vocale entre terminaux sous android.
  • Le client JavaScript – permet d’écrire des applications web qui peuvent émettre et recevoir des appels téléphoniques depuis le navigateur web sans intervention d’un téléphone.

  • Intégration de SIP (VoIP) – il est maintenant possible d’intégrer votre infrastructure de VoIP existant avec Twilio. Ainsi les appels émis sur un numéro Twilio peuvent être transférés sur un terminal SIP de l’entreprise.

Conclusion

La plateforme Twilio demeure le moyen rapide, efficace et sécurisé pour déployer des applications et services autour de la communication et des services vocaux en particulier.

Quelques liens :