We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

transfer events

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
jdee
Posts: 13
Joined: Fri Jul 14, 2006 5:47 am

transfer events

Post by jdee »

Hi, I have a specific logic problem, and I'm wondering if anyone can assist in helping me work through it.

My application transfers users to a call centre if they make an incorrect input.

If the user hangs up BEFORE they speak to a call centre worker, an email is sent to the call centre with the callers CLI so that a call centre can telephone the caller. This is done by capturing the hangup event.

The problem is, that once the caller has successfully spoken to a call centre worker and then hangs up, the application still sends the 'caller hungup before speaking to a worker' email.

It appears the hungup event fires even after a successful transfer.

Is there any event I can catch that can differentiate between a caller waiting for a transfer to be answered, and a transfer being answered?

Or is there another way to solve this problem?

Thanks in advance for any assistance.

adriannaude
Posts: 34
Joined: Mon Nov 07, 2005 11:27 am
Location: United Kingdom

Post by adriannaude »

You could try something like this:

Place a <catch> for the hangup as part of your <transfer>.
Test the value of the shadow variable name$.duration. If this is greater than zero then the transfer must have taken place. If it is zero then assume the transfer didn't complete and throw a new hangup event that can then be caugth by the global <catch>.

(I haven't tested this, but good luck!)

Adrian

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR engineers working on issue with acquiring name$.duration

Post by support »

There appears to be an IVR issue with acquiring name$.duration in the case of a near-end disconnect which would make the method described below (which is conceptually sound) difficult to use. We are currently investigating the possible cause for this IVR behavior and will post a reply here when a good workaround is found and when this IVR issue has been solved within the IVR platform. Thanks for you patience.
Last edited by support on Sat Feb 20, 2010 4:49 pm, edited 2 times in total.

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

workaround for IVR code

Post by support »

As a workaround, you can do the following with the <catch> tag in your IVR code:

Code: Select all

<var name="duration"/>
...
<catch event="connection.disconnect">
        <if cond="mytransfer == undefined || mytransfer$.duration == 0">
                <!-- The caller hung up after being connected -->
                <assign name="duration" expr="'nearenddisconnect'"/>
        <else/>
                <!-- The caller hung up before being connected -->
                <assign name="duration" expr="noconnection"/>
        </if>
        <submit next="process.php" method="get" namelist="duration"/>
</catch>

Post Reply