Transférer un appel avec NCCO en ligne
Un extrait de code qui montre comment transférer le contrôle de l'appel en cours au contrôle à l'aide d'un NCCO en ligne.
Exemple
Remplacez les variables suivantes dans le code de l'exemple :
| Clé | Description |
|---|---|
VOICE_CALL_ID | The UUID of the call leg. |
Conditions préalables
Exécutez la commande suivante à l'invite de votre terminal pour créer le site JWT pour l'authentification :
export JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$NEXMO_APPLICATION_ID)Rédiger le code
Ajouter ce qui suit à 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"}]}}'Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
npm install @vonage/server-sdkCréez un fichier nommé transfer-a-call-inline-ncco.js et ajoutez le code suivant :
const { Vonage } = require('@vonage/server-sdk');
const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});Rédiger le code
Ajouter ce qui suit à 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));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'Créez un fichier nommé TransferCallWithNcco et ajoutez le code suivant à la méthode main:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Rédiger le code
Ajouter ce qui suit à la méthode main du fichier TransferCallWithNcco:
client.voice.call(VOICE_CALL_ID).transfer(
talkAction("This is a transfer action using an inline NCCO.")
)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 TransferCallWithNcco:
Conditions préalables
Ajouter ce qui suit à build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Créez un fichier nommé TransferCallNCCO et ajoutez le code suivant à la méthode main:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Rédiger le code
Ajouter ce qui suit à la méthode main du fichier TransferCallNCCO:
TalkAction talkAction = TalkAction.builder("This is a transfer action using an inline NCCO.").build();
client.getVoiceClient().transferCall(VOICE_CALL_ID, new Ncco(talkAction));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 TransferCallNCCO:
Conditions préalables
Install-Package VonageRédiger le code
Ajouter ce qui suit à 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);Conditions préalables
composer require vonage/clientRédiger le code
Ajouter ce qui suit à index.php:
require_once __DIR__ . '/../../config.php';
require_once __DIR__ . '/../../vendor/autoload.php';
$keypair = new \Vonage\Client\Credentials\Keypair(file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH), VONAGE_APPLICATION_ID);
$client = new \Vonage\Client($keypair);
if (count($argv) != 2) {
error_log("You must supply a UUID of currently connected call to update");
exit(1);
}
define('UUID', $argv[1]);
try {
$call = $client->voice()->get(UUID);
$ncco = new \Vonage\Voice\NCCO\NCCO();
$ncco->addAction(new \Vonage\Voice\NCCO\Action\Talk('This call was transferred'));
$client->voice()->transferCall(
$call->getUuid(),
new \Vonage\Voice\NCCO\Action\Transfer($ncco)
);
} catch (\Vonage\Client\Exception\Request $e) {
error_log("Client error: " . $e->getMessage());
exit(1);
} catch (\Vonage\Client\Exception\Server $e) {
error_log("Server error: " . $e->getMessage());
exit(1);
}Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
pip install vonage python-dotenvRédiger le code
Ajouter ce qui suit à 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)Exécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Conditions préalables
gem install vonageExécutez votre code
Enregistrez ce fichier sur votre machine et exécutez-le :
Essayez-le
Vous devrez :
- Établissez un appel et obtenez l'UUID de l'appel. Pour ce faire, vous pouvez utiliser l'extrait de code "connecter un appel entrant".
- Exécutez l'exemple de code pour transférer l'appel.
- Le contrôle sera transféré à un nouveau BCN et vous entendrez un message de synthèse vocale pour le confirmer.
Pour en savoir plus
- Conférence téléphonique - Ce guide explique les deux concepts que Vonage associe à un appel, un segment et une conversation.