Fortschritte des NCCO verfolgen
In diesem Codeschnipsel sehen Sie, wie Sie verfolgen können, wie weit ein Aufrufer durch ein NCCO kommt
unter Verwendung der notify Aktion
Beispiel
Voraussetzungen
npm install expressSchreiben Sie den Code
Fügen Sie Folgendes zu track-ncco-progress.js hinzu:
const Express = require('express');
const app = new Express();
const onInboundCall = (request, response) => {
const ncco = [
{
'action': 'talk',
'text': 'Thanks for calling the notification line',
},
{
'action': 'notify',
'payload': {
'foo': 'bar',
},
'eventUrl': [`${request.protocol}://${request.get('host')}/webhooks/notification`],
},
{
'action': 'talk',
'text': 'You will never hear me as the notification URL will return an NCCO ',
},
];
response.json(ncco);
};
const onNotification = (_, response) => {
const ncco = [
{
'action': 'talk',
'text': 'Your notification has been received, loud and clear',
},
];
response.json(ncco);
};
app
.get('/webhooks/answer', onInboundCall)
.post('/webhooks/notification', onNotification);
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:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'Schreiben Sie den Code
Fügen Sie der Methode main in der Datei TrackNccoProgress 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:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''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 TrackNccoProgress enthält:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'Schreiben Sie den Code
Fügen Sie der Methode main in der Datei TrackNccoProgress Folgendes hinzu:
port(3000);
/*
* Answer Route
*/
get("/webhooks/answer", (req, res) -> {
String notifyUrl = String.format("%s://%s/webhooks/notification", req.scheme(), req.host());
TalkAction intro = TalkAction.builder("Thanks for calling the notification line.")
.build();
Map<String, String> payload = new HashMap<>();
payload.put("foo", "bar");
NotifyAction notify = NotifyAction.builder()
.payload(payload)
.eventUrl(notifyUrl)
.build();
TalkAction unheard = TalkAction.builder("You will never hear me as the notification URL will return an NCCO")
.build();
res.type("application/json");
return new Ncco(intro, notify, unheard).toJson();
});
/*
* Notification Route
*/
post("/webhooks/notification", (req, res) -> {
res.type("application/json");
return new Ncco(
TalkAction.builder("Your notification has been received, loud and clear.")
.build()
).toJson();
});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:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''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 TrackNccoProgress enthält:
Voraussetzungen
Install-Package VonageSchreiben Sie den Code
Fügen Sie Folgendes zu TrackNccoController.cs hinzu:
Voraussetzungen
composer require slim/slim:^3.8 vonage/clientFühren Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
pip install vonage python-dotenv fastapi[standard]Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
gem install sinatra sinatra-contrib rack-contribSchreiben Sie den Code
Fügen Sie Folgendes zu track-ncco-progress.rb hinzu:
# frozen_string_literal: true
require 'sinatra'
require 'sinatra/multi_route'
require 'rack/contrib'
use Rack::PostBodyContentTypeParser
before do
content_type :json
end
route :get, :post, '/webhooks/answer' do
[
{
'action' => 'talk',
'text' => 'Thanks for calling the notification line'
},
{
'action' => 'notify',
'payload' => {'foo' => 'bar'},
'eventUrl' => ["#{request.base_url}/webhooks/notification"]
},
{
'action' => 'talk',
'text' => 'You will never hear me as the notification URL will return an NCCO'
}
].to_json
end
route :get, :post, '/webhooks/notification' do
puts params
[
{
'action' => 'talk',
'text' => 'Your notification has been received, loud and clear'
}
].to_json
end
route :get, :post, '/webhooks/event' do
puts params
halt 204
end
set :port, 3000Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Probieren Sie es aus
Wenn Sie Ihre Vonage Numbers anrufen, hören Sie eine Text-to-Speech-Nachricht und erhalten eine Anfrage an Ihre Benachrichtigungs-URL