cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4390
Views
10
Helpful
5
Replies

Understanding the output of "debug voice application vxml"

Ayodeji Okanlawon
VIP Alumni
VIP Alumni

All,

I am new to UCCE/CVP deployment. I am trying to find my way around this huge solution. One of the thing I am looking to understand is the output generated on the vxml gateway by the debug voice application vxml. I do understand a bit of it, but I had like anyone out here to help me grasp the vxml pages and what they actually do.

I have attached a log here of an output from a test call I did and I will be delighted if anyone can spare some time to shed some lights on interpreting the vxml pages etc. I understand the call flow and how ICM returns a label to the CVP and then CVP to the vxml gateway to kick-start the bootstrap.vxml file. I am just desperate to know what the vxml interaction between the vxml gateway and the vxml server..

HELP!!!

Please find attached the logs in question.

Thank you

Please rate all useful posts
2 Accepted Solutions

Accepted Solutions

Chintan Gajjar
Level 8
Level 8

Hello Ayodeji,

The "debug voice application vxml" gives only comprehensive output on VXML events processed by VXML gateway, it does not show the actual VXML pages exchanged by VXML gateway.

i guess you can try "debug vxml application" and  "debug http client" to get the actual VXML pages being executed by the gateway.

Below are some of the key events being seen in your output:


--> VXML Gateway receives VRU label and runs the service bootstrap.vxml attached to dial-peer:

124494: Jul 4 10:55:04.731: //208878//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:bootstrap.vxml, Code = {
<?xml version="1.0" encoding="iso-8859-1"?>
<vxml version="2.0">

--> Next you will see the bootstrap.vxml extracting and setting below parameters, some of them like ANI,DNIS,CVP server IP address will be extracted from SIP invite:

124575: Jul 4 10:55:04.807: //208878/988A696E82B9/VXML:/vxml_nmtokens_proc:
name=MSG_TYPE
name=CALL_DNIS
name=CALL_ANI
name=ERROR_CODE
name=RECOVERY_VXML
name=CLIENT_TYPE
name=CALL_ID
name=CALL_LEGID
name=CALL_UUI
name=VERSION

--> Next as a very first thing, the IVR application will try to check if the CVP server is alive by sending PING message to the CVP servers IVR service(the same CVP from where the VRU label request came in).

124579: Jul 4 10:55:04.811: //208878//AFW_:/vapp_bgload: url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=77777777772063&CALL_ANI=44888853293&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&CALL_LEGID=&CALL_UUI=&VERSION=CVP_10_5_1_0_0_0_189


--> successful response for the ping message:


124619: Jul 4 10:55:05.919: //208878//HIFS:/hifs_http_cb: hifs http read succeeded. size=2264, url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=77777777772063&CALL_ANI=44888853293&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&CALL_LEGID=&CALL_UUI=&VERSION=CVP_10_5_1_0_0_0_189
124620: Jul 4 10:55:05.919: //208878//AFW_:/vapp_bgload_done: status=No Error


--> Next on successful ping, it will send HTTP new call request to the CVP servers IVR service.


124680: Jul 4 10:55:05.927: //208878/988A696E82B9/VXML:/vxml_vapp_bgload:
url http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0 cachable 1 fetchtimeout 7 maxage=-1 maxstale=-1

--> Success response for new call request:


124688: Jul 4 10:55:07.199: //208878//HIFS:/hifs_http_cb: hifs http read succeeded. size=9006, url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
124689: Jul 4 10:55:07.199: //208878//AFW_:/vapp_bgload_done: status=No Error


--> At this moment, your call in ICM script will pass from send to VRU node and based on what you set in ECC variables the CVP will pass the data into CALL_RESULT to the NEW_CALL request. and request VXML gateway to fetch further VXML page from VXML server or IVR service based on microapp configuration:

124754: Jul 4 10:55:07.207: //208878/988A696E82B9/VXML:/vxml_vapp_bgload:
url http://191.31.29.57:7000/CVP/Server?_dnis=517015186&application=TNT_T3_Main&callid=988A696E410C11E682B9188B9DCF6CA0&audiopath=TRAINING&ccstate=CLOSED&_ani=44888853293 cachable 1 fetchtimeout 0 maxage=-1 maxstale=-1


--> VXML gateway will try to fetch the VXML root doc for the application:

24781: Jul 4 10:55:07.283: //208878//AFW_:/vapp_bgload: url=http://191.31.29.57:7000/CVP/Server?audium_root=true&calling_into=TNT_T3_Main&session_id=191.31.29.57.1467629707169.34.TNT_T3_Main

l--> later the VXML gateway will try to fetch the VXML doc for application based on instruction on root doc:

URI(abs):http://191.31.29.57:7000/CVP/Server?_dnis=517015186&application=TNT_T3_Main&callid=988A696E410C11E682B9188B9DCF6CA0&audiopath=TRAINING&ccstate=CLOSED&_ani=44888853293

--> based on you VXML application, VXML gateway plays the audio to the caller:

