Aufnehmen einer Nachricht
Ein Codeschnipsel, der zeigt, wie man ein Gespräch aufzeichnet. Beantworten Sie einen eingehenden
Anruf beantworten und einen NCCO zurückgeben, der eine record Aktion. Wenn der Anruf
abgeschlossen ist, wird ein Webhook an die eventUrl die Sie angeben. Der Webhook enthält
die URL der Aufzeichnung.
Beispiel
Voraussetzungen
Schreiben Sie den Code
Fügen Sie Folgendes zu record-a-message.js hinzu:
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}`);
});Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei RecordMessage Folgendes hinzu:
Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.voice durch das Paket, das RecordMessage enthält:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei RecordMessage Folgendes hinzu:
/*
* 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);Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.voice durch das Paket, das RecordMessage enthält:
Voraussetzungen
Schreiben Sie den Code
Fügen Sie Folgendes zu RecordMessageController.cs hinzu:
Voraussetzungen
Schreiben Sie den Code
Fügen Sie Folgendes zu index.php hinzu:
require 'vendor/autoload.php';
$app = new \Slim\App();
$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/recording';
$record = new \Vonage\Voice\NCCO\Action\Record();
$record
->setEndOnSilence(3)
->setEndOnKey('#')
->setBeepStart(true)
->setEventWebhook(new \Vonage\Voice\Webhook($url))
;
$ncco = new \Vonage\Voice\NCCO\NCCO();
$ncco
->addAction(
new \Vonage\Voice\NCCO\Action\Talk('Please leave a message after the tone, then press #. We will get back to you as soon as we can')
)
->addAction($record)
->addAction(
new \Vonage\Voice\NCCO\Action\Talk('Thank you for your message. Goodbye')
)
;
return new JsonResponse($ncco);
});
$app->post('/webhooks/recording', 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();Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Probieren Sie es aus
Das müssen Sie tun:
- Nehmen Sie eine Nachricht auf, indem Sie Ihre Vonage Number wählen und Ihre Nachricht nach dem Signalton hinterlassen (dieses Codefragment).
- Laden Sie die Aufzeichnung herunter. Siehe die Eine Aufnahme herunterladen Codeschnipsel, wie das geht.
Weitere Lektüre
- Voicemail - Erfahren Sie, wie Sie mit .NET und der Voice API von Vonage Audiodaten von eingehenden Anrufen aufzeichnen können.