Comment construire une ligne de conférence avec Twilio et Node.js ?

March 24, 2020
Rédigé par
Sam Agnew
Twilion

Comment construire une ligne de conférence avec Twilio et Node.js ?

Encore une autre conférence téléphonique, une autre application, un autre code PIN, une autre connexion. Rejoindre une conférence téléphonique devrait être aussi simple que composer un numéro de téléphone. Découvrez comment construire rapidement une ligne de conférence que tout le monde peut utiliser avec Node.js.

Configuration de l'environnement de développement

Commencez par vérifier que vous avez installé les bons logiciels pour les opérations que vous allez effectuer. Vous aurez besoin des éléments ci-dessous :

Voici un guide utile à consulter de manière générale si vous comptez utiliser davantage Twilio et Node.js, ou si vous avez d'autres questions.

Pour installer ces modules npm, accédez au répertoire dans lequel vous souhaitez que ce code soit actif et exécutez la commande suivante dans votre terminal afin de créer un package npm pour ce projet.

npm init --yes

L'argument --yes exécute toutes les invites que vous devriez sinon renseigner ou ignorer manuellement.

Maintenant que notre application dispose d'un package.json, installons les bibliothèques nécessaires avec les commandes shell suivantes :

npm install twilio@3.33.0
npm install express@4.17.0

Cela fait, vous pouvez passer à l'écriture du code !

Configuration d'un serveur Express pour recevoir l'appel entrant

Ouvrez un fichier nommé index.js dans le même répertoire que votre package.json et ajoutez-y le code suivant :

const http = require('http');
const express = require('express');
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const app = express();

app.post('/call', (req, res) => {
  const twiml = new VoiceResponse();
  twiml.say('Please wait while we dial you into the call.');
  twiml.dial().conference('my-conference-room');

  res.writeHead(200, {'Content-Type': 'text/xml'});
  res.end(twiml.toString());
});

http.createServer(app).listen(3000, () => {
  console.log('Express server listening on port 3000');
});

Ce code configure une application Express, définit une route sur l'application pour traiter les appels téléphoniques entrants, puis lui fait écouter les requêtes entrantes sur le port 3000. Dans la route /call, nous répondons à la requête HTTP envoyée par Twilio, lorsqu'un appel téléphonique est reçu, avec un peu de TwiML, indiquant à Twilio d'accueillir l'appelant, puis de le transférer vers une ligne de conférence.

Vous pouvez exécuter ce code avec la commande suivante :

node index.js

Laissez cette application Express en cours d'exécution sur votre terminal, car nous l'utiliserons à nouveau.

Configuration de votre compte Twilio

Pour recevoir des appels téléphoniques, vous avez besoin d'un numéro de téléphone Twilio. Vous pouvez acheter un numéro de téléphone ici (c'est gratuit tant que vous ne faites que tester votre code).

L'application Express doit être visible sur Internet pour que Twilio puisse lui envoyer des requêtes. Pour ce faire, nous utiliserons ngrok, que vous devrez installer si ce n'est pas encore fait. Dans votre terminal, exécutez la commande suivante :

ngrok http 3000

Si vous venez d'installer ngrok et que la commande précédente n'a pas fonctionné, vous devrez peut-être l'exécuter ainsi : ./ngrok http 3000, à partir du répertoire dans lequel se trouve le fichier exécutable ngrok.

url de transfert Ngrok

Ngrok nous fournit une URL accessible au public pour l'application Express. Configurez votre numéro de téléphone dans la console Twilio comme illustré sur cette image en ajoutant « /call » à la fin de votre URL ngrok dans la section « A Call comes in » :

Gestion des appels entrants

Vous pouvez maintenant recevoir un appel téléphonique sur votre nouveau numéro Twilio. Demandez à des amis de rejoindre votre nouvelle ligne de conférence pour la tester !

Appelez vos amis et vos collègues

Maintenant que vous savez comment créer une conférence téléphonique basique, essayez de l'enrichir en construisant d'autres fonctionnalités. Consultez nos documentations sur TwiML à propos des conférences, expliquant comment rejoindre une conférence avec le microphone coupécomment créer silencieusement un pont entre des appels ou comment créer une conférence téléphonique avec modérateur.

J'ai hâte de voir ce que vous allez construire. N'hésitez pas à me contacter et à partager vos expériences ou à poser des questions.

  • Adresse e-mail : sagnew@twilio.com
  • Twitter : @Sagnewshrouges
  • GitHub : SagNew
  • Twitch (diffusion en direct de code) : Sagnewshrouges