62
InnoMedia, Inc
.
All Right Reserved
The dial plan described above results in the following digit map:
(0| 00|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)
The formal syntax of the digit map is described by the following notation:
Digit ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
Timer ::= “T” | “t” -- matches the detection of a timer
Letter ::= Digit | Timer | “#” | “*” | “A” | “a” | “B” | “b” | “C” | “c” | “D” | “d”
Range ::= “X” | “x”
-- matches any digit
| “[“ Letters “]”
-- matches any of the specified letters
Letters ::= Subrange | Subrange Letters
Subrange ::= Letter
-- matches the specified letter
| Digit “-” Digit
-- matches any digit between first and last
Position ::= Letter | Range
StringElement ::= Position -- matches an occurrence of the position
| Position “.”
-- matches an arbitrary number of occurrences
-- of the position, including 0
String ::= StringElement | StringElement String
StringList ::= String | String “|” StringList
DigitMap ::= String | “(“ StringList “)"
A DigitMap, according to this syntax, is defined either by a (case insensitive) “string” or
by a “list of strings” over which the SIP Device will attempt to find a shortest possible
match. Regardless of the above syntax, a timer is currently only allowed if it appears in the
last position in a string. Each string in the list is an alternate numbering scheme. A SIP
Device that detects digits, letters, or timers will:
1. Add the event parameter code for the digit, letter, or timer, as a token to the end of
the “current dial string” internal state variable.
2. Apply the “current dial string” to the digit map table, attempting a match to all
expressions in the Digit Map.
3. If the result is under-qualified (partially matches at least one entry in the digit map
and doesn't completely match another entry), nothing further will be done.
If the result matches an entry, or is over-qualified (i.e. no further digits could possibly
produce a match), the SIP Device will send the current dial string to the Call Agent and
clear the "current dial string". A match, in this specification, can be either a "perfect
match," exactly matching one of the specified alternatives, or an impossible match, which
occurs when the dial string does not match any of the alternatives. Unexpected timers, for
example, can cause "impossible matches". Both perfect matches and impossible matches
trigger notification of the accumulated digits (which may include other events). Timer is a
digit input timer that can be used in two ways:
1
When timer is used with a digit map, the timer is not started until the first digit is
entered, and the timer is restarted after each new digit is entered until either a
digit map match or mismatch occurs. In this case, timer T functions as an inter-
digit timer.
2
When timer is used without a digit map, the timer is started immediately and
simply cancelled (but not restarted) as soon as a digit is entered. In this case,
timer T can be used as an inter-digit timer when overlap sending is used.