Receber uma chamada
Neste trecho de código, você vê como receber uma chamada recebida.
Exemplo
Pré-requisitos
npm install expressEscreva o código
Adicione o seguinte ao arquivo ` 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}`);
});Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` 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)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.voice ` pelo pacote que contém ` ReceiveInboundCall`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` 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);Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.voice ` pelo pacote que contém ` InboundCall`:
Pré-requisitos
Install-Package VonageEscreva o código
Adicione o seguinte ao arquivo ` 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();
}Pré-requisitos
composer require slim/slim:^3.8 vonage/clientEscreva o código
Adicione o seguinte ao arquivo ` 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();Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenv fastapi[standard]Escreva o código
Adicione o seguinte ao arquivo ` 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
)
]Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install sinatra sinatra-contribEscreva o código
Adicione o seguinte ao arquivo ` inbound_tts_call.rb`:
require 'sinatra'
require 'sinatra/multi_route'
require 'json'
helpers do
def parsed_body
JSON.parse(request.body.read)
end
end
before do
content_type :json
end
route :get, :post, '/webhooks/answer' do
from = params['from'] || parsed_body['from']
from_split_into_characters = from.split('').join(' ')
[{
action: 'talk',
text: "Thank you for calling from #{from_split_into_characters}"
}].to_json
end
set :port, 3000Execute seu código
Salve este arquivo no seu computador e execute-o:
Experimente
Ao ligar para o seu número da Vonage, você ouvirá uma mensagem gerada por conversão de texto em fala.
Leitura complementar
- Resposta Interativa de Voz (IVR) - Criar um sistema telefônico automatizado para que os usuários possam inserir informações pelo teclado e ouvir uma resposta falada.
- Bot de voz com o Google Dialogflow - Este guia vai ajudá-lo a dar os primeiros passos com um bot do Dialogflow de exemplo e a interagir com ele por meio de chamadas telefônicas, utilizando os códigos de referência de exemplo fornecidos e a Voice API da Vonage.
- A Chamada do Mascarado - Permitir que os usuários liguem uns para os outros, mantendo seus números reais em sigilo.
- Teleconferência - Este guia explica os dois Concepts que a Vonage associa a uma chamada: “leg” e “conversação”.
- Rastreamento de chamadas - Acompanhe quais campanhas estão dando bons resultados usando números diferentes para cada uma delas e monitorando as chamadas recebidas. Este guia mostra como lidar com as chamadas recebidas, redirecioná-las para outro número e rastrear os números de telefone que ligaram para cada um dos seus números da Vonage.