≡ Menu

How to detect DISCONNECT or Call End using Analog CTI Boards

One of the major problem faced by any IVR developer using analog CTI board is “Detecting Disconnect” after call is hung up by IVR caller. With different disconnect tones used by different PBX manufacturer does not help either.

Detecting Call End or Disconnect is very easy while using digital CTI board with digital interfacing like ISDN, SS7 etc., but detecting DISCONNECT is not that straight forward or easy while using analog CTI boards. It is mainly because of exchanging “control information” with analog technologies!

There are few techniques or information using which DISCONNECT event can be detected and Call End process can be initiated in any CTI application:-

1. Disconnect Tones
This is most widely used information which is used by all PBX systems in the world. In analog telephone call scenario, in India, called party can not hang up the telephone call. It is the calling party which can disconnect the call and when he disconnects the call, PBX generates some “Disconnect Tones” which is recognised by CTI board and may send an event accordingly to the CTI application.
Normally, a “Disconnect Tone” vary from one PBX to another. But they follow same pattern, some Tone with fixed freqency for few seconds, then silence very short period, then again tone with another frequency, short silence, again first frequency, short silence. This sequence of “Tone1-Silence-Tone2-Silence” continues for some time and the line goes completely silence.

There are many tools available to get these frequencies and duration of tones, silence. Dialogic provides PBExpert ( requires two telephone extensions or telephone lines) which can be used directly to configure its driver to detect disconnect tone. One may also record the “Disconnect Tone” and find out its frequency, duration of silence, duration of tone period and then use them in the CTI programs to detect Call Disconnect event. CoolEdit, Audacity are few sound software which can give you information about frequency in sound file as well as duration.

Detecting CALL DISCONNECT using these “disconnect tones” are slow ( takes 10 to 30 seconds) and may not work with 100% accuracy. Also, many times, busy tone and disconnect tones in PBX systems tend to be same or similar. With recent introduction of CRBT ( Caller Ring Back Tone), task of detecting Disconnect Tone has been made more difficult!

2. Loop Current Drop

This is another method of detecting DISCONNECT condition while using Analog CTI boards. Many PBX systems use Loop Current Drop or Loop Reversal which is detected by analog CTI boards and pass on to CTI applications. Many analog CTI boards may not support this facility and many modern PBX too stopped this feature.

3. Using Timer in CTI application

One of the widely used “Call End” condition is detecting silence or time out waiting for caller input in the form of DTMF key pressing or Speech. This is easy to implement, independent of any PBX, but it is time consuming and tend to be very slow.

So, best way to detect call disconnect while using analog CTI boards would be to us hybrid of techniques mentioned above. And the best method, according to me is to use digital CTI boards, but this may not be possible always, though!

Next post:

Previous post:

{ 4 comments… add one }
  • Gorgi June 14, 2010, 3:13 pm

    I have developed IVR software by Dialogic D/4PCIUF and C# (KDTELE Tools) and Central Office model Panasonic KX-T616.

    I live in Iran and Dialogic DCM -> Configuration Device is not supported Iran at the list of country to configuration card by my country telephone lines settings.
    I need to detect Disconnect Tone to hang up line by code.
    I have used PBXpert to detect disconnect tone.
    in control panel -> TAPI setting for Dialogic TAPI
    There are 2 option for this purpose : 1.DISK TONE 1
    2. DISK TONE 2

    – Whats differences between disk tone 1 and disk tone 2?
    – how can i set this value into Dialogic TAPI ( I have to use Disk Tone 1 or 2 ??)
    – do u think my problem is Analog Dialogic ??
    and Now I’m trying to implement this gap by timer.
    after playing done some second later if user had been disconnected me , I will hang up the line.
    is it good trick for that?!!!!

    sorry for my poor English.
    thanks for your powerful post.

  • Uttam Pegu June 16, 2010, 12:18 pm

    Hi Gorgi,
    Though English is not my mother tongue, But I can assure you your English is good! 🙂

    I think, your tricks would work. Also, I think you need to use your TSF files using the Dialogic Configuration Manager.


  • Gorgi June 16, 2010, 1:55 pm

    Thanks .
    I’m trying to test it .
    I will give result to you.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.