VoiceGuide IVR Software Main Page
Jump to content

Script Keeps Running After Hangup

Recommended Posts

Hi, I would like to thank you firstly for your great support. I would appreciate if you could shed some light on how I can go about doing the following:

 

If the caller hangs up during any part of the script, I need the script to immediately cease running script (or immediately invoke the runafterhangup script), and free the line. Currently if a caller hangsup, the script continues to run until it reaches and end point. I need this functionality so that I can record if a caller hung up too early, etc.

 

Is there perhaps a way to check if a user has hangup?

 

Thanks.

Share this post


Link to post

For the Dialogic card to be able to tell immediately that the caller has hung up:

 

- Ensure your PBX or telco does Loop Current Drop at end of call, or

- Use PBXpert to define disonnect tones used by PBX/telco, or

- Configure PBX/telco lines to send a 'Disconnect DTMF tone', or

- Use a digital (T1 or E1) connection.

 

 

Loop Current Drop

 

Dialogic should will detect these immediately.

You can easily check if your Dialogic board is correctly detecting loop current drop - just unplug the telephone line from the Dialogic card during the call - you should see VoiceGuide immediately hangup that line as the loop current drop was detected by Dialogic and VoiceGuide was informed of end of call...

 

 

Disonnect tones

 

Use Dialogic's PBXpert tool to create the tone file which defines what disconnect/busy tones are played by your telephone company or PBX when the call is finished, and then tell Dialogic Configuration Manager to load your 'tone file' by specifying in the DCM:

 

TSFFileSupport=Yes

DisconnectTone=Yes

TSFFileName=your .tsf file.

 

The disconnect tones vary from one switch manufacturer to the next and even between different models of switches from the same manufacturer, but you can determine its specs quite easily using PBXpert, or if you can find out what are the tones frequencies and cadence then just indicate those in your tone file.

 

 

Disconnect DTMF tone

 

Many PBXs can be configured to play a particular DTMF tone when they detect a call is finshed - this tone is usually tone "D" and if that is the case then you can specify paths from modules like this:

 

On {D} goto [HangupCall]

 

where HangupCall is a 'Hangup Call' module...

 

VoiceGuide v5.0 onwards has a "HangupOnDtmf" option in VG.INI file which will allow you to specify this tone to apply globally.

 

 

More on Loop Current Drop:

 

The best way to find out which method your switch is using for hangup

notification is to ask someone to call you, then when they hangup you listen

for the signal that you receive.  If you instantly hear busy tone then

you will need to use global tone detection for hangup detection.  If you

just hear a click, then it is likely that you have received loop drop.

Quite often you might get loop drop, but if you don't respond to it (by

hanging up) then after a certain timeout you might get loop on again,

followed by a fast busy tone.

 

You can usually tell if the phone line you use drops loop current or not by

listening to what happens when a caller hangs up.  If you hear a click and

then silence, usually followed 8 to 10 seconds later by a busy signal,

operator intercept, etc. then it's most likely dropping loop current.  If

you almost immediately hear DTMF tones, a busy signal or fast busy signal

then loop current isn't being dropped so you'll have to use the busy signal

or DTMF tones as the hangup detection.

 

The loop-current drop detection only works when you are connected to a PBX

or exchange that actually drops the loop-current when the remote party

disconnects. This pre-supposes an intelligent network all the way from the

caller, so that the disconnect information can be passed on to the final

switch (PBX or exchange), which then must drop the loop current.

Share this post


Link to post

Thank you for that information.

 

I've got two further questions:

 

1. Where can I get the tone frequency & cadence for my local carrier for the different tone types? Is there a way I can auto detect them PBXpert, as I have no idea where to get them from?

 

2. I am not currently using a PBX system on my 4 line dialogic card, just the 1 line directly plugged in. Will this matter, or can I still use the PBXpert program to just create the 'tone file', and then use it?

Share this post


Link to post

I just tested which method my carrier uses to detect call disconnect signals, and it seems as if its 'dropping loop current' due to hearing a silence immediately after the disconnect, followed by a busy signal 8-10s later.

 

