Introduction
Ce document décrit le dépannage de TCD (Termination call detail) indique une durée incorrecte lorsque l'appel est abandonné dans la file d'attente.
Contribué par Mayur Vyas, ingénieur TAC Cisco.
Modifié Par Sahar Modares, Ingénieur TAC Cisco.
Problème
La table TCD indique une durée incorrecte lorsque l'appel est abandonné dans la file d'attente.
Ce problème a été détecté lorsque la table TCD a été utilisée à des fins de rapport. Le champ Durée de l'appel affiche des informations erronées dans le scénario d'abandon d'appel des unités de réponse vocale (VRU) dans la file d'attente.
p. ex. lorsque les appels arrivent dans Cisco Unified Customer Voice Portal (CVP) et sont abandonnés dans la file d'attente après 15 secondes par l'appelant.
Dans ce cas, il existe deux enregistrements dans TCD :
- Béquille de commutation dont la valeur est correcte de 15 secondes,
- La jambe VRU indique 36 secondes. (Ajoute un délai de 20 secondes).
Par conséquent, la branche VRU de ce scénario pour le calcul de la durée des appels dans la file d'attente n'est pas correcte.

Dans un flux d'appels normal, voici ce qui se produit :
- CVP a deux dialogues avec ICM, DLG#1 pour SIP leg et DLG#2 pour IVR-leg.
- Si l'appelant se déconnecte, la branche SIP est déconnectée et un CALL_STATE_EVENT avec eventId=DISCONNECT est défini sur ICM pour DLG#1.
- CVP envoie SIP BYE à la passerelle VXML pour l'IVR (déconnexion à distance).
- La passerelle VXML renvoie à l'application VXML avec l'événement phone.hangup.
- L'application VXML termine et appelle le retour de la sous-boîte de dialogue.
- La passerelle VXML appelle la soumission pour la boîte de dialogue principale vers CVP-IVR. Dans ce cas, il envoie SCRIPT_RESULT à CVP-IVR dans la requête GET/POST. Ceci est également utilisé pour libérer la licence CVP IVR.
- La passerelle IVR-VXML est une interface vxml/http, qui fonctionne dans req/resp, avec CVP-IVR agissant comme serveur et VXML Gateway agissant comme client.
- La passerelle VXML envoie SCRIPT_RESULT dans la requête GET/POST à CVP-IVR et la même chose est envoyée à ICM. Ceci est également utilisé pour libérer la licence CVP IVR.
- CVP envoie CALL_STATE_EVENT avec eventId=DISCONNECT est défini sur ICM pourDLG#2 (c'est-à-dire la branche IVR).
Dépannage
Étape 1. Vous avez créé HelloWorld personnalisé et recréé ce problème dans les travaux pratiques. La branche de commutateur affiche la durée du TCD 22 et la branche VRU indique la durée du TCD 50 secondes.
Béquille de commutation - DID=1577566
Leg VRU - DID=1577567
Les journaux PIM VRU montrent :
17:04:31:861 PG1B-pim1 Trace: PG->VRU:RUN_SCRIPT_REQ(175 bytes):DID=1577567 SendSeq#=1 InvID=1 ScriptID=GS,Server,V ScriptConfig= ANI=110026 CED= RCK=236 RCKDay=152008 RCKSeq#=1 CallGUID=5759758000010000000000213E6D137A.
22 secondes plus tard, CVP envoie un rapport d'événement déconnecté.
C'est là que l'appelant a abandonné l'appel dans la file d'attente. Donc, pour la jambe de commutateur nous voyons la durée 22.
17:04:53:106 PG1B-pim1 Trace: VRU->PG:EVENT_REPORT(22 bytes):DID=1577566 SendSeq#=3 EventCode=Disconnect(6) CauseCode=NormalComplete(1).
17:04:53:106 PG1B-pim1 Trace: ToRouter_CallEventReport:CALL_EVENT_REPORT RCID=5009 PID=5004 DID=1577566 DIDRelSeq#=2 LabelIndex=0 Event=6 DialogEnds=1 Cause=1.
22 + 10 = 32 secondes plus tard, PG envoie un message d'annulation au VRU pour mettre fin à la jambe VRU conformément au paramètre de Registre (DelayedScriptResponseTimeout). Cette clé de Registre apparaît dans l'image car aucun script d'exécution n'a été généré par CVP après la déconnexion de la branche VRU.
17:05:03:385 PG1B-pim1 Trace: PG->VRU:CANCEL(20 bytes):DID=1577567 SendSeq#=2 InvID=2 RequestID=1.
17:05:03:385 PG1B-pim1 Trace: ProcessDialogFail:DIALOG_FAIL RCID=5009 PID=5004 FailureType=2 NumOfEvents=1 DID=1577566 DIDRelSeqNo=1 ReasonCode=18.
17:05:03:385 PG1B-pim1 Trace: VRU->PG:DIALOGUE_FAILURE_CONF(20 bytes):DID=1577567 SendSeq#=2 InvID=1 ErrorCode=Operation Canceled (34).
17:05:03:385 PG1B-pim1 Trace: PG->VRU:RELEASE(16 bytes):DID=1577567 SendSeq#=3 Cause=0
Maintenant, après 22 + 10 + 18 = 50 secondes plus tard (ce qui est ~49 dans TCD), CVP envoie un rapport d'événement à ICM et c'est ce qui est montré dans TCD pour le segment VRU.
17:05:21:277 PG1B-pim1 Trace: VRU->PG:EVENT_REPORT(22 bytes):DID=1577567 SendSeq#=3 EventCode=Disconnect(6) CauseCode=NormalComplete(1). 17:05:21:277 PG1B-pim1 Trace: ToRouter_CallEventReport:CALL_EVENT_REPORT RCID=5009 PID=5004 DID=1577567 DIDRelSeq#=2 LabelIndex=0 Event=6 DialogEnds=1 Cause=1.
Étape 2. Sur la base de cette analyse, le problème semble se situer entre l'application VXML et la passerelle VXML ou VXML
passerelle et CVP/IVR
Voici l'écart qui est causé par la passerelle VXML pas envoyé GET/POST requis. avec SCRIPT_RESULT.
- CVP a deux dialogues avec ICM, DLG n° 1 pour SIP leg et DLG n° 2 pour IVR-leg
- L'appelant se déconnecte, la branche SIP est déconnectée et un CALL_STATE_EVENT avec eventId=DISCONNECT est défini sur ICM pourDLG#1
- CVP envoie SIP BYE à VXMLGW pour l'IVR (déconnexion à distance).
- VXMLGW n'envoie pas SCRIPT_RESULT et donc ICM expire après 10 ans et envoie ICM_RELEASE à CVP qui est reçu par CVP-IVR.
- À ce stade, CVP-IVR démarre le compteur (mentionné ci-dessous) et continue d'attendre la réponse de VXMLGW.
- Comme aucun SCRIPT_RESULT n'est reçu, le minuteur se déclenche dans CVP et IVR démarre le nettoyage de la session client que VXMLGW a créée pour cet appel.
- Une fois le compteur expiré, CVP envoie CALL_STATE_EVENT avec eventId=DISCONNECT est défini sur ICM pourDLG#2 (c'est-à-dire la branche IVR).
Timer est IVR.TimerTaskInterval. Ceci est dans ivr.properties.

