https://d226lax1qjow5r.cloudfront.net/blog/blogposts/receive-phone-calls-node-red-dr/inbound-calls-node-red.png

Comment recevoir des appels téléphoniques avec Node-RED

Temps de lecture : 9 minutes

Note : Certains des outils ou méthodes décrits dans cet article peuvent ne plus être pris en charge ou ne plus être d'actualité. Pour un contenu mis à jour ou une assistance, consultez nos derniers articles ou contactez-nous sur le site Communauté Vonage Slack

Cet article est le troisième d'une série de tutoriels "Getting Started with Nexmo and Node-RED".

Dans les tutoriels précédents vous avez appris à envoyer et à recevoir des messages SMS par programmation à l'aide de l'API SMS Nexmo et à gérer les accusés de réception.

Vous passerez ensuite au chapitre suivant, consacré à l'exploration de l'API Voice de Nexmo.

À la fin de cet article, vous aurez traité votre premier appel entrant avec Node-RED.

Conditions préalables

Avant de commencer, vous aurez besoin de quelques éléments :

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

Obtenir ses diplômes

Afin d'interagir avec l'API Voice, vous devez prendre note de certaines choses. Une fois que vous avez créé un compte Nexmo, allez dans le tableau de bord pour trouver votre clé API et votre secret.

Ensuite, vous aurez besoin d'un numéro virtuel activé par Voice. Allez dans Numbers > Acheter des Numbers pour en obtenir un.

Configuration de l'éditeur Node-RED

Tout d'abord, vous devez installer le runtime et l'éditeur. Cela peut se faire sur votre machine locale, sur un Single Board Computer (par exemple Raspberry Pi), ou sur un certain nombre d'options hébergées dans le cloud. Cet exemple utilisera votre machine locale, donc une fois que vous avez installé Node-RED globalement, tapez simplement la commande ci-dessous dans votre terminal pour commencer.

node-red

Vous pouvez ensuite accéder à l'éditeur Node-RED en pointant votre navigateur sur http://localhost:1880.

Une fois votre éditeur ouvert, vous devez installer les nœuds Nexmo. Vous pouvez le faire sous la palette Gérer la palette en recherchant le paquet node-red-contrib-nexmo et en cliquant sur installer.

nexmo node red

Vous devriez maintenant voir tous les nœuds Nexmo apparaître sur le côté gauche de votre écran, parmi les autres nœuds par défaut.

Traiter un appel téléphonique entrant avec Node-RED

Exposer votre serveur local à l'Internet

Tout d'abord, vous devez exposer votre serveur local à l'internet, afin que Nexmo puisse y accéder. Si vous utilisez Node-RED sur un serveur web public au lieu de votre machine locale, vous pouvez sauter cette étape.

Sinon, un moyen pratique de le faire est d'utiliser un service de tunneling comme ngrok.

Télécharger et installez ngrokpuis lancez-le dans le terminal pour démarrer un tunnel sur le port 1880.

./ngrok http 1880

Naviguez jusqu'à l'URL affichée pour trouver votre éditeur Node-RED.

ngrok inbound call

Création d'une application Nexmo

Dans les tutoriels SMS précédents, vous avez pu configurer un numéro de téléphone directement avec un point de terminaison ; cependant, ce n'est pas toujours le cas.

Certaines des API de Nexmo, y compris l'API Voice, utilisent les Applications Nexmo pour contenir les informations de sécurité et de configuration nécessaires pour se connecter aux terminaux Nexmo.

Dans la palette Nexmo Node-RED, plusieurs nœuds ont la possibilité de créer ces Applications : getrecording, earmuff, mute, hangup, transfer, createcall, playaudio, playtts et playdtmf.

Faites glisser l'un de ces nœuds dans votre espace de travail, puis double-cliquez dessus pour ouvrir l'éditeur de nœuds.

A côté de l'application Nexmo Credentialssélectionnez "Add new nexmovoiceapp..." dans le menu déroulant et cliquez sur le bouton "Editer". Remplissez les détails ci-dessous et cliquez sur Create New Application.

