Transferir una llamada con NCCO en línea
Un fragmento de código que muestra cómo transferir el control de la llamada actual al control utilizando NCCO en línea.
Ejemplo
Sustituya las siguientes variables en el código de ejemplo:
| Clave | Descripción |
|---|---|
VOICE_CALL_ID | The UUID of the call leg. |
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 transfer-call-inline-ncco.sh:
curl -X PUT https://api.nexmo.com/v1/calls/$VOICE_CALL_ID \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json"\
-d '{"action": "transfer",
"destination": {"type": "ncco", "ncco": [{"action":"talk", "text":"This is a transfer action using an inline NCCO"}]}}'Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
npm install @vonage/server-sdkCrea un archivo llamado transfer-a-call-inline-ncco.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 transfer-a-call-inline-ncco.js:
vonage.voice.transferCallWithNCCO(VOICE_CALL_ID, {
action: 'transfer',
destination: {
'type': 'ncco',
'ncco': [
{
'action': 'talk',
'text': 'This is a transfer action using an inline NCCO',
},
],
},
})
.then(() => console.log('Call Transferred'))
.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 TransferCallWithNcco 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 TransferCallWithNcco:
client.voice.call(VOICE_CALL_ID).transfer(
talkAction("This is a transfer action using an inline NCCO.")
)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 TransferCallWithNcco:
Requisitos previos
Añada lo siguiente a build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Crea un archivo llamado TransferCallNCCO 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 TransferCallNCCO:
TalkAction talkAction = TalkAction.builder("This is a transfer action using an inline NCCO.").build();
client.getVoiceClient().transferCall(VOICE_CALL_ID, new Ncco(talkAction));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 TransferCallNCCO:
Requisitos previos
Install-Package VonageEscriba el código
Añada lo siguiente a TransferCallNcco.cs:
var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var client = new VonageClient(credentials);
var talkAction = new TalkAction() { Text = "This is a transfer action using an inline NCCO" };
var ncco = new Ncco(talkAction);
var callEditCommand = new CallEditCommand()
{
Action = CallEditCommand.ActionType.transfer,
Destination = new Destination()
{
Ncco = ncco
}
};
var response = await client.VoiceClient.UpdateCallAsync(VOICE_CALL_ID, callEditCommand);Requisitos previos
composer require vonage/clientEjecute 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 transfer-call-inline-ncco.py:
from vonage import Auth, Vonage
from vonage_voice import Talk
client = Vonage(
Auth(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_PRIVATE_KEY,
)
)
ncco = [Talk(text='This is a transfer action using an inline NCCO')]
client.voice.transfer_call_ncco(VOICE_CALL_ID, ncco)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
Necesitarás:
- Establezca una llamada y obtenga el UUID de la llamada. Para ello, puede utilizar el fragmento de código "Conectar una llamada entrante".
- Ejecute el código de ejemplo para transferir la llamada.
- El control se transferirá a una nueva OCN y oirá un mensaje de texto para confirmarlo.
Lecturas complementarias
- Conferencias telefónicas - Esta guía explica los dos conceptos que Vonage asocia con una llamada, una etapa y una conversación.