Inband Signaling

Many PBXs and Switches can send information about the call using Inband Signaling. This information may contain CallerID, number dialed, extension from which the call was transferred, reason for the transfer etc. Different PBXs and Switches support provision of different information via Inband Signaling.

VoiceGuide can be configured to detect Inband Signaling sent by the PBX at the beginning of the call and make this information available to scripts as Result Variables.

Inband Signaling is sent using a series of DTMF tones immediately after the call is answered. It is only sent to the recipient of the call and it does not matter after how many rings the call is answered - the signaling tones are sent immediately after call answer.

It is easy to check if Inband Signaling is sent on the line: place an extension headset against your ear and keep the 'handset on hook' switch depressed so that that handset can accept calls, then make a call to that extension and when the call arrives lift the hand off the 'handset on hook' switch - if there is any Inband Signaling sent you will hear it then a quick series of DTMF tones.
(You will not be able to hear the tones usually if you just normally pick up the handset as the playing of the tones would have finished by the time you raise the handset to your ear)

To capture what tones are being sent on the line just set up a VoiceGuide script whose first module is a "Get Numbers" type module - that module will then capture the sent digits and what it captures will be stored in the Log File.

To enable inband signaling detection and interpretation in VoiceGuide an “Inband Signaling Definition File” needs to be created. This file defines what Inband Signaling VoiceGuide can expect to receive form the PBX and how it should be interpreted.

 

Creating an “Inband Signaling Definition File”

Creating an Inband Signaling definition files requires precise knowledge of what PBX will send in various circumstances.

Inband Signaling detection is only supported in the Enterprise (and Evaluation) version of VoiceGuide.

An example file is shown below. Comments within the file explain the purpose of the “Pattern” and “RV” entries.

Pattern=[*][*][*]???????????[*][1-4]
RV=Inband_TOC,4,1,Inband_Calling,5,5,Inband_Called,10,5,Inband_Info,17,1
Pattern=[*][*][*]??????[*][1-4]
RV=Inband_TOC,4,1,Inband_Calling,5,5,Inband_Called,10,0,Inband_Info,11,1

When using the file above the following Result Variables will be available to the script:

$RV[Inband_TOC]

4the character sent

$RV[Inband_Calling]

5 characters starting from position 5

$RV[Inband_Called]

In case of forwarded call the 5 characters starting from position 10, or an empty string case of a direct call

$RV[Inband_Info]

Last character of the data string.

The “Pattern” entries are defined according to the rules Visual Basic for Applications LIKE operator pattern definition, major part of which is quoted below:

 

Selecting which “Inband Signaling Definition File” to use

To indicate that a particular “Inband Signaling Definition File” is to be used by the system the full path to the file must the specified in the VG.INI file, section [PBX], entry InbandSignalConfig. Eg:

[PBX]
InbandSignalConfig=InbandSignaling_SiemensHiPath3000_v1.2.txt

 

Inband Signaling Call Answering and Timings

If Inband Signaling is defined, VoiceGuide will wait for up to 2 seconds for DTMF tones to arrive. Maximum time between successive DTMF tones is 0.5 seconds. Once DTMF signaling stops VoiceGuide will perform the pattern matching and start running the script

If Inband Signaling does not arrive within 2 seconds of answering the call VoiceGuide will start running the script and the Result variables which would have been defined as a result of any pattern matches will be left undefined.

The 2 sec timeouts were found to be suitable for most systems, but it can be changed using the settings in VG.INI file. To change that setting please see the [PBX] section, entry InbandSignalWait.

Please contact support@voiceguide.com if an interdigit timeout other then 0.5 seconds is needed on your system

 

Signal Patterns Definition

The pattern-matching features allow you to use wildcard characters, character lists, or character ranges, in any combination, to match strings. The following table shows the characters allowed in pattern and what they match:

Characters in pattern

Matches in string

?

Any single character.

*

Zero or more characters.

#

Any single digit (0–9).

[charlist]

Any single character in charlist.

[!charlist]

Any single character not in charlist.

 

A group of one or more characters (charlist) enclosed in brackets ([ ]) can be used to match any single character in string and can include almost any character code, including digits.

Note   To match the special characters left bracket ([), question mark (?), number sign (#), and asterisk (*), enclose them in brackets. The right bracket (]) can't be used within a group to match itself, but it can be used outside a group as an individual character.

By using a hyphen () to separate the upper and lower bounds of the range, charlist can specify a range of characters. For example, [A-Z] results in a match if the corresponding character position in string contains any uppercase letters in the range A–Z. Multiple ranges are included within the brackets without delimiters.

Other important rules for pattern matching include the following:

  • An exclamation point (!) at the beginning of charlist means that a match is made if any character except the characters in charlist is found in string. When used outside brackets, the exclamation point matches itself.
  • A hyphen () can appear either at the beginning (after an exclamation point if one is used) or at the end of charlist to match itself. In any other location, the hyphen is used to identify a range of characters.
  • When a range of characters is specified, they must appear in ascending sort order (from lowest to highest). [A-Z] is a valid pattern, but [Z-A] is not.
  • The character sequence [] is considered a zero-length string ("").

 

Signal Patterns Examples

In the example file shown above the pattern:

[*][*][*]???????????[*][1-4]

specifies a string which has a total length of 16 characters, beginning with “***” followed by 11 characters, followed by another “*” and then followed by a digit between 1 and 4.

The pattern of:

[*][*][*]??????[*][1-4]

specifies a string which has a total length of 11 characters, beginning with “***” followed by 6 characters, followed by another “*” and then followed by a digit between 1 and 4.

In the pattern definition we need to enclose “*” characters in square brackets, otherwise they would be interpreted as a special “Zero or more characters.” Indicator. The section Signal Patterns Definitions above has more information on how the various patterns can be defined.