Created by: Fabien Damien on 06-11-2009 09:09:51 AM Hi all, In cvp, is it possible to Play a wait message while a webservice is fetching data from a backend database. thanks for your support
Subject: RE: Webservice Wait message Replied by: Janine Graves on 07-11-2009 07:26:35 PM Hi Fabien, You can set the VoiceXML Property named 'fetchaudio' to point to a URL of the message you'd like to play (eg, http://IP/audio/holdplease.wav) the gateway will play that audio until the next vxml page is returned from the vxml server. You should also set the VoiceXML property named fetchtimeout to some time value large enough for the web service to complete successfully. Otherwise the gateway will throw an error when its default fetchtimeout timer expires. All VoiceXML properties can be set in the Project Properties or in the voice element that immediately proceeds the web service element. Janine
Subject: RE: Webservice Wait message Replied by: Janine Graves on 07-11-2009 07:29:17 PM Typo, the last sentence of my previous post should have said this: All VoiceXML properties can be set in the Project Properties or in the voice element that immediately PRECEDES the web service element.
Subject: RE: Webservice Wait message Replied by: Fabien Damien on 07-11-2009 07:33:22 PM Hi Janine, thanks for your reply, i will try and let you know. cheers,
Subject: RE: Webservice Wait message Replied by: Fabien Damien on 09-11-2009 08:10:36 AM Hi Janine, i think configuring the audio element parameters does not solve my problem, because those are related to the audio element, not to the webservice element. the IVR won't pass to the next element until the audio element is completely executed so i see no relation between the two elements. your feedback is appreciated, regards,
Subject: RE: Webservice Wait message Replied by: Janine Graves on 09-11-2009 02:37:27 PM Hi Fabien, You are right, if you configure the audio prompt in an audio element, it will play to completion before the next audio. But,
I'm not suggesting that you do that. The VoiceXML Property named 'fetchaudio' is designed to be some hold music that the
voice gateway plays while it waits for the next VoiceXML page from the Vxml Server. So the gateway fetches, caches, and
plays the holdmusic to the caller, but in the meantime it makes the request to the Vxml Server for the next page. When it
gets the next page (which would be some audio after your web service element completes), it aborts the playing of the fetchaudio music immediately, and executes that next VXML page.
So, the call flow is this, 1) VxmlServer executes a voice element RIGHT BEFORE YOUR WEB SERVICE ELEMENT. For example, I like to create an Audio Element named 'HoldAMoment' that says something to the caller like 'please hold one moment while we look this up', or plays a 10ms silence to the caller. Also in this Audio element, at the bottom of the Settings tab, in the VoiceXML Properties section, enter two things: 'fetchaudio' as the name, and 'http://IPAddress/music.wav' as the value and then another VoiceXML Propeprty named 'fetchtimeout' and the value '30s' (or something big enough to allow your web service to complete)
2) This voice element sends a VXML page to the gateway.
3) The voiceXML gateway uses one of its procesess to play the 'hold a moment' and to start playing the 'fetchaudio' music.wav. It will play the fetchaudio music to completion or until it gets the next VXML Page, or until the fetchtimeout
timer expires.
3b)At the same time that the gateway is playing the audio it makes the http request to Vxml Server asking for the next Vxml
page.
4)Vxml Server then goes to your next element in the Studio app (your web service element) and executes it.
5)When Vxml Server finally executes a voice element (any element with a square shape on it - like Audio, Digits, Date, Time, etc), that's when the next VXML page is sent to the gateway, causing it to abort the fetchaudio holdmusic.wav prompt.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: