Enregistrer un message
Un extrait de code qui montre comment enregistrer une conversation. Répondre à un appel entrant
et renvoie un NCCO qui comprend un record action. Lorsque l'appel est
terminé, un webhook est envoyé à l'utilisateur de l'application eventUrl que vous spécifiez. Le webhook comprend
l'URL de l'enregistrement.
Exemple
Conditions préalables
npm install express body-parserRédiger le code
Ajouter ce qui suit à record-a-message.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: 'talk',
text: 'Please leave a message after the tone, then press #. We will get back to you as soon as we can.',
},
{
action: 'record',
endOnKey: '#',
beepStart: 'true',
endOnSilence: '3',
eventUrl: [`${request.protocol}://${request.get('host')}/webhooks/recordings`],
},
{
action: 'talk',
text: 'Thank you for your message. Goodbye.',
},
];
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 RecordMessage:
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 RecordMessage:
Conditions préalables
Ajouter ce qui suit à build.gradle:
Rédiger le code
Ajouter ce qui suit à la méthode main du fichier RecordMessage:
/*
* 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());
TalkAction intro = TalkAction.builder(
"Please leave a message after the tone, then press #. We will get back to you as soon as we can.").build();
RecordAction record = RecordAction.builder()
.eventUrl(recordingUrl)
.endOnSilence(3)
.endOnKey('#')
.beepStart(true)
.build();
TalkAction outro = TalkAction.builder("Thank you for your message. Goodbye").build();
res.type("application/json");
return new Ncco(intro, record, outro).toJson();
};
/*
* Route which prints out the recording URL it is given to stdout.
*/
Route recordingRoute = (req, res) -> {
EventWebhook recordEvent = EventWebhook.fromJson(req.body());
System.out.println(recordEvent.getRecordingUrl());
res.status(204);
return "";
};
Spark.port(3000);
Spark.get("/webhooks/answer", answerRoute);
Spark.post("/webhooks/recordings", recordingRoute);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 RecordMessage:
Conditions préalables
Install-Package VonageConditions préalables
composer require slim/slim:^3.8 vonage/clientExécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
pip install vonage python-dotenv fastapi[standard]Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
gem install sinatra sinatra-contribRédiger le code
Ajouter ce qui suit à record-a-message.rb:
require 'sinatra'
require 'sinatra/multi_route'
require 'json'
before do
content_type :json
end
helpers do
def parsed_body
JSON.parse(request.body.read)
end
end
route :get, :post, '/webhooks/answer' do
[
{
"action": "talk",
"text": "Please leave a message after the tone, then press #. We will get back to you as soon as we can"
},
{
"action": "record",
"eventUrl": ["#{request.base_url}/webhooks/recordings"],
"endOnSilence": "3",
"endOnKey": "#",
"beepStart": "true"
},
{
"action": "talk",
"text": "Thank you for your message. Goodbye"
}
].to_json
end
route :get, :post, '/webhooks/recordings' do
recording_url = params['recording_url'] || parsed_body['recording_url']
puts "Recording URL = #{recording_url}"
halt 204
end
set :port, 3000Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Essayez-le
Vous devrez :
- Enregistrez un message en composant votre numéro Vonage et en laissant votre message après la tonalité (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
- Boîte vocale - Apprenez à enregistrer le son des appels entrants à l'aide de .NET et de l'API Voice de Vonage.