A p p l i c a t i o n N o t e s
C-13
1
Add the event code as a token to the end of an internal state
variable for
the endpoint called the "current dial string".
2
Apply the current dial string to the digit map table, attempting a
match to
each expression 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), 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" /
Содержание JetFusion 2004
Страница 12: ...viii 2 0 0 0 A 2 G B 2 2 0 0...
Страница 20: ...1 6 2 0 0 0 A 2 G B 2 2 0 0...
Страница 174: ...6 12 2 0 0 0 A 2 G B 2 2 0 0...
Страница 184: ...8 4 2 0 0 0 A 2 G B 2 2 0 0...
Страница 186: ...A 2 2 0 0 0 A 2 G B 2 2 0 0...
Страница 187: ...M e n u M a p A 3...
Страница 188: ...A 4 2 0 0 0 A 2 G B 2 2 0 0...