To set the stage, we are on CVP 10.0 in an all SIP environment (with CUBE), CVP and ICM only (no UCM).
I have a need to develop a calling card application CVP VXML application that does the following:
1. Take in customer's card # and calculate the amount of time they could be on an outbound call
2. Take in the destination number from the customer
3. Bridge transfer to the destination number
4. Allow the customer to hit ## (or some other key sequence like long pound) to return to the IVR and make a new call without re-entering card information
5. If they stay on the outbound bridged call and get to the point where they have 2 minutes left and haven't hit pound to return to the IVR, play an audio message to the bridged call indicating as such (note, when the outbound call starts we know how long they can be on it, so we don't necessarily have to monitor the call as much as wake up and play the message at the right time)
Everything for steps 1-4 seems pretty straightforward to me using the built-in CVP elements including the Transfer element (bridged with the long pound option enabled). It's step 5 that that has us stumped on how to accomplish this. I'm hoping for some suggestions on how to do it in CVP or, if necessary, do something on the gateway itself. We just have to be sure whatever we do on the gateway, we can get back to the IVR and not lose state there. Has anyone ever attempted something similar or have any guidance?
Thanks in advance for any suggestions!
You can use the cisco-longpound proprietary attribute on the VoiceXML transfer element to allow the caller to end the transfer but as it's not something that's exposed in the Call Studio out-the-box transfer element settings you'd have to use custom VoiceXML or a custom transfer element to perform the transfer.
Interrupting and injecting a message into an active transfer is possible but it is complicated and unfortunately not possible using VoiceXML. It would require custom VoiceXML (or custom element) that performs handoff to a TCL application to broker the transfer. That approach has been used successfully before to provide enhanced transfer capability but I don't have a version that includes the specific functionality you need.
Thanks Paul. That's pretty much the conclusion we had come to, so I actually very much appreciate the confirmation that we're on the right path. Hopefully we'll be able to get it working!