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

Dropped Calls During Key Entry

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
shogle
Posts: 1
Joined: Mon Apr 11, 2011 8:25 am

Dropped Calls During Key Entry

Post by shogle »

I have experienced numerous dropped calls during key entry in an IVR system currently in development. It seems to happen for a few different reasons: if there is any gap between pressing keys or if a key is not pressed long enough, as examples. I am not sure if there is something else we need to be doing to capture key entry better in our system. Below is a sample code snippet that drops frequently, where a login ID and password is entered for verification against our DB:

Code: Select all

 <form id="CompanyIDCaregiverIDPassword">
    <field name="CompanyIDCaregiverIDPassword_input" type="digits">
    <grammar root="ROOT" type="application/srgs+xml" mode="dtmf">
      <rule id="ROOT" scope="public">
        <one-of>
            <item repeat="0-255">
              <ruleref uri="#digit"/>
            </item>
          <item> "#" </item>
        </one-of>
      </rule>

      <rule id="digit" scope="public">
        <one-of>
          <item> 0 </item>
          <item> 1 </item>
          <item> 2 </item>
          <item> 3 </item>
          <item> 4 </item>
          <item> 5 </item>
          <item> 6 </item>
          <item> 7 </item>
          <item> 8 </item>
          <item> 9 </item>
          <item> "*" </item>
          <item> "#" </item>
        </one-of>
      </rule>
    </grammar>

      <prompt>
        Please enter your Company ID then press Star followed by the Caregiver ID then Star followed by your Password then Pound to Submit.
      </prompt>
      <filled>
      <if cond="CompanyIDCaregiverIDPassword_input.indexOf('#') != -1">
         <assign name="GCompanyIDCaregiverIDPassword_input" expr="CompanyIDCaregiverIDPassword_input"/>
         <assign name="Gschedule_phonenumber" expr = "session.telephone.ani" />

         <assign name="CompanyIDCaregiverIDPassword_input" expr="CompanyIDCaregiverIDPassword_input.toString().replace(/#/,'')"/>
            <prompt>
            </prompt>
      <else/>
           <prompt>
           You must press pound to submit.
           </prompt>
      </if> 
    </filled>      
     <noinput>
        Sorry, No Input received.
        <reprompt/>
      </noinput>
      <nomatch>
        Sorry, you entered Invalid Details.
        <reprompt/>
      </nomatch>
    </field>
Thanks for any insight.
- Steve

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

Re: Dropped Calls During Key Entry

Post by support »

Hi,

About this issue you are having with dropped calls during key entry, have you checked your call logs to see what is happening when digits are being input?

You can check your call logs by logging on to your hosting account and then clicking on "Call Logs". From there, you can click on "View Log" for your last call.

Once you're in your call log, you can see the behavior of the IVR when users are entering their digits.

What's most likely happening is that the IVR is throwing a <nomatch> during the gap periods that you described. If you would like to increase the time while the user is entering digits, you can use the "interdigittimeout" property within your code.

For example:

interdigittimeout.vxml

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0">
  <property name="termmaxdigits" value="true"/>
  <property name="interdigittimeout" value="3s"/>
  <form>
    <field name="myfield" type="digits?length=5">
      <prompt>
        Enter up to five ones or twos.
      </prompt>
      <filled>
        <prompt bargein="false">
          You entered <value expr="myfield"/>.
        </prompt>
      </filled>
      <nomatch>
        You did not enter enough ones or twos.
        <reprompt/>
      </nomatch>
      <noinput>
        You did not enter anything.
        <reprompt/>
      </noinput>
    </field>
  </form>
</vxml>
From this example, if the user enters 5 numbers, the behavior of the application immediately returns a response to the user. If the user entered less than 5 numbers of ones or twos, the application waits for 3 seconds from the "interdigittimeout" property and returns a <nomatch> after 3 seconds has passed with nothing inputted. If the user entered more than 5 numbers, the application returns just the first 5 digits that were entered by the user.

Please let us know if you need any additional help with your IVR code.

Regards,
Plum Support

Post Reply