What do you suggest, as you listed option "B" (ie. Ensure your telephone company or PBX uses "loop current drop" to indicate end of call.) would allow me to immediately detect, however it doesnt.

 

Thanks.

Share this post


Link to post

Can you hear a 'click' on your line when the caller hangs up the call? The current drop can be heard as a 'click' on the line.

 

Can the local carrier confirm for you if they are using loop current drop on the lines? They should also be able to tell you what frequencies/cadence the busy/disconnect tone is on their lines, and then you can use this information to specify these tones directly using PBXpert to create a tone file.

Share this post


Link to post

I can hear a very faint 'click' followed by a long silence and then a busy tone sound when the caller hangs up.

 

I am using 2 seperate lines (each with their own number, ie. no PBX). I have run the tone detection process through PBXpert, it passes learning the tone set, but fails to consolidate. Do you know if I need to have a consolidated tone set? I saved the tone set file anyway (unconsolidated), and selected it in the TSFFileName parameter for the board in DCM.

 

Voice Guide is still failing to detect, and immediately run the afterhangup script on a caller hanging up.

 

Can you suggest anything?

Share this post


Link to post

There is no need to consolidate the tone file (it just merges them with other tone files so you can use same tone file for many PBXs)

 

Just keep on using the unconsolidated tone file that you have created for your PBX...

 

Please ensure that all three seting have been changed in the DCM:

 

TSFFileSupport=Yes

DisconnectTone=Yes

TSFFileName=your .tsf file.

 

Probably a good idea to record the disconnect tone and analyze it with CoolEdit or similar tool (eg: Audacity http://audacity.sourceforge.net/ ) - then you can confirn that PBXpert correctly set all the fequencies and cadences for the disconnect tone.

 

 

Loop current drop is still the best way of detecting end of call...

 

You can easily check if your board is correctly detecting loop current drop:

 

Just unplug the telephone line from the Dialogic card during the call - you should see VoiceGuide immediately hangup that line as the loop current drop was detected by Dialogic and VoiceGuide was informed of end of call...

Share this post


Link to post

This short article copied from a Dialoigc forum is pretty helpfull here:

 

If you want to detect hangup with an analog Dialogic board, then there needs to be *something* on the phone line for the Dialogic board to detect. There has to be something, some signal, some change in state, to tell the Dialogic board that a hangup has occurred. There's really no magic here.

 

Normally, if a Dialogic board is connected to a "real" central office, then there will be a loop current drop when the party at the other end hangs up. The central office will drop the loop current to you (the Dialogic board) when the other person hangs up. This is the best and most reliable way to detect hangup. By default, most analog Dialogic boards will recognize a loop current drop within a few milliseconds!

 

Some central offices do not drop loop current. Many PBXes do not drop loop current either. If the equipment at the other end of your phone line doesn't drop loop current, then you can't use loop current drop to detect hangup. It's always there, always the same, so there's nothing to detect. It's that simple.

 

For a PBX, even if it doesn't drop loop current, it *might* send a special tone (a disconnect tone, dial tone, or reorder tone) when the other party hangs up. If your PBX sends you a tone when the other party hangs up, then you can have the Dialogic board look for and recognize this tone as the equivalent of a loop current drop. This works very well. The tone to look for is also software configurable.

 

If you are in the position of being connected to equipment that does not drop loop current and does not send a tone to indicate disconnect, then YOU DON'T HAVE a reliable means of detecting hangup. If the loop current stays on, and there isn't a tone to tell you that the other person hung up, then how would you know they hung up?

 

In set-ups where your PBX/telco is not sending any tones and does not drop loop current it is a good idea to design scripts in such a way that they will not continue for a long time without some constant feedback from the caller...

Share this post


Link to post

Based on your phone company a loop current drop can be delayed! It can take several seconds after caller has hung up!

Share this post


Link to post

This would add weight to a recommendation that digital lines (T1 or E1) should be used for applications which require highly reliable and/or instantaneous end-of-call notifications.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×