Contents

VoiceGuide Help
1. Introduction
Welcome To VoiceGuide
Which version to use
2. System Configuration
System Requirements
Installing v7.x - Dialogic
Installing v7.x - VoIP / HMP
Installing v6.x - Dialogic
Installing v5.x - Voice Modems
Installing v5.x - CAPI compatible cards
Installing v5.x - Dialogic
Installing v5.x - Dialogic Wave Drivers
Text To Speech
Call Transfers and Conferencing
ODBC Data Sources
End of Call Detection
Distinctive Ring Detection
Cisco Call Manager Configuration
T1/E1 ISDN Configuration
T1/E1 RobbedBit/CAS/R2 Configuration
VoIP Line Registration
Command Line Options
Registering VoiceGuide
Unique System Identifier
3. Script Design
Introduction
Graphical Design Environment
Module Types
Paths
Result Variables
Call Start
Call Finish
Multilanguage Systems
Protected Scripts
Sound files
Testing Scripts
4. Modules Reference
Play
Record
Get Numbers
Say Numbers
Transfer Call
Send Phone Message
Send Pager Message
Send Email
Database Query
Run Program
Time Switch
Evaluate Expression
Run VB Script
Send DDE Command
Hangup Call
5. Fax
Introduction
6. Voicemail
Introduction
Voicemail System Manager
Voicemail Menus
Message Lamps
7. Outbound Dialing
Loading Numbers to Call
Detect Call Answer
Outbound VoIP calls
Predictive Dialers
External Database Source (v7)
8. Speech Recognition
Introduction
Grammars
Install LumenVox
9. Logs
Script Logs
Call Detail Records (CDRs)
10. ActiveX / COM Interface
Admin_TraceLogAdd
Dialer_MakeCall
Dialer_OutDialQueAdd
Bridge_Connect
Bridge_Disconnect
Line_Hangup
Line_Pickup
Play_Start
Play_Stop
Record_Stop
Record_Start
Record_2Lines_Start
Run_ResultReturn
RvGet
RvGet_All
RvGet_AllXml
RvSet
RvSet_RvList
Script_Gosub
Script_Goto
Script_Return
Serial_Tx
Vm_Event
Vm_VmbConfig_Get
Vm_VmbConfig_Set
11. PBX Integration (CTI)
Inband Signaling
Ericsson MD110 Voicemail Interface
Legal Information
Copyright & Disclaimer

 
Home
VoiceGuide Online Help
Prev Page Next Page
 
 

Detecting Outgoing Call Answer

How VoiceGuide will be alerted that an outgoing call has been answered depends on what hardware is used with VoiceGuide, and whether answering machine detection is enabled.


Dialogic Cards - Analog

Dialogic cards can detect when a call has been answered and can fairly reliably distinguish if a call has been answered by a live person or by an answering machine. As soon as the recipient of call starts saying something the Dialogic card can tell whether the call has been answered by a human or by a machine. VoiceGuide will then run the appropriate script.

If answering machine detection is disabled then the Dialogic card will just wait for any spoken sounds (live or machine), and once it hears anything (or ringback has gone away) then it will report call as connected. The ringback tone for which the Dialogic card is to listen out for needs to be correctly specified. The default value will work for most ringbacks, but sometimes it will be necessary to set the ringback tone definition in ConfigLine.xml file (if using VG for Dialogic). The TID_RNGB1 tone definition needs to be used. There is another ringback tone definition available - TID_RNGB2 - but we have found that many cards will not detect the ringback defined in TID_RNGB2 correctly.

If recipient of call does not say anything after answering the call (or there is just silence on the line) then the Dialogic card will deduce that the call has been answered only when it realizes that the 'ringback' signal has gone away.

If the Dialogic card does not correctly detect the ringback tone on the line, then after a timeout (about 8 seconds) it will report the outgoing call as connected even though the outgoing line is still ringing.

 

Dialogic Cards - Digital : T1 and E1, ISDN

On digital connections the Dialogic card receives an indication from Telco the instant the call recipient picks up the handset.

If answering machine detection is disabled then then the digital card will report the call as connected immediately when the recipient of the call picks up their handset, and the script will be started.

If answering machine detection is enabled then, just like Dialogic Analog cards, the Dialogic Digital cards will be able to determine whether the call has been answered by a human or by a machine as soon as the recipient of call starts saying something. VoiceGuide will then run the appropriate script.

If answering machine detection is enabled and recipient of call does not say anything after answering the call then the Dialogic card will timeout out after a few seconds of receiving the 'handset is offhook' signal and report the call as connected.

Similarly, an indication that the destination telephone is busy or disconnected is sent back to the digital card from the network immediately - allowing for quick abandoning of those calls and dialing of another number if needed.

 

