Disconnect Handling

Detecting Caller Hang-up

Many telephone systems indicate that the caller has hung up by signalling a loop current drop. This is a temporary drop in the current from the telephone switch. This event can be detected by the voice hardware and can be used to terminate the call.

When the voice card is connected to a PBX, caller hang-up is often indicated by a dial tone or a busy signal. Most voice cards can detect this tone while playing prompts by using global tone detection. Global tone detection causes VBVoice to generate a Disconnect event in the same manner as a loop current drop.

The voice card may require training to learn the tones of your system. Read more under Understanding Call Progress Tones.

If a loop current drop occurs while VBVoice is transferring a call or dialling, it is treated as a reorder and returns to the original caller.

Responding to Caller Hang-up

When VBVoice detects a loop current drop or disconnect tone, the following sequence of events occurs:

  1. The control generates an Exit event in the current control.

  2. The control checks for a disconnect event handler (see Connections Page).

  3. If a handler exists, the designated control receives the call and the following actions do not occur, including the Disconnect event. (It occurs later after the line is placed onhook by the OnHook control). The designated handler may be used to update a database with call information before termination.

  4. The LineGroup fires a PreDisc event. At this point the line is still offhook.

  5. VBVoice takes the line onhook.

  6. A Disconnect event is fired in the control where the call was being handled when the disconnect occurred.

  7. A Disconnect event is fired in the LineGroup control that started the call.

If none of the events set a GotoNode property or use the TakeCall method, the call is terminated.

If any of the events do set a GotoNode property or use the TakeCall method, the call is moved to another control and processing continues from there. The disconnect handling routine may restart if the call arrives at a voice processing control (for example, at a control that plays greetings), because this control may also detect the loss of loop current.

If VBVoice goes onhook due to a Onhook control or due to a completed transfer operation in a Dial control, the disconnect event is fired in the LineGroup control only.