We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Problems always catching connection.disconnect.hangup?

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
nathanl
Posts: 12
Joined: Wed Oct 15, 2003 8:32 pm
Contact:

Problems always catching connection.disconnect.hangup?

Post by nathanl »

Are there reasons why sometimes a catch event handler for connection.disconnect.hangup that is defined in a document referenced by the vxml application attribute won't always fire?

Towards the beginning of my application if I hang up, the event handler fires and all is well but if I answer a few questions, each in different forms
that are being dynamically generated by ASP.net, then it doesn't fire, even though in the call log I can see that the file is being loaded at the top of the page load.

The following are excerpts from the call log:
- Here while loading the page, it recognizes the handler.html in the application attribute and loads it:

Fri 12 Dec 2003 12:20:43 PM EST (000000;000;1071249175) [inet] EVENT: Attempting to fetch http://veve.iiserve.com/default.aspx
Fri 12 Dec 2003 12:20:43 PM EST (000000;000;1071249175) [vxi] EVENT: DocumentParser::FetchDocument(handler.html)
Fri 12 Dec 2003 12:20:43 PM EST (000000;000;1071249175) [inet] EVENT: Attempting to fetch http://veve.iiserve.com/handler.html

- And then a few lines later after I hung up is the following:

Fri 12 Dec 2003 12:20:44 PM EST (000000;000;1071249175) [prompt] EVENT: Newly queued prompts are now being played
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Line disconnect detected. Abandoning queued audio data.
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Can not queue audio -- line disconnected
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [vxi] EVENT: received event: connection.disconnect.hangup
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: impl->dxi->waitForPlayEOD() detected a disconnect. Abandoning queued data.
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Line disconnect detected. Abandoning queued audio data.
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Can not queue audio -- line disconnected
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [vxi] EVENT: Max Disconnect Count Exeeded
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: impl->dxi->waitForPlayEOD() detected a disconnect. Abandoning queued data.
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Line disconnect detected. Abandoning queued audio data.
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [client] EVENT: Call End Event
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Ending session
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [tel] EVENT: Ending Session On Channel 0

But the event handler doesn't fire as in the following case when I hang up earlier in the call.

EVENT: received event: connection.disconnect.hangup
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [prompt] EVENT: impl->dxi->waitForPlayEOD() detected a disconnect. Abandoning queued data.
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [prompt] EVENT: Line disconnect detected. Abandoning queued audio data.
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [vxi] EVENT: DocumentParser::FetchDocument(handler.aspx?action=hangup)
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [inet] EVENT: Attempting to fetch http://veve.iiserve.com/handler.aspx?action=hangup
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [vxi] EVENT: VXI::exit_element()
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [prompt] EVENT: impl->dxi->waitForPlayEOD() detected a disconnect. Abandoning queued data.
Fri 12 Dec 2003 12:29:04 PM EST (000000;000;1071249946) [prompt] EVENT: Line disconnect detected. Abandoning queued audio data.

Any ideas? Am I doing something wrong?

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR problem always catching connection.disconnect.hangup

Post by support »

If you look rather closely at the IVR logs from the first section you notice the following two lines:

Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [prompt] EVENT: Can not queue audio -- line disconnected
Fri 12 Dec 2003 12:20:49 PM EST (000000;000;1071249175) [vxi] EVENT: Max Disconnect Count Exceeded

The Plum Voice Platform has an infinite loop detection IVR system, and in this case you see it taking over. The IVR issue is that you have a disconnect handler, in that handler you are attempting to play audio, this intern throws a disconnect event, which then loops back into playing audio again. The IVR platform sees this infinite loop and refuses to go on, exiting out of the page.

You should look over your IVR code for any disconnect event handlers that do telephony access (ie - play, recognize, record, transfer). Any telephony access will rethrow the disconnect event and cause an infinite loop.

Hope this helps :)
Last edited by support on Thu Feb 25, 2010 5:35 pm, edited 2 times in total.

nathanl
Posts: 12
Joined: Wed Oct 15, 2003 8:32 pm
Contact:

Post by nathanl »

The disconnect handler referenced is always the same and it has no telephony access. Here is all that it has:
First the handler has the following:
<?xml version="1.0"?>
<vxml version="2.0">
<catch event="connection.disconnect.hangup">
<goto next="handler.aspx?action=hangup" />
</catch>

</vxml>

Then the handler.aspx returns the following:
<?xml version="1.0"?>
<vxml version="2.0">
<form>
<block>
<exit/>
</block>
</form>
</vxml>

Also from the log, you can see in the last one how it is retrieving the hangup.aspx from the goto, but the one before never gets to that stage,
it gets the "Max Disconnect Count Exceeded" error that you referenced.

Is it possible that it depends on how many queued audio tags are in the form that was processing when I hung up?

Post Reply