124896: Jul 4 10:55:08.655: //208878/988A696E82B9/VXML:/vxml_audio_proc:
<audio>:
URI(abs):http://191.31.29.57/en-us/app/TRAINING/1001.wav
scheme=http
host=191.31.29.57
path=/en-us/app/TRAINING/1001.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
124897: Jul 4 10:55:08.655: //208878/988A696E82B9/VXML:/vxml_audio_proc:
<audio>:
URI(abs):http://191.31.29.57/en-us/app/TRAINING/1002.wav
scheme=http
host=191.31.29.57
path=/en-us/app/TRAINING/1002.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1

--> Later based on your VXML app,  CVP subdialog is being invoked to return the call back to ICM. The parameters like Caller_Input and From EXT VXML are set here.

125051: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_item_attrs_proc:
name=_in10157
<var>: namep=caller_input expr='OPEN'
125052: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_expr_eval:
125053: Jul 4 10:55:13.783: expr=var caller_input='OPEN'
125054: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_jse_global_switch:
switch to scope(anonymous)
<var>: namep=FromExtVXML3 expr='AN0_QA'
125055: Jul 4 10:55:13.787: //208878/988A696E82B9/VXML:/vxml_expr_eval:
125056: Jul 4 10:55:13.787: expr=var FromExtVXML3='AN0_QA'
<return>:


--> Next, VXML gateway once again uses new call message on source CVPs IVR service to pass control back to ICM, the call will come out of Run Ext Script node in ICM.

125067: Jul 4 10:55:13.787: //208878/988A696E82B9/VXML:/vxml_vxml_proc:
<vxml>
URI(abs):http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
scheme=http
host=191.31.29.57
port=8000
path=/cvp/VBServlet
query=MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
base=
URI(abs):http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
scheme=http
host=191.31.29.57
port=8000
path=/cvp/VBServlet
query=MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0 lang=none version=2.0
<subdialog>:

And lastly ICM chooses agent, CVP disconnects VRU leg and establishes the ringtone and agent leg.

If you are interested in what goes in VXML pages (various VXML tags), you can do the other debug which i mentioned earlier or perhaps wireshark on CVP and VXML server.

Regards,

Chintan 

View solution in original post

Well percentage of credit goes to people like you, who doesn't know Ayodeji his Excellent explanation given on UNDERSTANDING SIP TRACES.

Its people like you who inspires new engineers to come and start sharing the knowledge in community.

 

I have tried to put my comments on vxml debug in pdf doc since i don't want to stretch the thread with huge debugs.

let me know if you find it helpful or you want explanation on particular piece.

Regards

Chintan

View solution in original post

5 Replies 5

Chintan Gajjar
Level 8
Level 8

Hello Ayodeji,

The "debug voice application vxml" gives only comprehensive output on VXML events processed by VXML gateway, it does not show the actual VXML pages exchanged by VXML gateway.

i guess you can try "debug vxml application" and  "debug http client" to get the actual VXML pages being executed by the gateway.

Below are some of the key events being seen in your output:


--> VXML Gateway receives VRU label and runs the service bootstrap.vxml attached to dial-peer:

124494: Jul 4 10:55:04.731: //208878//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:bootstrap.vxml, Code = {
<?xml version="1.0" encoding="iso-8859-1"?>
<vxml version="2.0">

--> Next you will see the bootstrap.vxml extracting and setting below parameters, some of them like ANI,DNIS,CVP server IP address will be extracted from SIP invite:

124575: Jul 4 10:55:04.807: //208878/988A696E82B9/VXML:/vxml_nmtokens_proc:
name=MSG_TYPE
name=CALL_DNIS
name=CALL_ANI
name=ERROR_CODE
name=RECOVERY_VXML
name=CLIENT_TYPE
name=CALL_ID
name=CALL_LEGID
name=CALL_UUI
name=VERSION

--> Next as a very first thing, the IVR application will try to check if the CVP server is alive by sending PING message to the CVP servers IVR service(the same CVP from where the VRU label request came in).

124579: Jul 4 10:55:04.811: //208878//AFW_:/vapp_bgload: url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=77777777772063&CALL_ANI=44888853293&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&CALL_LEGID=&CALL_UUI=&VERSION=CVP_10_5_1_0_0_0_189


--> successful response for the ping message:


124619: Jul 4 10:55:05.919: //208878//HIFS:/hifs_http_cb: hifs http read succeeded. size=2264, url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=77777777772063&CALL_ANI=44888853293&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&CALL_LEGID=&CALL_UUI=&VERSION=CVP_10_5_1_0_0_0_189
124620: Jul 4 10:55:05.919: //208878//AFW_:/vapp_bgload_done: status=No Error


--> Next on successful ping, it will send HTTP new call request to the CVP servers IVR service.


124680: Jul 4 10:55:05.927: //208878/988A696E82B9/VXML:/vxml_vapp_bgload:
url http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0 cachable 1 fetchtimeout 7 maxage=-1 maxstale=-1

--> Success response for new call request:


124688: Jul 4 10:55:07.199: //208878//HIFS:/hifs_http_cb: hifs http read succeeded. size=9006, url=http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
124689: Jul 4 10:55:07.199: //208878//AFW_:/vapp_bgload_done: status=No Error


