Subject: Washington Issue 4 - Events

From: Brian Rosen <[email-masked]>
Date: Mon, 15 Nov 1999 10:13:22 -0500

A number of issues were raised in the Washington meeting that were "send to
the
list".  This is one of these issues, with the problem and my suggested fix.

Problem
Events have issues associated with the "Event Buffer", and how it interacts
with the DigitMap mechanism.  The basic issue is when events get into the
buffer,
and exactly how do they get out.

Note: A proposal was presented in the meeting the totally eliminated the
event buffer except for the digitmap mechanism that was moved to a package.
Several WG members in the Friday session pointed out problems with this
proposal.

Proposed Solution:
a) KeepActive is a parameter(boolean) to every event.  If set, this event
will
not cause signals to stop.
b) TerminationState has a boolean property: Quarantine.
If Quarantine is off:
        Any events in the Quarantine Buffer are discarded.
        All events in the event descriptor are Notified to the MGC when they
                are detected.  Events not in the EventsDescriptor are
discarded.

If Quarantine is on:
        When an event in the EventsDescriptor is detected, and the
Quarantine
                Buffer is empty, it is Notified to the MGC.  All subsequent
events
                (whether they are in the event descriptor or not), are
buffered in
                the Quarantine Buffer.
        A Modify command (which might contain a new EventsDescriptor) starts
a
                process which looks through the Quarantine Buffer in FIFO
order:
                        Events not in the EventsDescriptor are discarded
                        The first event in the eventsDescriptor is Notified,
                                and the process stops.
C) A flag in EventsDescriptor (Discard) clears the Quarantine Buffer.

D) The "Action" indicator is not needed anymore.

Please Note:
The "no quarantine" mode is the simplest mechanism - the MGC gets all the
events it asks for until it changes EventsDescriptor.  In Quarantine mode,
the assumption is that the MG doesn't know what events the MGC might want
between the time one event is detected, and it responds.  So, it keeps
all events, sends the first one it finds that is in the current ED (in the
buffer if there is one there), and then waits to see what the MGC asks for
next.
The only events it discards are the ones not in the ED before it finds one
that is in the ED.

E) DigitMap can either stay pretty much as is, with a simple change in
Events Descriptor syntax - there is a DigitMap event, that has a parameter
"Map" which enables the DigitMap.  This event is notified, with a string
result
which is the digits matched.

Another possibility is to define a more generalized DigitMap mechanism.
In the base protocol, we define the DigitMapDescriptor, which is renamed
"PatternMap", and generally has the same syntax.  A package defines specific
use for the base mechanism by defining:
        On ordered list of events that are detected (DTMF digits)
        A one character symbol for each that will occur in the pattern map
        An event which is enabled by specifying the name of an existing
                pattern map, or a pattern map value, as a parameter.
Events in the list of events that are detected are processed through the
pattern map mechanism.  The event returns a string which is the pattern that
was matched.  If any other event is detected, the pattern is returned with
a "|" suffix indicating that an event terminated pattern matching.

The intention is that, except for the name change, and a required package,
digitmap works just as defined now, with the same syntax in the
DigitMapDescriptor, but with the different syntax in the EventsDescriptor
(something like Events{DTMFMap{Map=NANP}}

Brian

---

From: Stephen Terrill <[email-masked]>
Date: Wed, 17 Nov 1999 14:57:14 +0100

Hi Brian,

Interesting to see the same problems repeating :-).  Anyway, I wasn´t at the meeting and I was interested in what the problems with the proposal were that you indicated in your note below.  I am rather keen on something simple, but something that works.

In addition, would it be cleaner to consider the "keep alive" as something which is achieved using the embeded descriptor instead??

Thanks,

..//Steve

---

From: Harpreet Singh Anand <[email-masked]>
Date: Thu, 25 Nov 1999 17:23:23 +0530

Hello Brian,

>                 process which looks through the Quarantine Buffer in FIFO

1. Why is the process of scanning the Quar. Bfr linked with Modify command ? The
process can also be started when the command is Move or Add. Shouldn't the
process get started whenever a new EventsDesciptor (it might be the same as the
previous one) is sent, irrespective of the command ?

2. If no new EventsDesciptor is present in the Modify command, then is the
previous Events Descriptor used ?

> events it asks for until it changes EventsDescriptor.

Does this mean that in "no quarantine" mode the EventsDescriptor remains active
(in the sense that MG still looks for the events specified in EventsDescriptor)
even after an event has got detected and notified ? And in "Quaratine" mode, the
EventsDescriptor is valid for first event and after that all events are
detected.

> (something like Events{DTMFMap{Map=NANP}}

The concept of PatternMap is not clear. Can you please explain it with the help
of an example of a package ?

Thanks,

Regards,
Harpreet

_________________________________
Harpreet Singh Anand
Ficon Technology
E-mail :  mailto:[email-masked]
Web    :  http://www.ficon-tech.com