
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 PHP et l'API Voice de Vonage
Temps de lecture : 7 minutes
Introduction
Dans ce tutoriel, vous apprendrez à créer une application de conférence téléphonique en utilisant PHP et l'API Voice de Vonage. À la fin, vous aurez un numéro de téléphone que plusieurs participants pourront appeler pour rejoindre la même conversation en direct.
Nous allons configurer une application Vonage, gérer les appels entrants avec un objet de contrôle d'appel (NCCO) et renvoyer des réponses dynamiques à partir d'un simple point de terminaison PHP. Ce projet est un point de départ pratique pour créer des lignes de réunion d'équipe, des lignes d'assistance pour les événements ou des expériences vocales collaboratives.
Le code source complet de ce tutoriel est disponible dans le dépôt GitHub de la communauté de dépôt GitHub de la communauté Vonageafin que vous puissiez le suivre ou l'adapter à votre propre cas d'utilisation.
Conditions préalables
Un Account API de Vonage
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.
Répondre à un appel entrant avec PHP
Dans cet exemple, les utilisateurs appelleront un numéro virtuel de Vonage et le code de votre application répondra à cet appel entrant. Pour ce faire, Vonage utilise un objet de contrôle d'appel, ou NCCO.
Tout d'abord, nous aurons un message d'accueil en synthèse vocale (TTS), puis l'utilisateur rejoindra la conférence téléphonique.
Pour ce faire, nous ajouterons un fichier answer.php dans le répertoire public/ (notre racine web) et lui demander de renvoyer le NCCO. Le NCCO est un JSON, donc le PHP doit aussi inclure un Content-Type approprié :
<?php
$ncco = [
[
"action" => "talk",
"text" => "Thank you for joining the call today. You will now be added to the conference.",
"language" => "en-GB",
"style" => 0,
"premium" => true
],
[
"action" => "conversation",
"name" => "weekly-team-meeting"
]
];
header("Content-Type: application/json");
echo json_encode($ncco);La variable $ncco contient le NCCO que vous renverrez au serveur de Vonage pour lui indiquer comment traiter un appel entrant. Cet exemple comprend une action "talk" qui accueille l'utilisateur, suivie d'une action "conversation" qui ajoute l'utilisateur à la conférence téléphonique. Ce code utilise header() pour que PHP envoie l'en-tête Content-Type suivi du JSON lui-même.
Si vous êtes curieux de savoir ce que vous pouvez faire d'autre avec un NCCO, vous pouvez consulter la documentation de référence sur les NCCO sur notre portail des développeurs.
Servir la réponse
À ce stade, vous pouvez commencer à tester les éléments mobiles de l'application. Démarrez le serveur web PHP à partir du répertoire public/ dans le répertoire
cd public/
php -S localhost:8080Vérifiez que votre application renvoie correctement le NCCO lorsque vous envoyez une requête à http://localhost:8080/answer.php à l'aide de votre client HTTP préféré (cURL, Postman ou même votre navigateur serait un bon outil à utiliser ici).
Mettre le code à la disposition du public
Pour que Vonage notifie votre application d'un appel entrant, il faut qu'elle puisse l'atteindre, ce code doit donc être accessible au public. Une option est de le déployer sur un serveur, mais à des fins de développement, je préfère utiliser ngrok pour exposer mon environnement de développement local. Une fois le serveur web lancé (le mien est sur le port 8080), lancez ngrok comme suit :
ngrok http 8080Cela vous donnera un tableau de bord montrant un lien vers l'interface web (très utile, cliquez dessus), l'URL https de votre tunnel (copiez-la, nous en aurons besoin dans un moment), et une section qui montrera les requêtes arrivant lorsque vous en ferez.
Essayez votre nouveau tunnel en faisant un appel à votre application à travers lui - vous pouvez remplacer http://localhost:8080 par l'URL https de votre ngrok, et réessayez la requête vers /answer.php à nouveau.
Configurer un numéro à appeler
Acheter un Numbers Vonage
Pour acheter un numéro de téléphone virtuel, rendez-vous sur votre tableau de bord API et suivez les étapes ci-dessous.
Purchase a phone number
Accédez à votre tableau de bord API
Naviguez vers CONSTRUIRE & GERER > Numbers > Acheter des Numbers.
Choisissez les attributs nécessaires et cliquez sur Rechercher
Cliquez sur le bouton Acheter à côté du numéro désiré et validez votre achat
Pour confirmer que vous avez acheté le numéro virtuel, allez dans le menu de navigation de gauche, sous CONSTRUIRE & GÉRER, cliquez sur Numéros, puis sur Vos Numéros
Créer une application Voice-Enabled de Vonage
L'autre élément nécessaire est une application Vonage : elle contient la configuration de l'appel et peut être liée au(x) numéro(s) que vous souhaitez utiliser. Cette séparation est très utile si vous souhaitez que des numéros de différentes zones géographiques participent à la même conférence téléphonique.
Les applications Vonage utilisent des clés publiques/privées. Dans cet exemple, vous recevez simplement un appel entrant, vous n'aurez donc pas besoin de la clé privée pour le moment. Cependant, c'est une bonne pratique de sauvegarder votre fichier private.key dans votre répertoire de travail, au cas où vous décideriez d'ajouter d'autres fonctionnalités à cet exemple.
Pour créer l'application, vous devez lui donner un nom et configurer certains points de terminaison importants du webhook :
L'URL de réponse sera le point de terminaison
answer.phpque vous avez déjà créée.Définissez l'URL de l'événement comme suit
event.php. Nous créerons ce fichier dans la section suivante.
Pour créer une application, allez à la page Créer une application sur le tableau de bord de Vonage, et définissez un nom pour votre application.
Si vous avez l'intention d'utiliser une API qui utilise des Webhooks, vous aurez besoin d'une clé privée. Cliquez sur "Générer une clé publique et privée", votre téléchargement devrait démarrer automatiquement. Conservez-la en lieu sûr ; cette clé ne peut pas être retéléchargée si elle est perdue. Elle suivra la convention de nommage suivante private_<votre identifiant d'application>.key. Cette clé peut maintenant être utilisée pour authentifier les appels à l'API. Remarque : votre clé ne fonctionnera pas tant que votre application n'aura pas été sauvegardée.
Choisissez les fonctionnalités dont vous avez besoin (par exemple, Voice, Messages, RTC, etc.) et fournissez les webhooks requis (par exemple, URL d'événement, URL de réponse ou URL de message entrant). Ces éléments seront décrits dans le tutoriel.
Pour sauvegarder et déployer, cliquez sur "Générer une nouvelle application" pour finaliser la configuration. Votre application est maintenant prête à être utilisée avec les API de Vonage.
Liez l'Applications à votre numéro Vonage
Votre application Vonage étant maintenant créée, vos numéros virtuels disponibles apparaîtront au bas de l'écran, y compris celui que vous venez d'acheter à l'étape précédente.
Sélectionnez le numéro que vous souhaitez utiliser pour ce tutoriel, puis cliquez sur le bouton lier à côté pour relier votre numéro virtuel et l'Application Vonage.
Par conséquent, lorsque vous appellerez votre numéro virtuel, Vonage cherchera des instructions de flux d'appels à l'URL que vous avez spécifié comme suit URL de réponseet enverra des webhooks d'événement à votre URL d'événement.
Ensuite, vérifions que tout ce que nous avons fait jusqu'à présent fonctionne. Appelez le numéro et voyez si vous entendez le message d'accueil ; si c'est le cas, demandez à quelqu'un d'autre d'appeler et de discuter.
Si cela ne fonctionne pas la première fois, ne vous inquiétez pas. L'étape suivante consiste à construire la gestion des événements afin que vous puissiez voir ce qui se passe - et s'il y a des erreurs, c'est ainsi que vous les verrez.
Gérer les événements liés aux appels
Pour simplifier les choses, l'application s'attend à ce que l'URL de son événement soit/event.php-et si vous l'avez déjà testée, vous avez vu des requêtes échouer à cet endroit.
Pour créer un simple gestionnaire d'événements, créez un fichier public/event.php et ajoutez le code suivant :
<?php
$post_params = json_decode(file_get_contents("php://input"), true);
$input_params = $_GET;
if (is_array($post_params)) {
$input_params = array_merge($input_params, $post_params);
}
if (isset($input_params['status'])) {
error_log("Status: " . $input_params['status']);
}
error_log("Event data: " . json_encode($input_params));Il est possible de configurer l'URL de l'événement pour qu'elle utilise soit GET ou POST ce qui permet à ce code de gérer l'une ou l'autre de ces requêtes ! Il est très simple et écrit les données dans le fichier error_logAinsi, si vous utilisez le serveur web PHP local comme je l'ai fait dans cet exemple, vous verrez les événements dans la sortie du processus du serveur web. Dans une application réelle, vous pouvez lier l'URL de votre événement à quelque chose de plus formel.
Démarrer la conférence téléphonique
Si vous ne l'avez pas encore essayé, appelez votre numéro Vonage. Invitez ensuite vos amis, votre famille et vos collègues à faire de même. Vous verrez les événements pendant les appels arriver en event.phpet les différents appels pris, avec des demandes adressées à answer.php.
Votre prochaine étape ?
Il y a plusieurs choses que vous pourriez faire ensuite :
Consultez la documentation du BCN pour savoir comment enregistrer ces appels, diffuser une musique d'attente ou affecter un modérateur spécifique à l'appel.
Voir le code de ce projet sur GitHub.
Consultez nos autres extraits de code pour travailler avec l'API Voice de Vonage.
Conclusion
Dans ce tutoriel, nous avons construit une conférence téléphonique en PHP en utilisant l'API Voice de Vonage. Vous avez configuré une application Voice, géré des webhooks d'appels entrants et renvoyé un NCCO pour placer plusieurs appelants dans la même conversation.
À partir de là, vous pouvez étendre ce projet en ajoutant l'enregistrement des appels, en assignant des modérateurs, en diffusant de la musique d'attente ou en générant dynamiquement des noms de salles de conférence. Vous pouvez également combiner ce flux de travail avec l Messages API pour envoyer des rappels, ou intégrer l l'authentification pour contrôler les personnes autorisées à participer.
Vous avez une question ou souhaitez partager ce que vous construisez ?
Rejoignez la conversation sur le Communauté Vonage Slack
S'abonner à la Bulletin d'information du développeur
Suivez-nous sur X (anciennement Twitter) pour les mises à jour
Regardez les tutoriels sur notre chaîne YouTube
Connectez-vous avec nous sur la page Vonage Developer sur LinkedIn
Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.
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.
