Transferencia de llamadas
La transferencia de llamada traslada una línea activa a un nuevo contexto de conversación. En las llamadas de retorno del cliente, callId se mantiene estable mientras que conversationId cambios.
Entre los casos de uso más habituales se incluyen el enrutamiento en centros de atención al cliente y el traspaso de llamadas del sistema de respuesta interactiva (IVR) a los agentes.
Evento de transferencia de cliente — onCallTransfer
Copia
client.on('callTransfer', (callId, newConversationId) => {
console.log(
`Call ${callId} was transferred to a new conversation ${newConversationId}`
);
});
Copia
client.setCallTransferListener { call, conversationId ->
println("Received Call Transfer for call: $call into the conversation: $conversationId")
}
Copia
client.setCallTransferListener((call, conversationId) -> {
System.out.println("Call " + call + " was transferred to conversation " + conversationId);
return null;
});
Copia
class CallTransferExampleDelegate: NSObject, VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveCallTransferForCall callId: VGCallId, withConversationId conversationId: VGConversationId) {
print("call: \(callId) has been transferred to conversation: \(conversationId)")
}
func voiceClient(_ client: VGVoiceClient, didReceiveHangupForCall callId: VGCallId, withQuality callQuality: VGRTCQuality, reason: VGHangupReason) {}
func voiceClient(_ client: VGVoiceClient, didReceiveInviteForCall callId: VGCallId, from caller: String, with type: VGVoiceChannelType) {}
func voiceClient(_ client: VGVoiceClient, didReceiveInviteCancelForCall callId: VGCallId, with reason: VGVoiceInviteCancelReason) {}
func client(_ client: VGBaseClient, didReceiveSessionErrorWith reason: VGSessionErrorReason) {}
}
Copia
- (void)voiceClient:(VGVoiceClient *)client didReceiveCallTransferForCall:(VGCallId)callId withConversationId:(NSString *)conversationId {
NSLog(@"Call %@ has been transferred to conversation %@", callId, conversationId);
}
Expectativas del Estado
callId: sin cambiosconversationId: actualizado a la conversación de destino- sesión con los medios: continúa a lo largo del proceso de traspaso
Transferencia NCCO
El ejemplo que aparece a continuación ilustra la estructura NCCO requerida. Tu implementación concreta variará en función del lenguaje y el marco de trabajo que utilices en el backend.
Copia
const transferNcco = [
{
action: 'transfer',
conversation_id: 'CON-destination-conversation-id'
}
];
res.json(transferNcco);
Referencia: Procedimiento de transferencia de la NCCO