Comment recevoir un appel téléphonique dans Node.js grâce à Twilio functions

March 22, 2021
Rédigé par

Comment recevoir un appel téléphonique dans Node.js grâce à Twilio functions

Twilio Voice est un service simple et hautement personnalisable qui vous permet d'automatiser vos flux de travail téléphoniques. Dans ce tutoriel, vous allez apprendre à créer une application Node.js, optimisée par les fonctions Twilio, afin de recevoir des appels téléphoniques sur votre numéro Twilio.

Conditions préalables

Pour suivre ce tutoriel, vous avez besoin des éléments suivants :

Configurer le projet

Dans cette section, vous allez configurer un nouveau service de fonctions Twilio. Les fonctions Twilio désignent un environnement sans serveur qui vous permet de déployer des services back-end sans avoir à configurer un serveur.

Si ce n'est pas déjà fait, installez la CLI Twilio à l'aide de la commande suivante :

npm install twilio-cli -g

Ensuite, installez le plug-in Twilio Serverless Toolkit pour la CLI Twilio :

twilio plugins:install @twilio-labs/plugin-serverless

Exécutez la commande suivante pour vous connecter à la CLI Twilio :

twilio login

Vous serez invité à saisir vos informations d'identification, qui se trouvent dans la console Twilio.

Maintenant que vous avez installé le plug-in et que vous êtes connecté, vous pouvez initialiser un nouveau service de fonctions :

twilio serverless:init phone-answer

Cette commande va créer un nouveau répertoire sur votre ordinateur intitulé phone-answer. Ce nouveau dossier contient un fichier .env prérempli avec vos informations d'identification de compte. Ouvrez ce fichier et vérifiez que tout semble correct.

Ouvrez le sous-dossier phone-answer/functions et supprimez le contenu du dossier, mais pas le dossier lui-même.

Créez un nouveau fichier dans phone-answer/functions intitulé receive-call.protected.js.

L'extension protected de ce nom de fichier indique qu'il s'agit d'une fonction protégée et qu'elle n'est accessible que si la requête possède une signature Twilio valide.

Créer un webhook TwiML

Twilio Voice utilise le concept de webhooks pour permettre à votre application d'effectuer des actions personnalisées suite à des événements externes tels que la réception d'un appel téléphonique. Un webhook n'est rien de plus qu'un point de terminaison HTTP que Twilio appelle avec des informations sur l'événement. La réponse renvoyée à Twilio fournit des instructions sur la façon de gérer l'événement.

Le webhook pour un appel téléphonique entrant comprendra des informations telles que le numéro de téléphone de l'appelant. Dans la réponse, l'application peut fournir des instructions telles que « raccrocher », « lire un message enregistré », etc. Les réponses utilisent un langage basé sur XML appelé TwiML.

Ajouter un nouveau point de terminaison

Ouvrez votre nouveau fichier receive-call.protected.js et ajoutez le code suivant :

exports.handler = function(context, event, callback) {
  const twiml = new Twilio.twiml.VoiceResponse();
  twiml.say('Hello, and thank you for your call.');
  callback(null, twiml);
}

Ce code crée une nouvelle réponse TwiML Voice. Chaque fois qu'une personne appelle votre numéro de téléphone Twilio, le webhook capture l'appel téléphonique et le dirige vers ce point de terminaison (vous allez configurer cela sous peu). L'appelant entendra alors le message suivant : « Bonjour et merci pour votre appel. »

Déployer votre fonction

Enregistrez et fermez votre fichier. Maintenant que vous avez terminé votre fonction, vous pouvez la déployer. Exécutez la commande suivante à partir du répertoire phone-answer :

twilio serverless:deploy

Acheter un numéro de téléphone

Connectez-vous à la console Twilio, sélectionnez Phone Numbers (Numéros de téléphone), puis cliquez sur le signe « + » rouge pour acheter un numéro Twilio. Veuillez noter que si vous utilisez un compte gratuit, vous utiliserez votre crédit d'essai pour cet achat.

Dans l'écran Buy a Number (Acheter un numéro), vous pouvez sélectionner votre pays et cocher Voice parmi les fonctionnalités. Si vous souhaitez demander un numéro de votre région, vous pouvez saisir votre indicatif régional dans le champ Number (Numéro).

Acheter un numéro de téléphone

Cliquez sur le bouton « Search » (Rechercher) pour voir les numéros disponibles, puis cliquez sur « Buy » (Acheter) pour le numéro que vous souhaitez dans les résultats. Après avoir confirmé votre achat, cliquez sur le bouton « Close » (Fermer).

Félicitations, vous disposez désormais de votre propre numéro de téléphone Twilio !

Configurer le webhook Voice

Toujours depuis la console Twilio, cliquez sur Phone Numbers (Numéros de téléphone), puis sur le numéro de téléphone que vous avez acheté ci-dessus. Faites défiler vers le bas jusqu'à la section « Voice & Fax » (Synthèse vocale et télécopie) et saisissez les paramètres suivants :

  • Pour « Accept Incoming » (Accepter les appels entrants), sélectionnez Voice Calls (Appels vocaux).
  • Pour « Configure with » (Configurer avec), sélectionnez Webhooks, TwiML Bins, Functions, Studio ou Proxy.
  • Pour « A call comes in » (Un appel entre), sélectionnez Function dans la liste déroulante de gauche.
  • Pour « Service », sélectionnez phone-answer ou le nom du service que vous avez créé précédemment.
  • Pour « Environment » (Environnement), sélectionnez dev-environment.
  • Pour « Function Path » (Chemin d'accès à la fonction), sélectionnez /receive-call.

Configurer le webhook Twilio Voice

N'oubliez pas de cliquer sur le bouton Save (Enregistrer) au bas de la page pour enregistrer ces modifications.

Tester votre ligne téléphonique Twilio

Maintenant, passons au moment de vérité ! Appelez le numéro de téléphone Twilio que vous avez acheté précédemment depuis votre propre téléphone. Après une ou deux sonneries, l'appel devrait être pris et vous devriez entendre une voix agréable qui prononce le texte que vous avez passé comme argument à la méthode say().

Étapes suivantes

J'espère que vous avez trouvé ce tutoriel utile. Le langage TwiML est extrêmement riche et offre une grande variété d'options pour automatiser les appels téléphoniques entrants. Si vous souhaitez explorer certaines de ces options, voici quelques exemples de commandes que vous pouvez utiliser :

  • Play (Lire) : au lieu de la synthèse vocale, permet de lire un message enregistré dans un fichier audio
  • Dial (Composer) : permet de connecter l'appel à un autre numéro de téléphone ou à une conférence téléphonique
  • Enqueue (Mettre en file d'attente) : permet de mettre l'appelant en attente et de l'ajouter à une file d'attente
  • Gather (Rassembler) : permet d'accepter les chiffres prononcés ou saisis de l'appelant
  • Record (Enregistrer) : permet d'enregistrer un message
  • Reject (Rejeter) : permet de rejeter l'appel

Dites-moi ce que vous avez construit sur Twitter avec Twilio Voice !

Ashley est éditrice JavaScript pour le blog Twilio. Pour travailler avec elle et partager vos histoires techniques à Twilio, retrouvez-la sur la page @ahl389 sur Twitter. Si elle n'y est pas, c'est probablement qu'elle est quelque part en terrasse avec une tasse de café à la main (ou un verre de vin, selon l'heure).