I have a VXML application in which I am using java classes to check updates from the UCCE for multiple events. I need this application to play asynchronously so I can play another VXML application which has queue prompts. This is how the scenario will work.
Asynchronous VXML Application A (continuous to loop and check for updates) > calls or triggers second application VXML Application B (contains multiple prompts) while application A is still in progress.
The prompts should continue to play in order and when the prompt end and the application that is awaiting updates should trigger the prompt application again.
In ccx scripts we had the functionality to trigger second application asynchronously as shown in example below.
The below example continuous to loop asynchronously and check for updates but plays prompt from second application.
Can this be done with CVP VXML scripts? If yes, which element should i use to do this job.
If I understand the requirement correctly then you might want to try this custom element. It allows you to detect a response asynchronously from a back-end web server while playing something to the caller and optionally detecting caller DTMF input.
Just use the custom Java element as normal, load the TCL onto the gateway and create a new service "service cvp_httpreq flash:cvp_httpreq.tcl".
As it's currently coded, the client-side TCL expects to receive plain text HTTP response containing either "null" or a semi-colon delimited string of key:value pairs. If it receives null, the HTTP request is reissued. Otherwise it returns back to VoiceXML and the key:value pairs are written to element data.
A DTMF input pattern can be matched while waiting but something that doesn’t work right now is the caller input initial digit timeout.
Normal custom element caveats apply -- not part of the CVP product and not TAC supported.
(If interested, follow @tindallpaul for notifications of anything new coming off the workbench)