Connecter un appel entrant
Dans cet extrait de code, vous voyez comment connecter un appel entrant à une autre personne en effectuant un appel sortant.
Exemple
Remplacez les variables suivantes dans le code de l'exemple :
| Clé | Description |
|---|---|
VONAGE_VIRTUAL_NUMBER | Your Vonage Number. E.g. |
VOICE_TO_NUMBER | The recipient number to call, e.g. |
Conditions préalables
npm install expressRédiger le code
Ajouter ce qui suit à connect-an-inbound-call.js:
const Express = require('express');
const app = new Express();
const onInboundCall = (_, response) => {
const ncco = [
{
action: 'connect',
from: VONAGE_VIRTUAL_NUMBER,
endpoint: [
{
type: 'phone',
number: VOICE_TO_NUMBER,
},
],
},
];
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 ConnectInboundCall:
embeddedServer(Netty, port = 8000) {
routing {
route("/webhooks/answer") {
handle {
call.response.header("Content-Type", "application/json")
call.respond(
Ncco(
connectToPstn(VOICE_TO_NUMBER) {
from(VONAGE_VIRTUAL_NUMBER)
}
).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 ConnectInboundCall:
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 ConnectInboundCall:
/*
* Route to answer incoming calls with an NCCO response.
*/
Route answerRoute = (req, res) -> {
ConnectAction connect = ConnectAction.builder()
.endpoint(PhoneEndpoint.builder(VOICE_TO_NUMBER).build())
.from(VONAGE_VIRTUAL_NUMBER)
.build();
res.type("application/json");
return new Ncco(connect).toJson();
};
Spark.port(3000);
Spark.get("/webhooks/answer", answerRoute);
Spark.post("/webhooks/answer", answerRoute);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 ConnectInboundCall:
Conditions préalables
Install-Package VonageRédiger le code
Ajouter ce qui suit à ConnectInboundCallController.cs:
[Route("webhooks/answer")]
public string Answer()
{
var VOICE_TO_NUMBER = Environment.GetEnvironmentVariable("VOICE_TO_NUMBER") ?? "VOICE_TO_NUMBER";
var VONAGE_VIRTUAL_NUMBER = Environment.GetEnvironmentVariable("VONAGE_VIRTUAL_NUMBER") ?? "VONAGE_VIRTUAL_NUMBER";
var talkAction = new TalkAction()
{
Text = "Thank you for calling",
Language = "en-gb",
Style = 2
};
var secondNumberEndpoint = new PhoneEndpoint() { Number=VOICE_TO_NUMBER};
var connectAction = new ConnectAction() { From=VONAGE_VIRTUAL_NUMBER, Endpoint= new[] { secondNumberEndpoint } };
var ncco = new Ncco(talkAction,connectAction);
return ncco.ToString();
}Conditions 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]Rédiger le code
Ajouter ce qui suit à connect-an-inbound-call.py:
import os
from os.path import dirname, join
from dotenv import load_dotenv
from fastapi import FastAPI
from vonage_voice import Connect, PhoneEndpoint
dotenv_path = join(dirname(__file__), '../.env')
load_dotenv(dotenv_path)
VONAGE_VIRTUAL_NUMBER = os.environ.get('VONAGE_VIRTUAL_NUMBER')
VOICE_TO_NUMBER = os.environ.get('VOICE_TO_NUMBER')
app = FastAPI()
@app.get('/webhooks/answer')
async def inbound_call():
ncco = [
Connect(
endpoint=[PhoneEndpoint(number=VOICE_TO_NUMBER)],
from_=VONAGE_VIRTUAL_NUMBER,
).model_dump(by_alias=True, exclude_none=True)
]
return nccoExé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
Vous devrez exposer votre serveur à l'internet ouvert. Pendant le développement, vous pouvez utiliser un outil comme Ngrok pour ce faire.
Lorsque vous appelez votre numéro Vonage, vous êtes automatiquement connecté au numéro que vous avez spécifié à la place de votre numéro de téléphone.
numéro que vous avez spécifié à la place de VOICE_TO_NUMBER.
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.