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. When creating or
modifying any Inband Signaling definition files for your switch
we’d recommend contacting support@voiceguide.com to
verify correctness of the file.
Inband
Signaling detection is only supported in the Enterprise (and
Evaluation) version of VoiceGuide.
An example
file is quoted below. Comments within the file explain the purpose
of the “Pattern” and “RV” entries.
; Inband Signaling definition file for:
; Siemens HiPath 3000 v1.2
;
; Each Inband Signal definition entry consists of two lines:
Pattern and RV
;
; Pattern :
; Any string expression conforming to the pattern-matching
conventions described in
; Visual Basic for Applications LIKE operator pattern
definition.
; Used to match the incoming Inband Signalling data.
;
; RV :
; VoiceGuide Result Variables extracted from the matched Inband
Signalling stream
; multiple RV's are specified using 3 fields per RV:
; 1. Name
; 2. Start Postion
; 3. Length
;
; Result Variables extracted
; List of Result Variables extracted using this definition
file:
; Inband_TOC = Type of call (TOC)
; Inband_Calling = Calling party
; Inband_Called = Called party
; Inband_Info = Additional calling party information
;
;5 digit station numbers, forwarded call
Pattern=[*][*][*]???????????[*][1-4]
RV=Inband_TOC,4,1,Inband_Calling,5,5,Inband_Called,10,5,Inband_Info,17,1
;
;5 digit station numbers, direct call
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]
;Inband signalling configuration file
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.