<menu> and <catch> elements

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

  • Author
  • Message
Offline

support

  • Posts: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostFri Oct 06, 2017 1: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: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostMon Oct 09, 2017 2: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: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostMon Oct 09, 2017 3: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: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostTue Oct 10, 2017 2: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: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostTue Oct 10, 2017 2: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: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostTue Oct 17, 2017 1: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: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostWed Oct 18, 2017 7: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: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostWed Oct 18, 2017 11:13 am

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: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostFri Oct 20, 2017 1:54 pm

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

support

  • Posts: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostFri Oct 20, 2017 3: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
Offline

averlan

  • Posts: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostTue Oct 24, 2017 11:13 am

Hi,

So this is basically,
Code: Select all
 HttpContext.Current.Request[session.id]
For some reason with Plum this returns an empty string or null. Do you know why it could be empty?
Offline

support

  • Posts: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostTue Oct 24, 2017 3:14 pm

Hi,

You would reference the session.id within the VMXL application. Outside of that, you would use whatever value you stored the session ID in, which appears to be fldSession based upon the sample URLs we found.

Regards,
Plum Support
Offline

averlan

  • Posts: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostWed Oct 25, 2017 9:44 am

Hi,

We do reference the session.id within the VMXL application
Code: Select all
<var name = "fldSession" expr = "session.id" />


Outside of that we want to log session id using HttpContext.Current.Request to get it. So far I've tried without any luck ....

Code: Select all
HttpContext.Current.Request[session.id]

Code: Select all
HttpContext.Current.Request[fldSession]

Code: Select all
HttpContext.Current.Request.QueryString[session.id]

Code: Select all
HttpContext.Current.Request.QueryString[fldSession]


For example, with Voxeo we use this code below to get it
Code: Select all
HttpContext.Current.Request[session.parentsessionid]


Please advise,
Thanks
Offline

support

  • Posts: 3367
  • Joined: Mon Jun 02, 2003 3:47 pm
  • Location: Boston, MA

Re: <menu> and <catch> elements

PostWed Oct 25, 2017 10:10 am

Hi,

Have you verified that you are sending the fldSession variable or have access to that variable (potentially via a session) to the script that is attempting to log the session ID? We would expect that fldSession would be correct if you are attempting to log this value within MainIntro.aspx.

Regards,
Plum Support
Offline

averlan

  • Posts: 22
  • Joined: Thu Sep 21, 2017 8:24 pm

Re: <menu> and <catch> elements

PostThu Oct 26, 2017 3:09 pm

Hello,

Please check below the information from our debugger about the raw request we are getting from you when call starts. We don't see any session id in there. Can you please let us know where we should look for it?

Code: Select all
payee=QQQ
ASP.NET_SessionId=hshrt2azyeugtovu2dpkjhpb
ALL_HTTP=HTTP_CACHE_CONTROL:max-age=0
HTTP_ACCEPT:*/*
HTTP_HOST:63.88.109.203
HTTP_USER_AGENT:PlumVoicePortal/3.2

ALL_RAW=Cache-Control: max-age=0
Accept: */*
Host: 63.88.109.203
User-Agent: PlumVoicePortal/3.2

APPL_MD_PATH=/LM/W3SVC/4/ROOT/Autoscribe.PayIVR
APPL_PHYSICAL_PATH=C:\source\PayIVR\Autoscribe.PayIVR\
AUTH_TYPE=
AUTH_USER=
AUTH_PASSWORD=
LOGON_USER=
REMOTE_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CONTENT_LENGTH=0
CONTENT_TYPE=
GATEWAY_INTERFACE=CGI/1.1
HTTPS=off
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
INSTANCE_ID=4
INSTANCE_META_PATH=/LM/W3SVC/4
LOCAL_ADDR=192.168.110.130
PATH_INFO=/Autoscribe.PayIVR/MainIntro.aspx
PATH_TRANSLATED=C:\source\PayIVR\Autoscribe.PayIVR\MainIntro.aspx
QUERY_STRING=payee=QQQ
REMOTE_ADDR=69.25.74.73
REMOTE_HOST=69.25.74.73
REMOTE_PORT=42666
REQUEST_METHOD=GET
SCRIPT_NAME=/Autoscribe.PayIVR/MainIntro.aspx
SERVER_NAME=63.88.109.203
SERVER_PORT=80
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=Microsoft-IIS/10.0
URL=/Autoscribe.PayIVR/MainIntro.aspx
HTTP_CACHE_CONTROL=max-age=0
HTTP_ACCEPT=*/*
HTTP_HOST=63.88.109.203
HTTP_USER_AGENT=PlumVoicePortal/3.2
PreviousNext

Return to Plum DEV Q&A

Who is online

Users browsing this forum: No registered users and 1 guest