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!