
Partager:
Ben est un développeur en seconde carrière qui a auparavant passé une décennie dans les domaines de la formation pour adultes, de l'organisation communautaire et de la gestion d'organisations à but non lucratif. Il a travaillé comme défenseur des développeurs pour Vonage. Il écrit régulièrement sur l'intersection du développement communautaire et de la technologie. Originaire de Californie du Sud et ayant longtemps vécu à New York, Ben réside aujourd'hui près de Tel Aviv, en Israël.
Créer une conférence téléphonique avec l'API Voice de Nexmo et Ruby on Rails
Temps de lecture : 8 minutes
Dans ce guide, nous allons créer une application de conférence téléphonique Ruby on Rails qui utilise l'API Voice de Nexmo. Dans la documentation Nexmo, une conférence téléphonique est également appelée une conversationet nous utiliserons ces termes de manière interchangeable.
Vous pouvez trouver le code complet de cet exemple sur GitHub.
Conditions préalables
ngrok pour exposer notre application Rails à l'extérieur
Créer une conférence téléphonique avec Ruby on Rails
Nous allons accomplir les tâches suivantes pour créer une conférence téléphonique ("conversation") avec l'API Voice de Nexmo :
Créer une application Rails
Exposer notre application à l'extérieur pour que Nexmo puisse communiquer avec elle
Créer notre Account Nexmo, acheter un numéro de téléphone Nexmo et créer une application Nexmo Voice.
Créer le contrôleur et les routes Rails
Créer une application Rails
A partir de la ligne de commande, exécutez ce qui suit :
La commande ci-dessus créera une nouvelle application Rails avec PostgreSQL comme base de données par défaut.
Ensuite, nous allons installer nos dépendances gem dans notre application. Nous le faisons en lançant bundle install depuis le terminal. Nous pouvons également exécuter rake db:migrate à ce stade depuis le terminal pour configurer la base de données. Nous n'utiliserons pas la base de données dans ce tutoriel pour persister les données, mais vous pouvez ajouter cette fonctionnalité à votre propre application, si vous préférez.
À ce stade, nous allons configurer ngrok afin d'obtenir notre URL accessible de l'extérieur, qui sera utilisée par Nexmo pour communiquer avec notre application.
Exposer l'application
Il y a plusieurs façons de rendre notre serveur de développement local accessible à l'extérieur, mais l'une des façons les plus simples est d'utiliser ngrok. Vous pouvez lire cet article pour une explication plus détaillée du fonctionnement de ngrok. Cependant, pour nos besoins, nous avons juste besoin de le faire fonctionner et de copier l'URL qu'il nous fournit.
Pour démarrer ngrok, ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante :
Vous verrez maintenant une interface d'enregistrement ngrok dans votre fenêtre de terminal. En haut de l'interface se trouve une ligne qui commence par Forwarding et qui contient deux URL. La première est l'URL de ngrok accessible de l'extérieur, qui se termine par ngrok.io suivie de http://localhost:3000qui est votre serveur de développement local. Maintenant, lorsque vous ou Nexmo contacte l'URL ngrok.io l'URL sera transmise à votre serveur local.
Veillez à copier l ngrok.io dans un endroit sûr. Nous l'utiliserons lors de la prochaine étape de configuration de notre compte Nexmo, de notre numéro de téléphone et de l'application Voice.
Créer un compte Nexmo avec un numéro de téléphone et une application Voice
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.
Pour que notre application vocale fonctionne, nous avons besoin d'un compte Nexmo, d'un numéro de téléphone approvisionné par Nexmo, d'une application Nexmo et, enfin, nous devons lier notre application à notre numéro de téléphone.
Dans le menu de gauche, cliquez sur l'élément Voice menu dans le menu de gauche. Les quatre options suivantes s'affichent sous APPLICATIONS:

Cliquez sur l'option Create an application et vous serez dirigé vers une page où vous pourrez créer une nouvelle application Nexmo.
Complétez le formulaire avec les informations suivantes :
Application namechamp de texte entrerconference-call-demoEvent URLDans le champ de texte, entrez l'URL de votre ngrok :https://[ngrok url here]/eventAnswer URLDans le champ de texte, entrez à nouveau l'URL de votre ngrok :https://[ngrok url here]/webhooks/answer
Une fois que vous avez terminé, cliquez sur le bouton bleu Create Application bleu.
Vous avez maintenant créé une application Nexmo Voice. La prochaine étape consiste à acheter un numéro de téléphone Nexmo et à le lier à cette application.
Dans le tableau de bord Nexmo, cliquez sur l'élément de menu Numbers dans le menu de gauche. Vous verrez apparaître trois options :

