
Partager:
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.
Créer une conférence téléphonique avec Node-RED
Temps de lecture : 14 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
Dans les tutoriels précédents, vous avez eu l'occasion de vous familiariser avec le monde des API Nexmo, en passant et en recevant des appels téléphoniques à l'aide de l'API Voice APIet, nous l'espérons, en personnalisant ces expériences.
Dans le tutoriel d'aujourd'hui, nous allons aller plus loin et créer un service de conférence basé sur la voix.
L'utilisateur appelle un numéro virtuel prédéfini et saisit un identifiant de réunion à l'aide du clavier de numérotation, puis il est placé dans la même conférence téléphonique que toutes les autres personnes ayant fourni le même identifiant.
Les étapes :
Conditions préalables
Exposer votre serveur local à l'Internet
Définir le point de terminaison Webhook pour les appels entrants
Définir le point de terminaison Webhook pour l'événement d'entrée
Créer une application Nexmo Voice
Configurer un numéro à appeler
Événements "Handle Your Call" (traitez votre appel)
Essayez-le !
Conditions préalables
Avant de commencer, vous aurez besoin de quelques éléments :
Un moyen d'exposer votre serveur à l'internet. Cela signifie que vous utilisez une version hébergée de Node-RED, ou dans le cas où vous développez localement, en utilisant un service de tunneling comme ngrok-vous pouvez vous familiariser avec ceci Démarrer avec Ngrok dans Node-RED tutoriel
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.
Obtenir ses diplômes
Pour interagir avec la Voice API, 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 compatible avec Voice vocal. Allez dans Numbers > Acheter des Numbers pour en obtenir un.
Buy number Nexmo dashboard
Configuration de l'éditeur Node-RED
Tout d'abord, vous devez installer le runtime et l'éditeur. Cela peut être fait sur votre machine locale, sur un Single Board Computer (ex. Raspberry Pi), ou à travers plusieurs options hébergées dans le nuage. Cet exemple utilisera votre machine locale, donc une fois que vous avez installé Node-RED globalement, tapez la commande ci-dessous dans votre terminal pour commencer.
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.
Vous devriez maintenant voir tous les nœuds Nexmo apparaître sur le côté gauche de votre écran, dans votre palette de nœuds, parmi d'autres nœuds par défaut.
Exposer votre serveur local à l'Internet
L'API Nexmo aura besoin d'accéder à vos webhooks pour les utiliser. rendons-les accessibles sur l'internet public. Si vous exécutez Node-RED sur un serveur web public au lieu de votre machine locale, vous êtes prêt à passer à l'étape suivante. Créer une application Nexmo Voice l'étape de création d'une application vocale Nexmo.
Sinon, un moyen pratique de le faire est d'utiliser un service de tunneling comme ngrok.
Tout d'abord, vous devez installer le nœud ngrok. Pour ce faire, ouvrez Gérer la palette dans le menu hamburger de votre éditeur Node-RED, recherchez le paquetage node-red-contrib-ngrok et cliquez sur installer. Après avoir redémarré votre éditeur, le nœud ngrok devrait apparaître dans la palette des nœuds.
ngrok manage palette
Le nœud ngrok prend les chaînes de caractères sur ou off en entrée pour démarrer/arrêter le tunnel, et affiche l'adresse de l'hôte ngrok sous la forme de l'élément msg.payload.
La façon la plus simple de procéder consiste à câbler deux nœuds inject comme entrée du nœud ngrok l'un avec la charge utile de la chaîne de caractères sur et l'autre avec off. Pour une utilisation plus facile, vous pouvez également définir les propriétés Name de ces nœuds dans les propriétés du nœud, de manière à ce que la fonctionnalité de ces nœuds soit claire. Ensuite, pour afficher l'adresse de l'hôte dans la barre latérale de débogage, connectez un noeud debug après ngrok.
La dernière étape avant de cliquer sur Déployerouvrez les propriétés du nœud ngrok et spécifiez le numéro de port. Dans le cas de Node-RED, la valeur par défaut est 1880. La région ngrok par défaut est les Etats-Unis, mais vous pouvez également la définir sur l'Europe ou l'Asie. Vous pouvez également ajouter votre authtoken pour votre Account ngrok si vous en avez un. Ne vous inquiétez pas si vous n'en avez pas, sautez cette étape pour l'instant. Le nœud vous avertira qu'il n'est pas entièrement configuré, mais ce n'est pas un problème.
ngrok node properties
Et le tour est joué ! Une fois que vous avez appuyé sur Déployer et que vous avez cliqué sur l'icône sur inject naviguez vers l'URL affichée dans la zone de débogage (YOUR_URL pour référence future) pour trouver votre éditeur Node-RED à une adresse publique.
ngrok node-red
Définir le point de terminaison Webhook pour les appels entrants
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 existe un grand nombre d'actions différentes ; 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.
Lorsque vous traitez des appels entrants, vous avez besoin que votre NCCO soit hébergé sur un site Web de l'Union européenne. URL de réponse. Dans ce cas, nous utiliserons une action talk pour demander l'identifiant de la réunion, puis une action input pour le collecter.
Ajoutez un nœud d'entrée voice webhook à votre canevas, suivi d'un nœud talk un nœud input et d'un nœud de sortie return NCCO nœud de sortie.
Ensuite, dans le nœud voice webhook sélectionnez GET comme Method et tapez /answer dans le champ URL de réponse.
Dans les propriétés du talk définissez le champ Text{} le message que vous souhaitez lire lorsque vous répondez à l'appel. Par exemple, "Veuillez saisir l'identifiant de la réunion". Vous pouvez également sélectionner un champ Voice NameVoir le Guide de la synthèse vocale pour obtenir la liste complète des options.
Enfin, ouvrez l'éditeur de nœuds input l'éditeur de nœuds, définissez YOUR_URL/input en tant que URL {} et POST comme Method.
À ce stade, vous pouvez également définir quelques autres paramètres pour personnaliser davantage l'expérience :
| Name | Description |
|---|---|
Submit On Hash: |
Set to true so the caller's activity is sent to your webhook endpoint at YOUR_URL/input after they press #. If # is not pressed the result is submitted after Time Out seconds. The default value is false. |
Time Out: |
The result of the caller's activity is sent to the YOUR_URL/input webhook endpoint Time Out seconds after the last action. The default value is 3. Max is 10. |
Max Digits: |
The number of digits the user can press. The maximum value is 20, the default is 4 digits. |
Pour en savoir plus, consultez la Référence du NCCO.
conference answer url
Définir le point de terminaison Webhook pour l'événement d'entrée
Vous aurez également besoin d'un deuxième point d'extrémité pour capturer les données DTMF de l'utilisateur et, en fonction du code qu'il a soumis, le placer dans une conversation.
Ajoutez un autre nœud d'entrée voice webhook à votre canevas, suivi d'un nœud talk un nœud conversation et d'un nœud de sortie return NCCO nœud de sortie.
voice webhook
Dans les propriétés du voice webhook sélectionnez POST comme méthode et tapez /input dans le champ URL de réponse.
Si vous connectez un nœud debug après celui-ci, après avoir terminé et exécuté le flux, vous verriez les paramètres renvoyés à l /input URL :
| Name | Description |
|---|---|
uuid |
The unique ID of the Call leg for the user initiating the input. |
conversation_uuid |
The unique ID for this conversation. |
timed_out |
Returns true if this input timed out based on the value of Time Out. |
dtmf |
The numbers input by your caller, in order. |
Dans notre cas d'utilisation, nous essayons d'obtenir la valeur dtmf car il s'agit de l'identifiant de la réunion fourni par l'appelant.
En regardant de plus près la barre latérale de débogage sur les achèvements, nous pouvons voir qu'elle se trouve dans la propriété dtmf de l'objet call imbriquée dans l'objet msg de sorte que nous pouvons le référencer en tant que {{msg.call.dtmf}} dans les autres nœuds de ce chemin.
dtmf debug
talk
Ensuite, ouvrez l'éditeur de nœuds talk et définissez le champ Text{} au message que vous souhaitez lire lorsque l'appelant saisit l'identifiant de la réunion.
Notez le panneau {} à côté de l'étiquette Text montrant que cette valeur peut être définie de manière dynamique, en utilisant le templating Mustache templatingVous pouvez donc utiliser quelque chose comme Joining meeting {{msg.call.dtmf}}.
N'hésitez pas à personnaliser davantage l'expérience en sélectionnant un Voice Name ou en utilisant les balises balises SSML
conversation
Nous utilisons l'action conversation pour créer une conférence standard, le seul paramètre à définir est donc Name {}. L'utilisation de l'action de conversation avec le même nom réutilise la même conversation persistante, il est donc pratique de la nommer d'après l'ID de la réunion, en faisant référence à l'action de conversation. {{msg.call.dtmf}} La première personne à appeler le numéro virtuel attribué à la conversation la crée.
conference conversation node
À l'avenir, vous souhaiterez peut-être aller plus loin et créer une conversation modérée avec des contrôles audio sélectifs. Consultez la référence du référence NCCO pour en savoir plus.
Une fois que vous avez terminé ce chemin, il devrait ressembler à ceci :
conference input url
Créer une application Nexmo Voice
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 capacité 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 les propriétés du nœud.
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 Conference 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.
conference create voice app
Configurer un numéro à appeler
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.
conference link number
Conseil supplémentaire : Utilisez un nœud comment pour noter le numéro Numbers lié à votre application, vous l'aurez ainsi toujours à portée de main.
Événements "Handle Your Call" (traitez votre appel)
Si vous souhaitez recevoir des événements concernant la progression de votre appel, vous pouvez également configurer un webhook d'événement.
Connecter un nœud d'entrée http nœud d'entrée à un nœud http response ainsi qu'à un nœud debug afin que vous puissiez visualiser les événements d'appel 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 /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.
conference final flow
Essayez-le !
Et le tour est joué ! Faites-vous accompagner d'un ou plusieurs amis et allez faire un tour ! N'oubliez pas de jeter un coup d'œil dans la zone de débogage pour suivre les événements de votre appel. Bonne lecture !
Quelle est la prochaine étape ?
Ressources :
Essayez un autre tutoriel :
Partager:
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.
