Enregistrer une conversation nommée
Un extrait de code qui montre comment enregistrer une conversation. Répondre à un appel entrant
et renvoie un NCCO qui joint l'appelant à une conversation nommée. En
paramétrant record à true, la conversation est enregistrée et lorsque l'appel est terminé, un
est terminé, un webhook est envoyé à l'adresse eventUrl que vous spécifiez. Le webhook comprend
l'URL de l'enregistrement.
Exemple
Conditions préalables
Rédiger le code
Ajouter ce qui suit à record-a-conversation.js:
const Express = require('express');
const bodyParser = require('body-parser');
const app = new Express();
app.use(bodyParser.json());
const onInboundCall = (request, response) => {
const ncco = [
{
'action': 'conversation',
'name': VOICE_CONF_NAME,
'record': 'true',
'eventMethod': 'POST',
'eventUrl': [`${request.protocol}://${request.get('host')}/webhooks/recordings`],
},
];
response.json(ncco);
};
const onRecording = (request, response) => {
const recording_url = request.body?.recording_url;
console.log(`Recording URL = ${recording_url}`);
response.status(204).send();
};
app
.get('/webhooks/answer', onInboundCall)
.post('/webhooks/recordings', onRecording);
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Ajouter ce qui suit à build.gradle:
Rédiger le code
Ajouter ce qui suit à la méthode main du fichier RecordConversation:
Exécutez votre code
Nous pouvons utiliser le plugin Applications pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :
Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.voice par le paquet contenant RecordConversation:
Conditions préalables
Ajouter ce qui suit à build.gradle:
Rédiger le code
Ajouter ce qui suit à la méthode main du fichier RecordConversation:
/*
* Route to answer and connect incoming calls with recording.
*/
Route answerRoute = (req, res) -> {
String recordingUrl = String.format("%s://%s/webhooks/recordings", req.scheme(), req.host());
ConversationAction conversation = ConversationAction.builder(VOICE_CONFERENCE_NAME)
.record(true)
.eventMethod(EventMethod.POST)
.eventUrl(recordingUrl)
.build();
res.type("application/json");
return new Ncco(conversation).toJson();
};
/*
* Route which prints out the recording URL it is given to stdout.
*/
Route recordingWebhookRoute = (req, res) -> {
System.out.println(EventWebhook.fromJson(req.body()).getRecordingUrl());
res.status(204);
return "";
};
Spark.port(3000);
Spark.get("/webhooks/answer", answerRoute);
Spark.post("/webhooks/recordings", recordingWebhookRoute);Exécutez votre code
Nous pouvons utiliser le plugin Applications pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :
Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.voice par le paquet contenant RecordConversation:
Conditions préalables
Conditions préalables
Rédiger le code
Ajouter ce qui suit à index.php:
require 'vendor/autoload.php';
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
define('CONF_NAME', getenv('CONF_NAME'));
$app = new \Slim\App();
$app->map(['GET', 'POST'], '/webhooks/event', function($request, $response) {
error_log(print_r($_REQUEST, true));
});
$app->get('/webhooks/answer', function (Request $request, Response $response) {
//Get our public URL for this route
$uri = $request->getUri();
$url = $uri->getScheme() . '://'.$uri->getHost() . ($uri->getPort() ? ':'.$uri->getPort() : '') . '/webhooks/recordings';
$conversation = new \Vonage\Voice\NCCO\Action\Conversation(CONF_NAME);
$conversation->setRecord(true);
$conversation->setEventWebhook(new \Vonage\Voice\Webhook($url));
$ncco = new \Vonage\Voice\NCCO\NCCO();
$ncco->addAction($conversation);
return new JsonResponse($ncco);
});
$app->post('/webhooks/recordings', function (Request $request, Response $response) {
/** @var \Vonage\Voice\Webhook\Record */
$recording = \Vonage\Voice\Webhook\Factory::createFromRequest($request);
error_log($recording->getRecordingUrl());
return $response->withStatus(204);
});
$app->run();Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Essayez-le
Vous devrez :
- Enregistrez une conversation en composant votre numéro Vonage (cet extrait de code).
- Télécharger l'enregistrement. Voir l'enregistrement Télécharger un enregistrement pour savoir comment procéder.
Pour en savoir plus
- Enregistrement des appels - Enregistrement de l'entrée audio d'un appelant ou enregistrement de la conversation entre deux appelants.