Page 1 of 1

Disconnect event not triggering web page

Posted: Thu Nov 20, 2008 10:08 pm
by fkuhne
I have the following vxml script. (I edited our actual domain name for security) When the call is disconnected DisconnectPage.aspx is never hit even though we have a connection.disconnect catcher in the vxml script. A call log is attached beneath the script. We do get a max disconnect count exceeded message.

I look forward to any suggestions you can offer.

Code: Select all

<?xml version="1.0"?>
<vxml version="2.1">
  <property name="inputmodes" value="dtmf" />
  <property name="interdigittimeout" value="3s" />
  <catch event="noinput">
    <prompt>
      <voice name="crystal">
        <break size="medium" />I am sorry, I  have not detected any input from you.</voice>
    </prompt>
    <reprompt />
  </catch>
  <catch event="noinput" count="3">
    <prompt>
      <voice name="crystal">
        <break size="medium" />I am sorry, I  have not  detected any input from you. Goodbye</voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/errorpage.aspx" method="post" />
  </catch>
  <catch event="nomatch">
    <prompt>
      <voice name="crystal">
        <break size="medium" />I did not understand your input</voice>
    </prompt>
    <reprompt />
  </catch>
  <catch event="nomatch" count="3">
    <prompt>
      <voice name="crystal">
        <break size="medium" />I did not understand your input. Goodbye</voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/errorpage.aspx" method="post" />
  </catch>
  <catch event="connection.disconnect">
    <prompt>
      <voice name="crystal">
        <break size="medium" />
      </voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/DisconnectPage.aspx" method="post" />
  </catch>
  <catch event="error.semantic">
    <prompt>
      <voice name="crystal">
        <break size="medium" />Error Semantic </voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/errorpage.aspx" method="post" />
  </catch>
  <catch event="error.badfetch">
    <prompt>
      <voice name="crystal">
        <break size="medium" />Error Bad Fetch</voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/errorpage.aspx" method="post" />
  </catch>
  <form id="welcomeform">
    <block>
      <prompt>
        <voice name="crystal">
          <break size="medium" />Welcome to the Staff Automated Interaction System.</voice>
      </prompt>
      <goto next="#prompt_ssn_number" />
    </block>
  </form>
  <var name="ssn_number" />
  <var name="dobset" />
  <var name="submitcount" expr="1" />
  <var name="namelistdob" />
  <form id="prompt_ssn_number">
    <field name="MyField" type="digits?length=9">
      <prompt>
        <voice name="crystal">
          <break size="medium" />Please key in your social security number now</voice>
      </prompt>
      <filled>
        <assign name="document.ssn_number" expr="MyField" />
        <goto next="#confirm_ssn_number" />
      </filled>
    </field>
  </form>
  <form id="confirm_ssn_number">
    <block>
      <prompt>
        <voice name="crystal">
          <break size="medium" />The Number you entered is<break size="medium" /><say-as type="acronym"><value expr="ssn_number" /></say-as></voice>
      </prompt>
    </block>
    <field name="ssn">
      <grammar>1|2</grammar>
      <prompt>
        <voice name="crystal">
          <break size="medium" />Press 1 if this is correct?<break size="medium" />Press  2  to Re enter</voice>
      </prompt>
    </field>
    <filled>
      <if cond="ssn=='1'">
        <goto next="#prompt_dob" />
        <elseif cond="ssn=='2'" />
        <goto next="#prompt_ssn_number" />
      </if>
    </filled>
  </form>
  <form id="prompt_dob">
    <field name="dob" type="date">
      <prompt>
        <voice name="crystal">
          <break size="medium" />Please Key in, your four digit year, two digit month and two digit day of birth.</voice>
      </prompt>
      <filled>
        <assign name="document.dobset" expr="dob.substr(4,2) + '/' + dob.substr(6,2) + '/' + dob.substr(0,4)" />
        <assign name="namelistdob" expr="dob" />
        <goto next="#confirm_dob" />
      </filled>
    </field>
  </form>
  <form id="confirm_dob">
    <block>
      <prompt>
        <voice name="crystal">
          <break size="medium" />The Date of Birth you entered is <break size="medium" /><say-as type="date"><value expr="dobset" /></say-as></voice>
      </prompt>
    </block>
    <field name="dobcheck">
      <grammar>1|2</grammar>
      <prompt>
        <voice name="crystal">
          <break size="medium" />Press 1 if this is Correct?<break size="medium" />Press  2  to Re Enter</voice>
      </prompt>
      <filled>
        <if cond="dobcheck=='1'">
          <submit namelist="ssn_number  namelistdob submitcount  session.id" next="http://domain.com/AuthenticationPage.aspx" method="post" />
          <elseif cond="dobcheck=='2'" />
          <goto next="#prompt_dob" />
        </if>
      </filled>
    </field>
  </form>
