I am trying to debug call studio application. I was able to do so after copying required jars and property files to AUDIUM_HOME and CATALINA_HOME. However, once the call reaches one of the decision states, I goes to the first decision only. Here, form accepts both voice and dtmf. When I deployed my application on server, Decision state working fine but here it going to wrong exit state.
Also, I put all my project related jars in common, but I found that when we debug this application, it deploys the project on AUDIUM_HOME and this folder contains jars as well. Do you think it might be causing an issue.
Please do comment and share your views.
Are you able to store the property and jar files under the application only, rather than manually copying them to the common directories? I find that helps prevent this type of error, and you can always move them later if you find you want to share jar files. Sometimes this won't work due to dependencies between jar files and whatnot, but is the safest way to start.
In your application, for example, you can store the jar and properties files as part of your Studio project. The jars go into the deploy/java/application/lib folder and classes or properties files into deploy/java/application/classes.
Thanks for taking your time and replying to my query. My IVR project has 2 dependent project, so every time I deploy my application on server, it automatically creates 3 jars and put them under java/application/lib. Though I already copied these jars under common/lib. So when it creates new jars, these might be conflicting with the one in common/lib.
I also checked logs and I can see that when I enter 12345678, it's taking it as default, hence condition is failing.
When I enter digits, ideally it should satisfy these condition
containsDigit = true;
Sep 26 2014 10:45:28 | [http-61958-Processor3] | DEBUG | Htz01060_AskMemberNumber_DS.doDecision: | Variable [callerResponse ] is [default]
Sep 26 2014 10:45:28 | [http-61958-Processor3] | DEBUG | Htz01060_AskMemberNumber_DS.doDecision: | Variable [exitResult] is [holdon]
If you have the same jar file name under vxmlserver/common and in the
application's java/application/lib folders then the class files in the
vxmlserver/common are ALWAYS used by VxmlServer (or studio debugger).
Correction, if the same java CLASS is found under vxmlserver/common and
applicationName/java then the one under COMMON is the one used by both
vxmlserver and studio debugger.
Are you trying to determine if the caller's entry contains a digit?
Or contains only digits?
Note that you can't test # using the debugger, so the only other entry
in the value returned from a dtmf keypad would be *
After you enter some dtmf entry in the studio debugger, you can look in
the top-left pane and select the Form element that collects the input,
and then in the top-right pane, you can see all the the Element Data and
their values. So, you'll be able to see whether the problem is in your
Decision code, or in the entry.
You can put in a few System.out.println statements - they'll display in
the bottom-left Debugger pane.
Remove them before going into production though.
If it works on the vxml gateway, but doesn't work when you use the
debugger, then it could be because there are definitely a few
differences in the behavior of the debugger's simulated voice browser
and the cisco vxml gateway's voice browser.
You say that you have a speech recognizer. It's probably returning
something different from what you're entering into the debugger.
What are the Voice and DTMF Grammars (or Keywords and Keypresses) being
used in the Settings tab of the Form element? Perhaps post a snapshot.
Also, post a snapshot of what's inside the Decision Element.
No, that doesn't really help. I would guess that since the Debugger
doesn't interact with the nuance server, it can't really simulate the
results returned from Nuance. If you know what Nuance returns to
VxmlServer, you could right-click the Form element in Studio and select
"Skip And > Exit as done" - this lets you comment out the Form element.
At this point it temporarily turns into just a Data tab, where you can
simulate the variables that VXML Server would create based on the values
returned by the Nuance server. This would at least let you use the
Debugger to test the remainder of your app.
Thanks for the reply. You were right, response returned from Nuance server is different from the one returned from Debugger. I am trying to catch reco option of form in a decision class, but every time debugger returning caller response as 'default' regardless of what user says.
We are not using default Cisco Form, we are using our custom form element. Looks like debugger is not supporting it properly.