Question

An agent (app a) will transfer a call to our vxml app (app b), The requirement is for the same agent to be able to enter a number in our vxml app (app b) .

Then from our vxml app (app b) we need to transfer the call to another external app (app c) and get this call back when there is a disconnect (a blind transfer can do that).

However we have been also told that on the external app (app c) the agent needs to drop at a certain point and allow to their customer to interact with it.

I am not sure if this is possible because I guess at this point we will loose call control and this will will return back to our vxlml app (app b) .? (How can this be done maybe use a conference and if yes where ?) I am not sure as well how can they prevent the customer from not he aring the agent interaction up to this point... Please note we don't have control over app a and app c but we can recommend how they have to be build or behave.

Was it helpful?

Solution

VXML by itself does not handle much with call control. That is why the W3C Voice Browser Working Group came up with Call Control XML (CCXML), which dovetails nicely with VXML. Most modern VXML platforms support CCXML, and if yours does I would take advantage of it. What you are attempting to do is not trivial and will take a lot of coordination between all parties.

A blind transfer will not give control back to your application when the far agent disconnects. A blind transfer does not even ensure that the transfer completes. It just transfers the call and hangs up before the transfer is completed. To get the call back you will have to conference the IVR Application B in with the call, which means your IVR will by tying up a port the whole time that the customer is in App C.

For the transfer form App A to App B the agent will need to put the caller on hold, conference in IVR B, enter the digits using DTMF, conference in the caller, and then remove them self from the conference. Another method to do this would be to use computer-telephony-integration (CTI).

With CTI your application would have a pool of DNIS's to use. Agent A would use an application that lets the agent put in a number into a GUI that requests a transfer, this sends a request to the CTI portion on your system that stores the number and tells the agent/application which DNIS to use. The caller is transferred to the DNIS and when the call comes in on your side the CTI maps the DNIS to the number and gives it up to the VXML application to use.

CTI can also be used to put the caller into a certain place in your VXML application when they return from App C. This way IVR B does not have to listen in on the call for leg C. The caller would just be transferred back to IVR B and the data in the CTI would indicate to the VXML application where to start the caller off.

If you not very familiar with these concepts there are numerous good vendors out there that have a lot of this integration experience that could come up with a solution based on more detailed requirements.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top