KEY DESCRIPTION
Name Choose a name for your Voice Application, for example inbound call.
API Key Your Nexmo API key, shown in your account overview.
API Secret Your Nexmo API secret, shown in your account overview.
Answer URL YOUR_URL/answer, you'll be hosting a Nexmo Call Control Object (NCCO) here. - more about this later on.
Event URL YOUR_URL/event, you'll need to reference this when setting up the event handler.

Node-RED créera alors une nouvelle Applications Nexmo sur votre Account et remplira les champs App ID et Private Key pour que vous puissiez les sauvegarder. Après cette étape, n'hésitez pas à supprimer le nœud Nexmo que vous avez utilisé, car un nœud de configuration a été créé et contient toutes les informations d'identification Nexmo pour ce flux. nexmovoiceapp config a été créé et contient toutes les informations d'identification Nexmo dont ce flux a besoin.

Next step

Ensuite, vous devrez lier votre numéro virtuel à cette application.

Trouvez l'Application Voice que vous venez de créer dans votre Nexmo Dashboard en naviguant vers Voice > Vos Applications.

Cliquez sur le nom de cette application, puis sous l'onglet Numbers cliquez sur l'onglet Lien à côté du numéro virtuel que vous avez loué précédemment.

Si le numéro que vous souhaitez utiliser est déjà lié à une autre application, cliquez sur Gérer le numéro et configurez-le pour qu'il transfère les appels entrants vers votre application.

link number

Construire l'objet de contrôle d'appel Nexmo (NCCO)

Les appels Nexmo sont contrôlés par objets de contrôle d'appel Nexmoégalement connus sous le nom de NCCOs. Un NCCO définit une liste d'actions à suivre lorsqu'un appel est traité. Il y a beaucoup d'actions différentes disponibles, trouvez les nœuds correspondants sous la palette Nexmo dans votre éditeur Node-RED ou consultez la Référence NCCO pour en savoir plus.

Pour ce tutoriel, vous utiliserez l'action talk action.

Faites glisser et déposez le nœud talk dans votre espace de travail, puis connectez-le à un nœud d'entrée et à un nœud de sortie. voice webhook nœud d'entrée et à un nœud de sortie return NCCO nœud de sortie.

Ensuite, dans le nœud voice webhook sélectionnez GET comme méthode et tapez quelque chose comme /answer dans le champ URL de réponse.

Enfin, allez dans les propriétés du talk et définissez le champ Text{} au message que vous souhaitez lire lorsque l'on répond à l'appel. Notez le signe {} à côté de l'étiquette Text qui indique que cette valeur peut être définie dynamiquement, en utilisant le templating Mustache templating. Vous pouvez également sélectionner un Voice Namevoir le Guide de synthèse vocale pour la liste complète des options.

Create tts ncco

Configuration d'un gestionnaire pour l'URL de l'événement

Connecter un nœud d'entrée http à un nœud http response ainsi qu'à un nœud debug afin que vous puissiez visualiser votre accusé de réception dans la zone de débogage.

Dans le nœud d'entrée http nœud d'entrée, sélectionnez POST en tant que Method et remplissez le champ URL avec quelque chose comme /event.

Le nœud http response doit avoir 200 défini comme Status codemais ne vous inquiétez pas, c'est aussi la valeur par défaut.

Cliquez maintenant sur Déployerappelez votre numéro virtuel et suivez le déroulement de votre appel dans la barre latérale de débogage.

inbound call debug

Prochaines étapes

Dans ce tutoriel, vous avez appris à diffuser un message de synthèse vocale à un appelant. De la même manière, vous pouvez également diffuser un fichier audio ou renvoyer l'appel vers un numéro de téléphone. Si vous souhaitez aller plus loin, pourquoi ne pas enregistrer la conversation ou créer votre propre boîte vocale ? Restez à l'écoute pour savoir comment faire !

Ressources

Partager:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroDéfenseur des développeurs

Julia s'engage à aider ses collègues développeurs en créant des tutoriels, des guides et des ressources pratiques. Grâce à son expérience en matière de sensibilisation et d'éducation, elle vise à rendre la technologie plus accessible et à améliorer l'expérience globale des développeurs. Vous pouvez souvent la trouver lors d'événements communautaires locaux.