Anrufweiterleitung

Bei einer Anrufweiterleitung wird ein aktiver Anrufzweig in einen neuen Gesprächskontext verschoben. In Client-Callbacks, callId bleibt stabil, während conversationId Änderungen.

Zu den gängigen Anwendungsfällen gehören die Anrufweiterleitung in Kontaktzentren und die Weiterleitung von IVR-Anrufen an Mitarbeiter.

Ereignis „Client-Übertragung“ — onCallTransfer

client.on('callTransfer', (callId, newConversationId) => {
  console.log(
    `Call ${callId} was transferred to a new conversation ${newConversationId}`
  );
});
 client.setCallTransferListener { call, conversationId ->
     println("Received Call Transfer for call: $call  into the conversation: $conversationId")
 }
 client.setCallTransferListener((call, conversationId) -> {
     System.out.println("Call " + call + " was transferred to conversation " + conversationId);
     return null;
 });
 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) {}
 }
 - (void)voiceClient:(VGVoiceClient *)client didReceiveCallTransferForCall:(VGCallId)callId withConversationId:(NSString *)conversationId {
     NSLog(@"Call %@ has been transferred to conversation %@", callId, conversationId);
 }

Staatliche Erwartungen

  • callId: unverändert
  • conversationId: in die Zielkonversation aktualisiert
  • Mediensitzung: wird über den Übertragungsablauf fortgesetzt

Übertragung NCCO

Das folgende Beispiel veranschaulicht die erforderliche NCCO-Struktur. Die konkrete Umsetzung hängt von der von Ihnen verwendeten Backend-Sprache und dem verwendeten Framework ab.

const transferNcco = [
  {
    action: 'transfer',
    conversation_id: 'CON-destination-conversation-id'
  }
];

res.json(transferNcco);

Quelle: NCCO-Übertragungsmaßnahme