<menu> and <catch> elements

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

  • Author
  • Message
Offline

support

  • Posts: 3319
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostFri Oct 06, 2017 2:43 pm

Hello,

That error indicates that you have an <audio> tag without the required attributes (src, expr or stream). In order for an audio tag to function you have to specify the URL for that audio. Typically this would either be a src (statically defined URL) attribute or an expr attribute (dynamically defined URL). If you are just using Text-to-Speech only you should not be providing an <audio> tag. For example the following will throw a run-time error:
Code: Select all
<?xml version="1.0"?>
<vxml version="2.1">
   <form>
      <block>
         <prompt>
            <audio>This is some text-to-speech.</audio>
         <prompt>
      </block>
   </form>
</vxml>


While this code will run without issue:
Code: Select all
<?xml version="1.0"?>
<vxml version="2.1">
   <form>
      <block>
         <prompt>
            This is some text-to-speech.
         <prompt>
      </block>
   </form>
</vxml>


Regards,
Plum Support
Offline

averlan

  • Posts: 13
  • Joined: Thu Sep 21, 2017 9:24 pm

Re: <menu> and <catch> elements

PostMon Oct 09, 2017 3:43 pm

Hi,

Thanks for your explanation, but I don't see any <audio> tags without the required attributes (src, expr or stream). Also, I used the "validate" button in Application Configuration and it didn't return any error for the URL below. Do you mind to take a look at the URL below and let me know which line number I should change? Thanks

http://63.88.109.202/DebugIVRSessionsLo ... 6778/8.xml
Offline

support

  • Posts: 3319
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostMon Oct 09, 2017 4:06 pm

Hello,

There are three sections in your code where you have an <audio> tag with no attributes, one such example is:
Code: Select all
<form id="PresentPastDueBalance">
    <block>
        <audio maxage="0" src = "audio\QQQ\F_E_PastDueBalance.wav">
            <sentence>Your account currently has a past due balance in the amount of</sentence>
        </audio>
        <audio><say-as interpret-as="currency">$50.00</say-as></audio>
        <goto next ="#PresentLastPayment" />
    </block>
</form>

The second <audio> tag does not contain any attributes. The sole purpose of the audio tag is to reference an external audio file, if that file is not available then the contents of the <audio> tag will be played as text-to-speech. However, in this case since you are only using text-to-speech the <audio> tag is not appropriate. Instead you should be using the <prompt> tag which is required in order to use the <say-as> tag. For example your code should look like this:
Code: Select all
<form id="PresentPastDueBalance">
    <block>
        <audio maxage="0" src = "audio\QQQ\F_E_PastDueBalance.wav">
            <sentence>Your account currently has a past due balance in the amount of</sentence>
        </audio>
        <prompt><say-as interpret-as="currency">$50.00</say-as></prompt>
        <goto next ="#PresentLastPayment" />
    </block>
</form>

As we mentioned previously there are three sections in that link that follow this similar pattern of using an <audio> tag with no attributes for text-to-speech when a <prompt> tag should be used instead. You will need to correct all three sections for this application to execute correctly.

Regards,
Plum Support
Offline

averlan

  • Posts: 13
  • Joined: Thu Sep 21, 2017 9:24 pm

Re: <menu> and <catch> elements

PostTue Oct 10, 2017 3:38 pm

Thanks again, I was able to fixed it. One more question...I've noticed that the log entry shows full credit card number (please check below). Since we must be in compliance with PCI Security Council standards, we should not allow any sensitive data to be stored in the logs. We used <voxeo:logcontrol mode="disable"/> for this purposes, but I had to remove it because I was getting an error for this tag. Is there any solution you can offer us?

Log:
dtmf input: 4111111111111111
Found grammar match
hypothesis #0: 4111111111111111 (0.9990)
VXI::assign_element(name="application.fldCreditCardNumber" expr = "CreditCardNumber")
Offline

support

  • Posts: 3319
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostTue Oct 10, 2017 3:45 pm

Hello,

Yes we offer a similar approach using the <property> tag in VoiceXML. Here is the link to our documentation on the topic: http://www.plumvoice.com/docs/dev/voicexml:properties:logging. Essentially you will need to set a <property name="logging" value="private"/> at any scope where the data needs to be kept private.

Regards,
Plum Support
Offline

averlan

  • Posts: 13
  • Joined: Thu Sep 21, 2017 9:24 pm

Re: <menu> and <catch> elements

PostTue Oct 17, 2017 2:48 pm

Hi,

We found another issue, it looks like our application stopped logging [session.id] and [session.telephone.ani] values.
We use <var name = "fldSession" expr = "session.id" /> in global.vxml file. Can you please help to resolve this issue. Thanks
Offline

support

  • Posts: 3319
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostWed Oct 18, 2017 8:48 am

Hello,

Could you provide us with a bit more context for this? It would be helpful to have some sample code as well as the expected / experienced results? It is difficult to determine the issue without these additional details.

Regards,
Plum Support
Offline

averlan

  • Posts: 13
  • Joined: Thu Sep 21, 2017 9:24 pm

Re: <menu> and <catch> elements

PostWed Oct 18, 2017 12:13 pm

We are getting the error below "Failed to find any SessionID info" in the log file. Thanks

IVR web.config
Code: Select all
<appSettings>   
    <add key="CallerIDPath" value="session.telephone.ani"/>
    <add key="SessionIDPath" value="session.id"/>
<appSettings>


Code: Select all
 
if (!string.IsNullOrEmpty(HttpContext.Current.Request[sessionIDPath]))
            {
                sessionID = HttpContext.Current.Request[sessionIDPath];

                if (log.IsDebugEnabled)
                {
                    log.Debug(string.Format("Setting sessionID based on [{0}]", sessionIDPath));
                }
            }

            if (log.IsInfoEnabled & string.IsNullOrEmpty(SessionID))
            {
                log.Info("Failed to find any SessionID info.");
            }
Offline

averlan

  • Posts: 13
  • Joined: Thu Sep 21, 2017 9:24 pm

Re: <menu> and <catch> elements

PostFri Oct 20, 2017 2:54 pm

Any thoughts? Your assistance will be very much appreciated.
Offline

support

  • Posts: 3319
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostFri Oct 20, 2017 4:01 pm

Hi,

We're not certain what you're actively configuring when you say "IVR web.config". The code snippets you provided do not run on the Plum IVR system.

We reviewed a couple call logs and we do see you gettings the session IDs via the session.id. We also see you sending that information via a GET variable:
Code: Select all
http://[IP]/MainIntro.aspx?Payee=QQQ&fldSession=000025%3B006%3B1508263930&languageChoice=1&selectedLanguage=English
http://[IP]/MainIntro.aspx?Payee=QQQ&fldSession=000025%3B010%3B1508263315&languageChoice=1&selectedLanguage=English
http://[IP]/MainIntro.aspx?Payee=QQQ&fldSession=000025%3B001%3B1508265529&languageChoice=1&selectedLanguage=English

Each of these session IDs correlate to calls that we see in your session logs:
Code: Select all
[17/Oct/2017:14:14:17 -0500] [DNIS] 000025;006;1508263930
[17/Oct/2017:14:35:34 -0500] [DNIS] 000025;010;1508263315
[17/Oct/2017:14:39:37 -0500] [DNIS] 000025;001;1508265529

Regards,
Plum Support
Previous

Return to Plum DEV Q&A

Who is online

Users browsing this forum: No registered users and 1 guest

cron