VoIP

On VoIP connections VoiceGuide receives an indication from Telco the instant the call recipient picks up the handset - similar to T1/E1 ISDN based systems.

Answering machine detection is made once spoken sounds are heard.

The sound quality of many VoIP connections is usually not as good as when Analog or Digital trunks are used, and hence the precision with which answering machines vs. live persons are detected is worse then on Analog or Digital systems.

 

Voice Modems

Voice modems cannot tell when a call has been answered. Immediately after finishing dialing they will advise VoiceGuide that a call has been connected, regardless even of whether the destination number has started ringing or not.

This is why when using modems VoiceGuide v5 will on outbound calls start playing a message in a loop which asks the recipient of the call to "press 1 to accept the call".

 

Detecting Answering Machines

Dialogic cards can detect if a call has been answered by an answering machine or by a human. No modem or other telephony card can do that and that is why Dialogic cards are the best (and only) practical choice for systems which use outbound dialing.

VoiceGuide uses Dialogic's answering machine detection mechanism to distinguish whether a person or an answering machine has answered the call. Dialogic's answering machine detection uses frequency based analysis and detection of whether the speech is coming from live person or answering machine is made in less then a second. If Dialogic informs VoiceGuide that it has detected an answering machine then VoiceGuide will wait for the speaking on the line to finish before playing the answering machine message or starting the script.

Answering Machine detection is enabled by default. The following keywords can be used in the "Answering Machine" text field to modify this behaviour:

If RETRY is specified in this field then VoiceGuide will attempt dialing again if an answering machine is encountered (up to the maximum number of redials allowed).

If IGNORE is specified in this field then VoiceGuide will ignore Dialogic's advice that an answering machine was detected and will just start the script/file specified in the "when a real person answers" text box.

If DISABLE is specified in this field then VoiceGuide will disable Dialogic's detection of when the call has been answered.

Overall, if a large number of calls are made to different numbers the Dialogic card should usually correctly detect whether a live person or an answering machine in over 95% of the time.

 

False reports of an Answer Machine answer when a Live Peron actually answered the call:

On poor quality lines (usually low quality cellular phone connections) the Dialogic card will sometimes mistakenly think an answering machine has answered the call when in fact the call was answered by a real person. The reason for this is that the low quality of the connection makes the voice of the person answering the call sound very similar to the sound quality usually expected from an answering machine.

Background noise can also play a factor in false detection of answering machines. We had a case where one site was playing a radio quite loud in the room where the phone was being answered and the Dialogic card was pretty regularly mistaking the background radio conversations for an answering machine. In another case the loud noise of a fan right next to the telephone resulted in false answering machine detections.

To overcome this problem you may specify that instead of just playing a .WAV file when an answering machine is detected a script is ran instead. From within a script you can find out how long the answering machine message was (using $RV[AmWelcMsg]), and if it turns out that it was quite short (say less then 2 seconds) then you may decide to ignore Dialogic's decision that this is an answering machine and force VoiceGuide to jump to the script for "Live Person" instead.

 

False reports of a Live Person answer when an Answer Machine actually answered the call:

If the answering machines/voicemails welcoming message is recorded in high quality then it is possible for the Dialogic card to mistake it for a real person answering the call. The normal every-day analog based answering machines are usually correctly detected by Dialogic.

One approach to work around this would be to first play in the "Live Answer" script a short message that says "Please wait" and then start recording. Set silence length to be short beforehand - say about half a second. In the record module use a "on {silence} goto... " path and point to start of the actual start of the script. When the recording finishes due to silence and the actual script starts then the first message played will be recorded on the answering machine, or heard by the caller. This approach effectively uses the record module will wait till answering machine finishes playing, but will result in a slightly delay in playing of the first message to live people. Some people do not place a Play module before this record module, so the live caller would just experience a half second delay before the main script is started.

 

Fine tuning Dialogic Answer Detection Parameters

With VoiceGuide v7 it is possible to access all entries in the Dialogic DX_CAP structure, which includes Dialogic's low level settings that affect the Answering Machine / Live Answer detection timeouts.:

ca_cnosig
ca_noanswer
ca_pamd_failtime

There are about 30-40 settings in the DX_CAP structure, all of which are accessible, allowing total control (on a per-call basis) over how the Dialogic card performs the detection.

For more information on the fields in the DX_CAP structure please refer to Dialogic's documentation - the "Voice API" section.

To change settings from the default values used by VoiceGuide an XML style expression needs to be specified in the "Call Options" field. Example of the expression used is show below:

<DX_CAP><ca_cnosig>500</ca_cnosig><ca_pamd_failtime>200</ca_pamd_failtime></DX_CAP>

Converted from CHM to HTML with chm2web Pro 2.84 (unicode)