https://d226lax1qjow5r.cloudfront.net/blog/blogposts/connect-phone-call-to-stitch-in-app-voice-dr/Call-to-InApp-Voice.jpg

Comment connecter un appel téléphonique à In-App Voice de Nexmo

Publié le May 12, 2021

Temps de lecture : 3 minutes

L'API Nexmo Voice API vous permet de créer des applications vocales programmables de haute qualité dans le cloud. Avec l'API Voice, vous pouvez gérer les appels sortants et entrants en JSON, enregistrer et stocker les appels, créer une conférence téléphonique, envoyer des messages en synthèse vocale dans 23 langues avec des variétés de voix et d'accents, etc.

Nexmo StitchNexmo Stitch, un nouveau produit actuellement en Developer Preview, permet des communications à travers de multiples canaux, y compris la messagerie in-App Messaging et la voix in-App Voice.

Dans cet article, nous allons apprendre comment transférer un appel téléphonique entrant d'un numéro de téléphone Nexmo à un utilisateur Stitch en mettant en œuvre un Webhook et en le liant à une application Nexmo Voice.

Avant de commencer, tu auras besoin de quelques éléments :

  • Node.js installé sur votre machine

  • Installez le CLI Nexmo Beta :

  • Configurez le CLI pour qu'il utilise votre clé et votre secret d'API Nexmo. Vous pouvez les obtenir à partir de la page de configuration dans le tableau de bord Nexmo :

$ nexmo setup api_key api_secret

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.

Renvoyer un appel à un utilisateur Stitch

Lorsqu'un utilisateur appelle un numéro de téléphone virtuel Nexmo associé à une application vocale, Nexmo récupère les Nexmo Call Control Objects (NCCO) à partir de votre point de terminaison answer_url Webhook. Nous allons essayer de répondre à l'appel avec une voix synthétisée qui lit du texte et connecte ensuite l'appel à un utilisateur de Stitch. Nous utiliserons le NCCO pour créer le flux d'appel.

Création d'un point de terminaison webhook

Je suis un adepte du JavaScript, je vais donc écrire le Webhook en utilisant Node et ExpressJS. Si vous préférez un autre langage, n'hésitez pas à utiliser autre chose - il existe des bibliothèques client Nexmo pour JavaScript, Java, Python, PHP, Rubyet .NET!

Nous devons installer quelques éléments :

$ npm install express body-parser --save

Créer un fichier index.js instanciez express et body-parser, et écoutez le serveur sur le port 3000.

'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

const server = app.listen(3000, () => {
  console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});

Ajoutons un point de terminaison pour /event qui enregistre tous les événements provenant de l'Application Nexmo :

app.post('/event', (req, res) => {
  console.log(req.body);
  res.status(200).end();
});

Nous avons également besoin d'un point de terminaison pour /answerrépondant aux requêtes HTTP GET, qui fournira le NCCO lorsque l'application Nexmo récupérera le fichier answer_url. Nous utiliserons un talk afin que l'appel génère une synthèse vocale permettant à l'utilisateur de savoir qu'il appelle Jamiesuivi d'un bloc connect bloc. Nous devrons ajouter un type spécial rtc spécial au point de terminaison afin de connecter l'appel à un utilisateur Stitch existant. Vous pouvez ajouter votre propre numéro de téléphone dans le champ from champ.

app.get('/answer', (req, res) => {
  var ncco = [
    {
      action: "talk",
      text: "Thank you for calling Jamie"
    },
    {
      "action": "connect",
      "from": "449876543210",
      "endpoint": [
        {
          "type": "rtc",
          "user": "jamie"
        }
      ]

    }
  ];
  res.json(ncco);
})

Exécutons maintenant le serveur :

$ node index.js

Pendant que vous développez, vous pouvez faire tourner le serveur localement et utiliser ngrok pour rendre le serveur publiquement disponible sur internet, afin que Nexmo puisse l'atteindre. Nous avons un tutoriel sur la façon de procéder !

Nous devons maintenant connecter le Webhook à une Application Nexmo. Je vais supposer que vous en avez déjà une et vous montrer comment mettre à jour cette application pour utiliser le Webhook que nous venons de créer.

Mettez à jour votre application existante avec les URL des Webhooks

Vous avez besoin de l'identifiant de l'application pour mettre à jour les informations. Vous pouvez utiliser la commande app:list avec l'interface de commande Nexmo :

$ nexmo app:list

Le CLI devrait renvoyer une liste de chaque identifiant d'application et un nom d'application. Maintenant, utilisez le bon identifiant d'application pour mettre à jour l'application avec les URL des webhooks :

$ nexmo app:update aaaaaaaa-bbbb-cccc-dddd-0123456789ab "My Voice App" https://6e5c2f7a.ngrok.io/answer https://6e5c2f7a.ngrok.io/event

Enfin, vous devez associer votre application au numéro virtuel que vous louez auprès de Nexmo. Utilisons à nouveau la CLI de Nexmo. Utilisez la commande nexmo link:app suivie du numéro de téléphone, qui doit commencer par un indicatif de pays, puis de l'identifiant de l'application. La commande doit donc ressembler à ceci :

$ nexmo link:app 449876543210 aaaaaaaa-bbbb-cccc-dddd-0123456789ab

Lorsque la liaison est réussie, la CLI renvoie le message "Numéro mis à jour".

Conclusion

Maintenant que vous avez lié votre numéro à votre application, chaque fois que quelqu'un appellera votre numéro Nexmo, il sera connecté à un utilisateur de Stitch via In-App Voice. Si vous souhaitez tester cette fonctionnalité, vous pouvez consulter le fichier JavaScript détaillant comment vous pouvez mettre en œuvre l'appel en utilisant les SDK de Stitch.

Quelle est la prochaine étape ?

Si vous souhaitez continuer à apprendre comment utiliser le SDK Nexmo Stitch pour JavaScript, consultez nos quickstarts In-App Messaging où nous vous montrons comment créer une conversation simple, inviter et discuter avec un autre utilisateur et utiliser plus d'écouteurs d'événements pour afficher l'historique du chat et quand un utilisateur tape. Si vous avez d'autres questions sur l'utilisation de Stitch, nous vous encourageons à rejoindre le communauté Nexmo slack et à consulter notre #stitch ou à nous envoyer un e-mail directement à ea-support@nexmo.com.

Partager:

https://a.storyblok.com/f/270183/384x384/dabe7c5397/laka.png
Alex LakatosAnciens de Vonage

Alex Lakatos est un défenseur des développeurs JavaScript pour Nexmo. Pendant son temps libre, il est bénévole chez Mozilla en tant que Tech Speaker et Reps Mentor. Développeur JavaScript travaillant sur le web ouvert, il en repousse les limites tous les jours. Lorsqu'il ne programme pas à Londres, il aime parcourir le monde, il est donc probable que vous le croisiez dans un salon d'aéroport.