Cliquez sur l'option Buy numbers et vous serez dirigé vers une page où vous pourrez choisir un pays, des caractéristiques, un type et les quatre chiffres que vous souhaitez voir figurer sur le numéro.

Pour ce qui nous concerne : choisissez le pays dans lequel vous vous trouvez actuellement, afin que l'appel soit un appel local pour vous ; choisissez Voice pour les caractéristiques et mobile ou fixe pour le type. Vous n'avez pas besoin d'entrer quoi que ce soit dans le Number pour le champ de texte. Lorsque vous cliquez sur Searchvous verrez une liste de numéros de téléphone disponibles.
Choisissez-en un en cliquant sur le bouton orange Buy et en cliquant à nouveau sur le bouton orange Buy à la demande de confirmation.
Une fois que vous possédez le numéro, vous pouvez maintenant le lier à votre conference-call-demo Voice. Pour ce faire, cliquez sur l'icône d'engrenage à côté du numéro de téléphone et vous verrez le menu suivant :

Sélectionnez l'application conference-call-demo Application dans la liste déroulante et cliquez sur le bouton bleu Ok bleu. Votre numéro de téléphone Numbers est maintenant lié à votre application Voice et prêt à accepter et à transférer les appels téléphoniques entrants via le proxy vocal.
Notre dernière étape avant d'être prêt à exécuter notre application est de définir nos actions de contrôleur Rails et nos Routes.
Créer un contrôleur et des routes Rails
Créez un fichier Controller appelé conference_controller.rb dans /app/controllers/. À l'intérieur du contrôleur, nous allons définir une action de contrôleur unique. L'action contiendra l'objet de contrôle d'appel Nexmo Call Control Object (NCCO) pour créer la conférence téléphonique.
# conference_controller.rb
class ConferenceController < ApplicationController
skip_before_action :verify_authenticity_token
def answer
render json:
[
{
:action => 'talk',
:text => 'Welcome to the Nexmo powered conference call'
},
{
:action => 'conversation',
:name => 'nexmo-conversation'
}
].to_json
end
def event
end
end
L'instruction NCCO définie dans la méthode ci-dessus #answer contient deux actions :
Accueillir l'appelant avec une
talkactionPlacez l'appelant dans la conférence téléphonique, également appelée "conférence".
conversation.
Le nom du conversation dans la deuxième action du NCCO est défini à ce stade. Il peut s'appeler n'importe quoi, et une fois qu'il est défini initialement, tous les appelants suivants peuvent être dirigés vers lui. En outre, tous les autres BCN conversation peuvent être définies pour cette conférence téléphonique. peuvent être définies pour cette conférence téléphonique en se référant au nom. conversation nom.
Enfin, nous devons définir les routes dans routes.rb afin que notre application Rails sache où diriger la requête Nexmo GET et où envoyer les mises à jour de statut que notre application reçoit de l'API Nexmo. POST les mises à jour de statut que notre application reçoit de l'API Nexmo. Allez-y et ouvrez /config/routes.rb et ajoutez ce qui suit :
# routes.rb
get '/webhooks/answer', to: 'conference#answer'
post '/event', to: 'conference#event'Vous remarquerez que les chemins d'accès aux GET et POST sont les mêmes URL que ceux que nous avons fournis lorsque nous avons configuré notre application Nexmo Voice dans le Nexmo Dashboard.
Notre application est prête à fonctionner ! Nous vous félicitons !
Exécution de l'application
Pour lancer votre application, il vous suffit d'exécuter la commande suivante à partir de la ligne de commande :
Cela lancera votre serveur Rails. Dans une autre fenêtre de terminal, assurez-vous que ngrok est également lancé. Appelez maintenant votre numéro de téléphone Nexmo et vous entendrez votre application vous dire : "Welcome to the Nexmo powered conference call". Vous pouvez inviter d'autres personnes à se joindre à votre conférence téléphonique en leur communiquant le numéro de téléphone.
Pour en savoir plus
Si vous souhaitez en savoir plus, vous pouvez consulter les documents suivants :
Partager:
Ben est un développeur en seconde carrière qui a auparavant passé une décennie dans les domaines de la formation pour adultes, de l'organisation communautaire et de la gestion d'organisations à but non lucratif. Il a travaillé comme défenseur des développeurs pour Vonage. Il écrit régulièrement sur l'intersection du développement communautaire et de la technologie. Originaire de Californie du Sud et ayant longtemps vécu à New York, Ben réside aujourd'hui près de Tel Aviv, en Israël.
