Janine Graves:
Can you turn on Vxml Debug logging and see whether the gateway is sending the hangup event to vxml server when it occurs? Or whether it's holding it until vxml server sends the next audio?
Hi Janine,
Thank you very much for your reply. VXML debug logs show that Gateway is not sending the hangup event to VXML server when caller hangs up while call flow is in Java. But looking at the logs I find that actually the VXML server does not send reply to a VXML request made from Gateway before hang up event occured, when it enters into the decision element with Java code at backend till the Java code ends(After 1 minute of wait). So in my opinion it is not the Gateway that is holding the hangup event rather it is VXML server that is not sending the response for a pending VXML request from Gateway when it enters into the Java code. Thus the Gateway does not send the hang up event till VXML server sends VXML response for the pending page request. Which occurs when the Java code completes. I have attached call flow and logs for three scenarios to make things more clear. They are explained below.
1) A normal call flow with only an audio element that ends normally when the audio prompt is complete.
2) A normal call flow with only an audio element that ends by catching the hot event when user hangs up before completing the audio.
3) A call flow with a decision element with Java code at backend. Audio prompt is being played as background music using fetchaudio property of audio element. Call does not end on hang up.
You can look from attached logs that in case 2 the call ended immediatley with hang up. But in case 3 although I hung up the call after 10 seconds the call remained there for complete 1 minute that is the wait time of Java code and activity logs will show you that the call was looping back into the Java code.
I do not know how to fix this, so any help from you will be very valuable.
Thanks