Recevoir un appel entrant
Cet extrait de code montre comment recevoir un appel entrant.
Exemple
Conditions préalables
npm install expressRédiger le code
Ajouter ce qui suit à receive-an-inbound-call.js:
const Express = require('express');
const app = new Express();
const onInboundCall = (request, response) => {
const from = request.query.from;
const fromSplitIntoCharacters = from.split('').join(' ');
const ncco = [
{
action: 'talk',
text: `Thank you for calling from ${fromSplitIntoCharacters}`,
},
];
response.json(ncco);
};
app.get('/webhooks/answer', onInboundCall);
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:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'Rédiger le code
Ajouter ce qui suit à la méthode main du fichier ReceiveInboundCall:
embeddedServer(Netty, port = 8000) {
routing {
get("/webhooks/answer") {
val from = call.request.queryParameters["from"]?.replace("", "")
call.response.header("Content-Type", "application/json")
call.respond(
Ncco(
talkAction("Thank you for calling from $from")
).toJson()
)
}
}
}.start(wait = true)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 :
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.voice par le paquet contenant ReceiveInboundCall:
Conditions préalables
Ajouter ce qui suit à build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'Rédiger le code
Ajouter ce qui suit à la méthode main du fichier InboundCall:
/*
* Route to answer incoming call.
*/
Route answerRoute = (req, res) -> {
String from = req.queryParams("from").replace("", " ");
TalkAction message = TalkAction
.builder(String.format("Thank you for calling from %s", from))
.build();
res.type("application/json");
return new Ncco(message).toJson();
};
/*
* Route to print out call event info.
*/
Route eventRoute = (req, res) -> {
System.out.println(req.body());
return "";
};
Spark.port(3000);
Spark.get("/webhooks/answer", answerRoute);
Spark.post("/webhooks/events", eventRoute);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 :
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Exécutez la commande gradle suivante pour exécuter votre application, en remplaçant com.vonage.quickstart.voice par le paquet contenant InboundCall:
Conditions préalables
Install-Package VonageRédiger le code
Ajouter ce qui suit à ReceiveInboundCallController.cs:
[HttpGet("webhooks/answer")]
public string Answer()
{
var talkAction = new TalkAction
{
Text = "Thank you for calling from " +
$"{string.Join(" ", Request.Query["from"].ToString().ToCharArray())}"
};
var ncco = new Ncco(talkAction);
return ncco.ToString();
}Conditions préalables
composer require slim/slim:^3.8 vonage/clientRédiger le code
Ajouter ce qui suit à index.php:
require 'vendor/autoload.php';
$app = new \Slim\App();
$app->get('/webhooks/answer', function (Request $request, Response $response) {
/** @var \Vonage\Voice\Webhook\Answer $call */
$call = \Vonage\Voice\Webhook\Factory::createFromRequest($request);
$fromSplitIntoCharacters = implode(" ", str_split($call->getFrom()));
$ncco = new \Vonage\Voice\NCCO\NCCO();
$ncco->addAction(
new \Vonage\Voice\NCCO\Action\Talk('Thank you for calling from ' . $fromSplitIntoCharacters)
);
return new JsonResponse($ncco);
});
$app->run();Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
pip install vonage python-dotenv fastapi[standard]Rédiger le code
Ajouter ce qui suit à receive-an-inbound-call.py:
from fastapi import FastAPI, Query
from vonage_voice import Talk
app = FastAPI()
@app.get('/webhooks/answer')
async def answer_call(from_: str = Query(..., alias='from')):
from_ = '-'.join(from_)
return [
Talk(text=f'Thank you for calling from {from_}').model_dump(
by_alias=True, exclude_none=True
)
]Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
gem install sinatra sinatra-contribExécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Essayez-le
Lorsque vous appelez votre Numbers Vonage, vous entendrez un message de synthèse vocale.
Pour en savoir plus
- Réponse vocale interactive (RVI) - Construire un système téléphonique automatisé permettant aux utilisateurs de saisir des informations à l'aide du clavier et d'entendre une réponse vocale.
- Voice Bot avec Google Dialogflow - Ce guide vous aidera à démarrer avec un exemple de bot Dialogflow et à interagir avec lui à partir d'appels téléphoniques en utilisant les exemples de codes de référence fournis en utilisant l'API Voice de Vonage.
- Appel masqué - Permettre aux utilisateurs de s'appeler les uns les autres, tout en préservant la confidentialité de leurs numéros réels.
- Conférence téléphonique - Ce guide explique les deux concepts que Vonage associe à un appel, un segment et une conversation.
- Suivi des appels - Gardez la trace des campagnes qui fonctionnent bien en utilisant des numéros différents pour chacune d'entre elles et en effectuant le suivi des appels entrants. Ce guide vous montre comment traiter les appels entrants, les connecter à un autre numéro et suivre les numéros de téléphone qui ont appelé chacun de vos numéros Vonage.