--> At this moment, your call in ICM script will pass from send to VRU node and based on what you set in ECC variables the CVP will pass the data into CALL_RESULT to the NEW_CALL request. and request VXML gateway to fetch further VXML page from VXML server or IVR service based on microapp configuration:

124754: Jul 4 10:55:07.207: //208878/988A696E82B9/VXML:/vxml_vapp_bgload:
url http://191.31.29.57:7000/CVP/Server?_dnis=517015186&application=TNT_T3_Main&callid=988A696E410C11E682B9188B9DCF6CA0&audiopath=TRAINING&ccstate=CLOSED&_ani=44888853293 cachable 1 fetchtimeout 0 maxage=-1 maxstale=-1


--> VXML gateway will try to fetch the VXML root doc for the application:

24781: Jul 4 10:55:07.283: //208878//AFW_:/vapp_bgload: url=http://191.31.29.57:7000/CVP/Server?audium_root=true&calling_into=TNT_T3_Main&session_id=191.31.29.57.1467629707169.34.TNT_T3_Main

l--> later the VXML gateway will try to fetch the VXML doc for application based on instruction on root doc:

URI(abs):http://191.31.29.57:7000/CVP/Server?_dnis=517015186&application=TNT_T3_Main&callid=988A696E410C11E682B9188B9DCF6CA0&audiopath=TRAINING&ccstate=CLOSED&_ani=44888853293

--> based on you VXML application, VXML gateway plays the audio to the caller:

124896: Jul 4 10:55:08.655: //208878/988A696E82B9/VXML:/vxml_audio_proc:
<audio>:
URI(abs):http://191.31.29.57/en-us/app/TRAINING/1001.wav
scheme=http
host=191.31.29.57
path=/en-us/app/TRAINING/1001.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
124897: Jul 4 10:55:08.655: //208878/988A696E82B9/VXML:/vxml_audio_proc:
<audio>:
URI(abs):http://191.31.29.57/en-us/app/TRAINING/1002.wav
scheme=http
host=191.31.29.57
path=/en-us/app/TRAINING/1002.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1

--> Later based on your VXML app,  CVP subdialog is being invoked to return the call back to ICM. The parameters like Caller_Input and From EXT VXML are set here.

125051: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_item_attrs_proc:
name=_in10157
<var>: namep=caller_input expr='OPEN'
125052: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_expr_eval:
125053: Jul 4 10:55:13.783: expr=var caller_input='OPEN'
125054: Jul 4 10:55:13.783: //208878/988A696E82B9/VXML:/vxml_jse_global_switch:
switch to scope(anonymous)
<var>: namep=FromExtVXML3 expr='AN0_QA'
125055: Jul 4 10:55:13.787: //208878/988A696E82B9/VXML:/vxml_expr_eval:
125056: Jul 4 10:55:13.787: expr=var FromExtVXML3='AN0_QA'
<return>:


--> Next, VXML gateway once again uses new call message on source CVPs IVR service to pass control back to ICM, the call will come out of Run Ext Script node in ICM.

125067: Jul 4 10:55:13.787: //208878/988A696E82B9/VXML:/vxml_vxml_proc:
<vxml>
URI(abs):http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
scheme=http
host=191.31.29.57
port=8000
path=/cvp/VBServlet
query=MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
base=
URI(abs):http://191.31.29.57:8000/cvp/VBServlet?MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0
scheme=http
host=191.31.29.57
port=8000
path=/cvp/VBServlet
query=MSG_TYPE=CALL_NEW&CALL_DNIS=77777777772063&CALL_UUI=&CALL_ANI=44888853293&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=988A696E410C11E682B9188B9DCF6CA0&ERROR_CODE=0 lang=none version=2.0
<subdialog>:

And lastly ICM chooses agent, CVP disconnects VRU leg and establishes the ringtone and agent leg.

If you are interested in what goes in VXML pages (various VXML tags), you can do the other debug which i mentioned earlier or perhaps wireshark on CVP and VXML server.

Regards,

Chintan 

Chintan,

People like you make this forum the single best place to come through on this planet for any technical questions such as this. Wao, thank you.

Would you be willing to analyse the debug for the other debugs you mentioned. debug vxml application and debug http client all

Attached..Thanks again.

Please rate all useful posts

Well percentage of credit goes to people like you, who doesn't know Ayodeji his Excellent explanation given on UNDERSTANDING SIP TRACES.

Its people like you who inspires new engineers to come and start sharing the knowledge in community.

 

I have tried to put my comments on vxml debug in pdf doc since i don't want to stretch the thread with huge debugs.

let me know if you find it helpful or you want explanation on particular piece.

Regards

Chintan

Chintan,

This is absolutely wonderful. Thank you. Would you be kind enough to have some sessions with me on ICM scripting and CVP call studio. I can send you a personal email for that, if you have time for that. I would love to get some ideas from you on those two areas.

Please rate all useful posts

Yes, sure.

Please send me out personal message, i am little busy this month but hopefully i would be able to find out some spare time for the session.

Regards,

Chintan