</vxml>


Thu 20 Nov 2008 10:01:09 PM EST:
Call Start Event: ANII 5185336754 DNIS 9351 VURL http://domain.com/default.aspx
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://domain.com/default.aspx)
Cache Miss: http://domain.com/default.aspx
Attempting to fetch http://domain.com/default.aspx
Click here to view saved VoiceXML script
DocumentParser::FetchDocument(http://domain.com/WelcomePage.aspx)
Posted form data is URL encoded
Attempting to fetch http://domain.com/WelcomePage.aspx
Click here to view saved VoiceXML script
Loading Builtin grammar: builtin:dtmf/digits?length=9
GrammarManager::CreateGrammarFromString():
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|2
</grammar>
---------
Loading Builtin grammar: builtin:dtmf/date
GrammarManager::CreateGrammarFromString():
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|2
</grammar>
---------
Loading Builtin grammar: builtin:dtmf/digits?length=9
GrammarManager::CreateGrammarFromString():
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|2
</grammar>
---------
Loading Builtin grammar: builtin:dtmf/date
GrammarManager::CreateGrammarFromString():
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|2
</grammar>
---------
VXI::var_element(name="ssn_number" expr = "")
VXI::var_element(name="dobset" expr = "")
VXI::var_element(name="submitcount" expr = "1")
VXI::var_element(name="namelistdob" expr = "")
VXI::var_element(name="ssn_number" expr = "")
VXI::var_element(name="dobset" expr = "")
VXI::var_element(name="submitcount" expr = "1")
VXI::var_element(name="namelistdob" expr = "")
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="crystal"><speak><break size="medium"/> Welcome to the Staff Automated Interaction System.</speak></voice></speak>
---------
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="crystal"><speak><break size="medium"/> Please key in your social security number now</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'prompt_ssn_number' formitem = 'MyField'

Thu 20 Nov 2008 10:01:10 PM EST:
VXI::do_recognition()
PromptManager::Play()
Newly queued prompts are now being played

Thu 20 Nov 2008 10:01:17 PM EST:
dtmf input: 188579878
Found grammar match
hypothesis #0: 188579878 (0.9990)
VXI::assign_element(name="document.ssn_number" expr = "MyField")
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="crystal"><speak><break size="medium"/> The Number you entered is<break size="medium"/><say-as type="acronym"> 188579878</say-as></speak></voice></speak>
---------

Thu 20 Nov 2008 10:01:18 PM EST:
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="crystal"><speak><break size="medium"/> Press 1 if this is correct?<break size="medium"/> Press 2 to Re enter</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'confirm_ssn_number' formitem = 'ssn'
VXI::do_recognition()
PromptManager::Play()
Newly queued prompts are now being played

Thu 20 Nov 2008 10:01:23 PM EST:
dtmf input: 1
Found grammar match
hypothesis #0: 1 (0.9990)
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice name="crystal"><speak><break size="medium"/> Please Key in, your four digit year, two digit month and two digit day of birth.</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'prompt_dob' formitem = 'dob'
VXI::do_recognition()
PromptManager::Play()
Newly queued prompts are now being played

Thu 20 Nov 2008 10:01:27 PM EST:
received event: connection.disconnect.hangup:
Disconnect
Disconnecting On Channel 0
Beginning of new thread - 2811812784
New session ID 000005;000;1227236487 for Channel 0
plumvp::ChannelThread: Channel 0: Enabling Call 442
plumvp::ChannelThread: About to call VXIplatformWaitForCall
Waiting For Calls on Channel 0
Can not queue audio -- line disconnected
received event: connection.disconnect.hangup:
Max Disconnect Count Exceeded
Call End Event
Ending session
Ending Session On Channel 0

IVR code fix for disconnect events

Posted: Fri Nov 21, 2008 10:54 am
by support
Hi,

From your IVR code, we noticed this:

Code: Select all

  <catch event="connection.disconnect">
    <prompt>
      <voice name="crystal">
        <break size="medium" />
      </voice>
    </prompt>
    <submit namelist="session.id" next="http://domain.com/DisconnectPage.aspx" method="post" />
  </catch> 
For disconnect events, avoid putting <prompt>s in your catch handler, as this will cause this IVR error:

Can not queue audio -- line disconnected
received event: connection.disconnect.hangup:
Max Disconnect Count Exceeded

We recommend that you change your catch event to just this:

Code: Select all

<catch event="connection.disconnect">
    <submit namelist="session.id" next="http://domain.com/DisconnectPage.aspx" method="post" />
</catch>
Regards,
Plum Support

Posted: Fri Nov 21, 2008 6:31 pm
by fkuhne
That worked. Thank you.