Comparaison des journaux d'application 'HelloWorld' et 'CustomHelloWorld' et découverte du retour de Sous-dialogue à la boîte de dialogue principale après réception de l'événement phone.hangup.

Se connecte à HelloWorld.

Événement de retour

La passerelle VXML envoie un résultat d'appel après le retour de la sous-boîte de dialogue.
Jun 22 00:29:02.670: //1122350//HTTPC:/httpc_send_ev: event sent to HTTP Client:
Jun 22 00:29:02.670: method (GET), url (http://10.66.75.179:8000/cvp/VBServlet?MSG_TYPE=CALL_RESULT&CALL_ID=98A53E04561811E7A43AB167D81A2367&CALL_SEQ_NUM=2&ERROR_CODE=1)
Se connecte dans CustomHelloWorld non fonctionnel.

Pas de retour ici - l'état est exit.

Solution
Pour revenir à la boîte de dialogue principale, l'application doit être configurée avec Subdialogue = true.
- Ouvrez l'application dans CallStudio, cliquez avec le bouton droit de la souris et sélectionnez les propriétés. Modifiez votre application pour définir la sous-boîte de dialogue sur true et redéployez l'application.

- Vous pouvez également vérifier si la sous-boîte de dialogue est définie sur true ou false à partir du fichier settings.xml. Ce fichier se trouve sous le chemin d'accès : C:\Cisco\CVP\VXMLServer\applications\<your application>\data\application
