Zhone 2000 ユーザーガイド

ページ / 296
262
2 0 0 0 - A 2 - G B 2 3 - 0 0
3
If the result is under-qualified (partially matches at least one
 
entry in the 
digit map and doesn't completely match another
 
entry), do nothing 
further.
 
If the result matches an entry, or is over-qualified (i.e., no
 
further digits could 
possibly produce a match), send the list of
 
accumulated events to the Call 
Agent. 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).
 
The following example illustrates the above. Assume we have the
 
digit map:
(xxxxxxx|x11)
 
and a current dial string of "41". Given the input "1" the current
 
dial string 
becomes "411". We have a partial match with "xxxxxxx",
 
but a complete 
match with "x11", and hence we send "411" to the Call
 
Agent.
The following digit map example is more subtle:
 
(0[12].|00|1[12].1|2x.#)
Given the input "0", a match will occur immediately since position
 
(".") 
allows for zero occurrences of the preceding construct. The
 
input "00" can 
thus never be produced in this digit map.
Given the input "1", only a partial match exists. The input "12" is
 
also only a 
partial match, however both "11" and "121" are a match.
 
Given the input "2", 
a partial match exists. A partial match also
 
exists for the input "23", "234", 
"2345", etc. A full match does not
 
occur here until a "#" is generated, e.g., 
"2345#". The input "2#"
 
would also have been a match.
 
Note that digit maps simply define a way of matching sequences of
 
event 
codes against a grammar. Although digit maps as defined here
 
are for DTMF 
input, extension packages can also be defined so that
 
digit maps can be used 
for other types of input represented by event
 
codes that adhere to the digit 
map syntax already defined for these
 
event codes (e.g., "1" or "T"). Where 
such usage is envisioned, the
 
definition of the particular event(s) SHOULD 
explicitly state that in
 
the package definition.
 
This is the formal syntax definition:
 
DigitMap = DigitString / "(" DigitStringList ")"
 
DigitStringList = DigitString 0*( "|" DigitString )
 
DigitString = 1*(DigitStringElement)
 
DigitStringElement = DigitPosition ["."]
 
DigitPosition = DigitMapLetter / DigitMapRange; NOTE "X" 
is now included
 
DigitMapLetter = DIGIT / "#" / "*" / "A" / "B" / "C" / 
"D" / "T"
 
/ "X"; NOTE "[x]" is now allowed
 
DigitMapRange = "[" 1*DigitLetter "]"
 
DigitLetter = *((DIGIT "-" DIGIT) / DigitMapLetter)