Author Message
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Hi,

I am trying to test "startVoiceXMLDialog" according to "SampleVoiceXMLDialog" from EDP 3.1.1 API.
EPD 3.1.1 , AMS 7.7 and System Manager 7 are installed. I can play any anouncements using Media Server without any issues. But I cannot test VoiceXML at all.

"SpeechFactory.createSpeechService().startVoiceXMLDialog" does not return any values and listener's "dialogEvent" function is never invoked. No errors or any other indications can be seem in logs. Everything stops before calling startVoiceXMLDialog.

What I am missing here? Does everyone else has this problem?

According to documentation, use of the VoiceXMLDialog portion of the API does not require the Real-Time Speech snap-in to be
installed. I just want to start a vxml dialog with recorded wavs without having ASR or TTS. Is that possible?

Kind Regards


BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
Does your call listener implement VoiceXMLDialogListener (possibly in addition to CallListener)? If not, this is likely your problem.

Thanks,
Bob
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Hi ,

Yes it does. My call listener implements VoiceXMLDialogDesigner.
The problem is that there is not any indication of failure or success. It is very strange.


Regards
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Also I can see that VoiceXMLDialogListener constructor is invoked and after that nothing happens.

BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
Do you have access to the AAMS console? If so, does that show the request coming into the media server?
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi, can you please try creating a different object that implements VoiceXMLDialogListener? Since the CallListener lifecycle is managed by the container, it's generally not a good idea to use that object for other interfaces. I'm not sure that this will make a difference with the problem that you're having, but please do give it a try.
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Hi ,

I have access to AMS and I cannot see any requests. I can successfuly use Media Factory to play announcements and collect digits without any issues. While using media I can see active sessions in Monitoring as I can also see requests to AMS using traceCE in edp.
But when I am using voiceXML I cannot see any active sessions or requests to AMS. Can you help me to find out what I am missing here? If the problem was in AMS I couldn't play any announcements or collect digits. So what is happening? What is the difference when trying to use VoiceXML? VoiceXML interpreters are enabled. I have read documentation over and over without find something for this issue. I have also created a different object that implements VoiceXMLDialogListener but result is the same.



Regards,
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Quick sanity check, have you looked at the logs for the platform (ce dlogv) and your snap-in (ce dlogv yourSnapinName) to see if there are any Exceptions or ERROR logs that might explain the problem?
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
I have updated EDP and AMS to latest releases and it seems that now I can use VoiceXML. So it seems that there was a problem with previous versions of edp, ams and services. Do you know how can I use wavs from AMS?
I am using paths like "cstore://filename?ns=namespace&cg=group" where ns = namespace and cg=content group but it is not working.
Do you know how can I play wavs from ams using vxml?

Regards,

BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
First, happy to hear things are working. Yes, you should be able to fetch from cstore using VoiceXML. What error are you getting?

Thanks,
Bob
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Vxml file is located under war/../webapp folder. If I put the wav in the same folder and write

<audio src = "wavFile.wav"/> in vxml , I can see in ams vxmliDebug log that is calling

Token[00]='[play,fast,0,,-1,-1] https://edp_security_module_ip/services/MyService/fileWav.wav'...

which I can hear it without any issues.

But when I am trying to use ams content store in vxml like below

<audio src = "cstore://wavFile?ns=myNamespace&cg=myCG"/>

then I am getting

The audio server play prefetch failed [Folder:(Prefetch:"[prefetch,safe,0,,-1,-1] https://edp_security_module_ip/services/MyService/cstore://fileWav?ns=myNamespace&cg=myCG"):URL does not exist]

which actually does not exist and so I am not hearing it.

How can I use vxml <audio src=""> element to play a wav from ams content store?

Regards,


BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
Sorry for the delay but I was researching the syntax. We have one suggestion:

builtin://mas/cstore/contentgrp/contentid?ns=namespace
BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
sorry, I was trying to add a tab and the message got posted. I have not had the opportunity to test this myself, so please let me know if you run into any issues.

Regards,
Bob
lefteris
Joined: Jan 16, 2014
Messages: 30
Offline
Thank you, it's working.
Do you know how can I return a value from VXML and catch it with doEvent of voiceXMLDialogListener?
<return namelist="myvar"/> it's for vxml subdialogs. But what if I want to return a vxml var in Java and do something with it?

Regards,
BobBraudes
Joined: Dec 19, 2013
Messages: 34
Offline
Here is a code snippet that may help:

public void dialogEvent(UUID requestId, Map<String, Object> names,
VoiceXMLDialogCause cause) {
logger.finest("dialogEvent ENTER, cause is " + cause
+ " request ID = " + requestId);

final Call call = VxmlCallData.getCallByRequestId(requestId);
...
if (names != null) {
logger.finest("names is not null");

final StringBuilder sb = new StringBuilder();
for (String key : names.keySet()) {
sb.append("\n\t" + key + " " + names.get(key));
}

String songName = sb.toString().replace("song%24.utterance ", "");
songName = songName
.replace("msml.dialog.exit msml.dialog.exit", "");

...
logger.info(";" + date + ";" + songName + ";" + call.getUCID()
+ ";" + count + ";" + requestId);
logger.finest("Publishing event");
sendEvent(songName + "," + call.getUCID());
} else {
logger.info("names is null");
}
... other stuff ...
}

Thanks,
Bob
Go to:   
Mobile view