Detecting End of Call
On systems using Analog
Telephony Cards (eg: Dialogic D/4PCI, D/120JCT etc) end of call
is detectable by:
- Loop Current Drop on the
line.
- Disconnect tone on the line.
- Special DTMF tone played by PBX/Switch.
- Timeout awaiting input from caller.
On systems using Voice
Modems end of call detection is made by:
Systems which use normal modems end of call detection is made
by:
- Disconnect tone on the line. (many
modems have problems detecting this correctly and will sometimes
even falsely detect the busy/disconnect tone when playing or
recording)
- Timeout awaiting input from caller.
Systems using Digital Telephony
Cards (includes CAPI/ISDN cards) (eg: Dialogic D/240,
D/300, AVM ISDN cards, Eicon ISDN cards etc.) end of call is
detectable by:
- End of call digital signaling.
- Timeout awaiting input from caller.
End of Call Detection: Loop
Current Drop
Loop current drop is used by many telephone
companies and PBXs to indicate end of call (other party has hung
up). Telephony Cards can detect loop current drop and will inform
VoiceGuide of it - VoiceGuide will then immediately hang up as
well. Please note that based on your phone company a loop current
drop can be delayed. It can arrive several seconds after caller has
hung up.
End of Call Detection:
Timeout awaiting input from caller
In situations where the VoiceGuide script times out awaiting a
response from the caller VoiceGuide will hangup the call. This is
the simplest way of having VoiceGuide end the call as it does not
require any special system configuration to be done, apart form
ensuring that the scripts used do not have any 'infinite loops'
within them.
End of Call Detection: End
of call digital signaling
Digital (includes all ISDN) systems all use digital signaling to
immediately indicate end of call when the other party hangs up the
handset. This is the most reliable way of obtaining end of call
signal. No special configuration is required in order fro the
system to detect the ISDN end of call signaling. VoiceGuide will
detect the ISDN signaling immediately and will end the script and
hangup the line as well. As ISDN offers the most reliable and
immediate end of call notification it is recommended that ISDN
lines are used for systems where reliable and fast end of call
detection is required.
End of Call Detection: Disconnect
Tone
Telephone companies will usually play a tone on the line to
indicate end of call, this tone is known as a 'busy tone' or a
'disconnect tone'. PBXs can be configured to play a tone, or send a
DTMF tone (usually tone "D") to indicate end of call.
Detection of disconnect tones: Voice modems come pre-programmed
with sets tones that they will detect as 'end-of-call' tones -
these cannot be changed. Some voice modems detect end-of-call tones
well, but some do not. Telephony cards also come pre-programmed
with sets tones that they will detect as 'end-of-call' tones, but
can also be be programmed what disconnect tones to listen for. This
allows telephony card to have its end-of-call (disconnect) tone
detection matched to that generated by the telephone company or
PBX.
Accuracy of tone detection with telephony cards is much better
then with modems. Some modems even falsely detect disconnect tones
while playing/recording sound files or when a DTMF key is pressed
by the caller.
Determining the Disconnect tone frequency and cadence :
Dialogic has the PBXpert application which automates the
detection and setting of disconnect tones. This is a good tool to
use if you have access to 2 lines attached to the Dialogic
card.
Otherwise please see instructions below for recording and
determining frequencies when only a single analog line is
available:
To find out the frequencies of the disconnect tone played by
your telephone system just record it using VoiceGuide's Record
module (just start recording then hang up) and then analyze the
frequencies using any of the more advanced sound editors
eg: when using Audacity (http://audacity.sourceforge.net/)
:
1. Open the file in Audacity
2. Highlight the section of the sound file where the tone is
present (the "ON" part of the tone)
3. Go to "View" menu and select "Plot Spectrum"
4. Note at what frequency the peak(s) is/are.
5. Highlight the entire section when tone is ON and check
the interval, looking at the selection's timing data at bottom of
Audacity's window.
5. Highlight the entire section when tone is OFF and check
the interval, looking at the selection's timing data at bottom of
Audacity's window.
Screenshot below shows Audacity with a disconnect tone with the
ON part of the disconnect tone highlighted. The Selection interval
timing is displayed at the bottom of the window - in this case the
ON part of the tone lasts about 250milliseconds (0.250
seconds).
Below screenshot shows the Frequency analysis window which is
shown when Audacity's "View"-> "Plot Spectrum" menu is
selected.
The peak is at 428Hz.
Screenshot below shows Audacity with a disconnect tone with the
OFF part of the disconnect tone highlighted. The Selection interval
timing is displayed at the bottom of the window - in this case the
OFF part of the tone lasts about 750milliseconds (0.750
seconds).
Based on the above information the disconnect tone in he example
above is a single tone of 428Hz which lasts about 250ms and then a
period of silence which lasts about 750ms.
The recommended settings for Dialogic cards to detect this tone
reliably would be:
| Freq1:
|
428
|
| Freq1
dev:
|
40
|
| Freq2:
|
0
|
| Freq2
dev:
|
0
|
| On
time:
|
25
|
| On time
dev:
|
5
|
| Off
time:
|
75
|
| Off time
dev:
|
5
|
| Repetition
count:
|
3
|
When specifying the On/Off times (cadence times) for Dialogic
the lengths of time are in units of 10milliseconds, so a value of
25 represents 250milliseconds.
For allowed variances (deviations) in frequency and time it's
usually appropriate to use about 10% of the value for variance. For
'cadence' usually a value of 5 is OK (a value of 5 is
50miliseconds). If trying to detect a continuous tone which does
not have ON/OFF cadence you should set the "Repetition Count" to be
0 and the OFF time to 0 as well.
VoiceGuide 7 and VoiceGuide 6 :
The Disconnect tone must be set in ConfigLine.xml file which can
be found in VoiceGuide's \data\ subdirectory.
The Tone definitions which should be edited is the DISCONNECT_USER_1 or DISCONNECT_USER_2
(DISCONNECT_TAPI1 or DISCONNECT_TAPI2 in v6). The TID_DISCONNECT
toe defintion is only used on outbound calls, and it can also be
changed if required.
En example entry in ConfigLine.xml would be:
<Tone Name="DISCONNECT USER
1">
<Notes>Disconnect Tone</Notes>
<ID>DISCONNECT_USER_1</ID>
<Freq1>428</Freq1>
<Freq1Dev>50</Freq1Dev>
<Freq2>0</Freq2>
<Freq2Dev>0</Freq2Dev>
<On>25</On>
<OnDev>5</OnDev>
<Off>75</Off>
<OffDev>5</OffDev>
<Count>3</Count>
</Tone>
VoiceGuide 5 :
If using VoiceGuide version 5, the
disconnect tone definition would need to be set in the telephony
device's TAPI drivers. Here is the screenshot of the relevant page
from one TSP which supports disconnect tone definitions:
DTMF Disconnect tones :
Detection of DTMF disconnect tones : VoiceGuide is
configured by default to react to DTMF key "D" as an indication of
disconnect. Selection of which DTMF tone should be used by
VoiceGuide as a disconnection tone can be made in the [PBX] section
of the VG.INI file.
There have been a few good threads covering this on VoiceGuide's
Support Forum:
http://voiceguide.com/forums/index.php?showtopic=599
http://voiceguide.com/forums/index.php?showtopic=768
In general Dialogic cards are pretty good at correctly detecting
disconnection tones and if the tones are defined with low tolerance
bands then the probability of false detections is low. If the
tolerance bands however are set widely, allowing a wide range of
tones and/or frequencies then false detections of disconnect tones
can occur just while a person is speaking or a sound file is being
played. As disconnect tone detections will result in the call being
ended immediately it is imperative that the possibility of false
detections is as low as possible.
One of the situations where disconnect tone definition
parameters need to be set broadly is when a number of different
disconnect tones needs to be detected. To setup the system to
detect a variety of tones it would be necessary to record all the
tones which you want the system needs to detect, analyze them with
Audacity to find out the frequencies and timings and then come up
with the one global setting which will be able to detect them all -
keeping in mind that the broader the tolerances the higher the
chance of false busy detections... In situations like these using
T1/E1 ISDN lines would be a better solution.
NB. VoiceGuide allows for a different ConfigLine.xml file to be
used for each channel - so each channel can have it's own tone
configurations. Use <ConfigLine> tag within the
<Channel> entry to specify the LinesConfig.xml file specific
for that channel. eg:
<Channel>
<Name>dxxxB1C1</Name>
<Protocol>pdk_na_an_io</Protocol>
<RingsBeforeAnswer>0</RingsBeforeAnswer>
<script>C:\Scripts\MyScript.vgs</Script>
<AllowDialOut>1</AllowDialOut>
<ConfigLine>C:\MyConfigs\ConfigForUsCalls.xml</ConfigLine>
</Channel>
End of Call Detection: Special
DTMF tone played by PBX/Switch
Some PBXs and Switches can be set up to play a DTMF tone on the
line when the PBX/Switch detects that the other party has hung up.
The DTMF tone chosen to indicate that is usually the "D" tone.
Most telephone handsets do not have the DTMF A, B, C and D tones
on their keypad, so the callers cannot generate these tones
themselves (either intentionally or by mistake). This makes the
"DTMF Disconnect Tone" a very useful way of detecting end of
call.
If the PBX or Switch is capable of generating DTMF tone at end
of call then we highly recommend using this approach as it is a
very reliable way of informing VoiceGuide immediately when the call
has finished.
The DTMF Disconnect Tone for which VoiceGuide will listen and
use as an indication of end of call can be set by selecting "PBX
Command Strings" from the "Edit" menu in VoiceGuide Script
Designer:
