Hacer una llamada saliente
Este fragmento de código realiza una llamada saliente y reproduce un mensaje de texto a voz cuando se contesta la llamada.
Ejemplo
Sustituya las siguientes variables en el código de ejemplo:
| Clave | Descripción |
|---|---|
VONAGE_VIRTUAL_NUMBER | Your Vonage Number. E.g. |
VOICE_TO_NUMBER | The recipient number to call, e.g. |
VOICE_ANSWER_URL | The answer URL. For example |
Requisitos previos
Ejecute el siguiente comando en el símbolo del sistema de su terminal para crear la dirección JWT para la autenticación:
export JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$NEXMO_APPLICATION_ID)Escriba el código
Añada lo siguiente a make-an-outbound-call.sh:
curl -X POST https://api.nexmo.com/v1/calls\
-H "Authorization: Bearer $JWT"\
-H "Content-Type: application/json"\
-d '{"to":[{"type": "phone","number": "'$VOICE_TO_NUMBER'"}],
"from": {"type": "phone","number": "'$VONAGE_VIRTUAL_NUMBER'"},
"answer_url":["'"$VOICE_ANSWER_URL"'"]}'Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
npm install @vonage/server-sdkCrea un archivo llamado make-an-outbound-call.js y añade el siguiente código:
const { Vonage } = require('@vonage/server-sdk');
const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});Escriba el código
Añada lo siguiente a make-an-outbound-call.js:
vonage.voice.createOutboundCall({
to: [
{
type: 'phone',
number: VOICE_TO_NUMBER,
},
],
from: {
type: 'phone',
number: VONAGE_VIRTUAL_NUMBER,
},
answer_url: [VOICE_ANSWER_URL],
})
.then((resp) => console.log(resp))
.catch((error) => console.error(error));Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
Añada lo siguiente a build.gradle:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crea un archivo llamado OutboundTextToSpeechCall y añade el siguiente código al método main:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Escriba el código
Añada lo siguiente al método main del archivo OutboundTextToSpeechCall:
val callEvent = client.voice.createCall {
toPstn(VOICE_TO_NUMBER)
from(VONAGE_VIRTUAL_NUMBER)
answerUrl(VOICE_ANSWER_URL)
}Ejecute su código
Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.kt.voice por el paquete que contiene OutboundTextToSpeechCall:
Requisitos previos
Añada lo siguiente a build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Crea un archivo llamado OutboundTextToSpeech y añade el siguiente código al método main:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Escriba el código
Añada lo siguiente al método main del archivo OutboundTextToSpeech:
client.getVoiceClient().createCall(new Call(VOICE_TO_NUMBER, VONAGE_VIRTUAL_NUMBER, VOICE_ANSWER_URL));Ejecute su código
Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.voice por el paquete que contiene OutboundTextToSpeech:
Requisitos previos
Install-Package VonageEscriba el código
Añada lo siguiente a MakeOutboundCall.cs:
var creds = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var client = new VonageClient(creds);
var answerUrl = "https://nexmo-community.github.io/ncco-examples/text-to-speech.json";
var toEndpoint = new PhoneEndpoint() { Number = VOICE_TO_NUMBER };
var fromEndpoint = new PhoneEndpoint() { Number = VONAGE_VIRTUAL_NUMBER };
var command = new CallCommand() { To = new Endpoint[] { toEndpoint }, From = fromEndpoint, AnswerUrl = new[] { answerUrl } };
var response = await client.VoiceClient.CreateCallAsync(command);Requisitos previos
composer require vonage/clientEscriba el código
Añada lo siguiente a text-to-speech-outbound.php:
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../vendor/autoload.php';
// Building Blocks
// 1. Make a Phone Call
// 2. Play Text-to-Speech
$keypair = new \Vonage\Client\Credentials\Keypair(
file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
VONAGE_APPLICATION_ID
);
$client = new \Vonage\Client($keypair);
$outboundCall = new \Vonage\Voice\OutboundCall(
new \Vonage\Voice\Endpoint\Phone(TO_NUMBER),
new \Vonage\Voice\Endpoint\Phone(VONAGE_NUMBER)
);
$outboundCall->setAnswerWebhook(
new \Vonage\Voice\Webhook(
'https://raw.githubusercontent.com/nexmo-community/ncco-examples/gh-pages/text-to-speech.json',
\Vonage\Voice\Webhook::METHOD_GET
)
);
$response = $client->voice()->createOutboundCall($outboundCall);
var_dump($response);Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
pip install vonage python-dotenvEscriba el código
Añada lo siguiente a make-an-outbound-call.py:
from vonage import Auth, Vonage
from vonage_voice import CreateCallRequest, Phone, ToPhone
client = Vonage(
Auth(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_PRIVATE_KEY,
)
)
response = client.voice.create_call(
CreateCallRequest(
answer_url=[VOICE_ANSWER_URL],
to=[ToPhone(number=VOICE_TO_NUMBER)],
from_=Phone(number=VONAGE_VIRTUAL_NUMBER),
)
)
pprint(response)Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
gem install vonageEjecute su código
Guarde este archivo en su máquina y ejecútelo:
Pruébalo
Al ejecutar el código, el TO_NUMBER y se oirá un mensaje de texto a voz
si se responde a la llamada.
Lecturas complementarias
- Notificaciones de voz - En esta guía aprenderá a ponerse en contacto por teléfono con una lista de personas, transmitirles un mensaje y ver quién confirma que ha recibido el mensaje. Estas alertas críticas basadas en la voz son más persistentes que un mensaje de texto, por lo que es más probable que su mensaje se tenga en cuenta. Además, con la confirmación del destinatario, puede estar seguro de que su mensaje ha llegado.
- Conferencias telefónicas - Esta guía explica los dos conceptos que Vonage asocia con una llamada, una etapa y una conversación.
- Bot de voz con Google Dialogflow - Esta guía le ayudará a empezar con un bot Dialogflow de ejemplo e interactuar con él desde llamadas telefónicas utilizando los códigos de referencia de ejemplo proporcionados utilizando Vonage Voice API.