Subject: [Megaco] eventbuffer and digitevents

From: "Milton Mukhopadhyaya" <[email-masked]>
Date: Thu, 21 Jul 2005 07:13:39 -0700

Hi,

I have a question regarding the following scenario:

1.	MGC sends a modify command with eventbuffer descriptor with
following events : { dd/d1, dd/d2, dd/d3} 
2.	MGC sets the EventBufferControl variable to lockstep and there
is no active event descriptor. 
3.	d1, d2 and d3 events were detected and buffered. 
4.	A new event descriptor is received that arms dd/ce event with DM
= 123. 

Now we can handle buffered digit events in the following three ways:

i)                     MG acts on the first event - removes the event
from the event buffer and reports partial match with digitstring = "1" -
since DM specifies an event sequence with 123

                                                  OR

ii)                   MG consumes all three digitevents in the event
buffer and reports full match with digitstring = "123"

                                           OR

iii)                  MG acts on buffered events and since d1, d2 and d3
none of them matches dd/ce directly - all of them are dropped; dd/ce
event is activated and MG starts listening to digits according to the
specified DM.

Which one of the above possible three ways is the right one?

Regards,

Milton

_______________________________________________
Megaco mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/megaco

---

From: "Kevin Boyle" <[email-masked]>
Date: Thu, 21 Jul 2005 13:20:48 -0400

Option 2 is correct.  Clause 7.1.14.4 details DigitMaps and buffering
 
Kevin.  

________________________________

	From: [email-masked] [mailto:[email-masked]]
On Behalf Of Milton Mukhopadhyaya
	Sent: Thursday, July 21, 2005 10:14 AM
	To: [email-masked]
	Subject: [Megaco] eventbuffer and digitevents

	Hi,

	1.	MGC sends a modify command with eventbuffer descriptor
with following events : { dd/d1, dd/d2, dd/d3} 
	2.	MGC sets the EventBufferControl variable to lockstep and
there is no active event descriptor. 
	3.	d1, d2 and d3 events were detected and buffered. 
	4.	A new event descriptor is received that arms dd/ce event
with DM = 123. 

	Now we can handle buffered digit events in the following three
ways:

	i)                     MG acts on the first event - removes the
event from the event buffer and reports partial match with digitstring =
"1" - since DM specifies an event sequence with 123

	                                                  OR

	ii)                   MG consumes all three digitevents in the
event buffer and reports full match with digitstring = "123"

	                                           OR

	iii)                  MG acts on buffered events and since d1,
d2 and d3 none of them matches dd/ce directly - all of them are dropped;
dd/ce event is activated and MG starts listening to digits according to
the specified DM.

	Regards,

	Milton

---

From: "Milton Mukhopadhyaya" <[email-masked]>
Date: Thu, 21 Jul 2005 21:31:38 -0700

Hi,

Clause 7.1.14.4 does not talk about this particular scenario. 

Firstly, Clause 7.1.14.4 says how buffering should happen after a 'digit
map completion event' - let me quote the spec 

"Upon completion, a digit map completion event as defined in the package
providing the events being mapped into the digit map shall be generated.
At that point the digit map is deactivated.  Subsequent events in the
package are processed as follows  ...". 

Secondly clause 7.1.14.4 does not talk about eventbuffering explicitely,
since it says : "if EventBufferControl is ON, subsequent digit events
are processed in the same way as any other events."

Let me illustrate the scenario once again  :

1.	MGC sends a modify command with eventbuffer descriptor with
following events : { dd/d1, dd/d2, dd/d3} 
2.	MGC sets the EventBufferControl variable to lockstep.
3.	At a certain point of time according to the spec defined
algorithm eventbuffering is activated and eventdescriptor is
deactivated.
4.	d1, d2 and d3 events were detected and buffered ( in the
eventbuffer).
5.	A new event descriptor is received that arms dd/ce event with DM
= 123. 

                                                  OR

                                           OR

Regards,

Milton

From: Kevin Boyle [mailto:[email-masked]] 
Sent: Thursday, July 21, 2005 10:51 PM
To: Milton Mukhopadhyaya; [email-masked]
Subject: RE: [Megaco] eventbuffer and digitevents

Kevin.  

	Hi,

	6.	MGC sends a modify command with eventbuffer descriptor
with following events : { dd/d1, dd/d2, dd/d3} 
	7.	MGC sets the EventBufferControl variable to lockstep and
there is no active event descriptor. 
	8.	d1, d2 and d3 events were detected and buffered. 
	9.	A new event descriptor is received that arms dd/ce event
with DM = 123. 

	                                                  OR

	                                           OR

	Regards,

	Milton

---

From: "Kevin Boyle" <[email-masked]>
Date: Fri, 22 Jul 2005 01:06:39 -0400

I am not sure where your quoted text invalidates my earlier reply.
"Subsequent digit events are processed in the same way as any other
events." Would this not mean that buffered digit events are handled in
the same way as digits detected without buffering?  Doesn't this mean
that the completion event will process the digits in the order they were
buffered against the DigitMap?
 
I stand by my earlier answer with one correction.  It would be an
unambiguous match in the given example, not a full match.
 
Kevin

	From: Milton Mukhopadhyaya [mailto:[email-masked]] 
	Sent: Friday, July 22, 2005 12:32 AM
	To: Boyle, Kevin [NCRTP:3Z40:EXCH]; [email-masked]
	Subject: RE: [Megaco] eventbuffer and digitevents

	Hi,

	Firstly, Clause 7.1.14.4 says how buffering should happen after
a 'digit map completion event' - let me quote the spec 

	"Upon completion, a digit map completion event as defined in the
package providing the events being mapped into the digit map shall be
generated.  At that point the digit map is deactivated.  Subsequent
events in the package are processed as follows  ...". 

	Secondly clause 7.1.14.4 does not talk about eventbuffering
explicitely, since it says : "if EventBufferControl is ON, subsequent
digit events are processed in the same way as any other events."

	5.	A new event descriptor is received that arms dd/ce event
with DM = 123. 

	                                                  OR

	                                           OR

	Regards,

	Milton

	Option 2 is correct.  Clause 7.1.14.4 details DigitMaps and
buffering

	Kevin.  

		From: [email-masked]
[mailto:[email-masked]] On Behalf Of Milton Mukhopadhyaya
		Sent: Thursday, July 21, 2005 10:14 AM
		To: [email-masked]
		Subject: [Megaco] eventbuffer and digitevents

		Hi,

		6.	MGC sends a modify command with eventbuffer
descriptor with following events : { dd/d1, dd/d2, dd/d3} 
		7.	MGC sets the EventBufferControl variable to
lockstep and there is no active event descriptor. 
		8.	d1, d2 and d3 events were detected and buffered.

		9.	A new event descriptor is received that arms
dd/ce event with DM = 123. 

		Now we can handle buffered digit events in the following
three ways:

		i)                     MG acts on the first event -
removes the event from the event buffer and reports partial match with
digitstring = "1" - since DM specifies an event sequence with 123

		                                                  OR

		ii)                   MG consumes all three digitevents
in the event buffer and reports full match with digitstring = "123"

		                                           OR

		iii)                  MG acts on buffered events and
since d1, d2 and d3 none of them matches dd/ce directly - all of them
are dropped; dd/ce event is activated and MG starts listening to digits
according to the specified DM.

		Which one of the above possible three ways is the right
one?

		Regards,

		Milton

---

From: "Milton Mukhopadhyaya" <[email-masked]>
Date: Fri, 22 Jul 2005 00:13:57 -0700

Hi Kevin,

I have some comments wrt your reply to my earlier mail.

a) I was wrong about 'full match' it should be unambiguous match.

b) I fail to understand your statement "Doesn't this mean that the
completion event will process the digits in the order they were buffered
against the DigitMap?" - I hope you understood that those digit events
were NOT "buffered against the Digit Map".

c) I agree with you that the quoted text does not invalidate your
conclusion, but you might have noticed that it does not explicitly
consider/support this case as well - and GCP specification seems to be
pretty ambiguous with respect to these scenarios. 

In the similar vein, could you please check the more generic scenario?

1.	At a certain point of time according to the spec defined
algorithm event buffering is activated and EventsDescriptor is
deactivated. 
2.	Events E1, E2 and E3 events were detected and buffered (in the
EventBuffer according to EventBuffer descriptor). 
3.	A new event descriptor is received that arms event D. Event D is
a composite event with constituent events (E1, E2 and E3) - definition
of event D is: MG recognizes event D iff it detects events E1, E2 and
E3, in that order.

Following your earlier reasoning, can I conclude that MG consumes all
three elementary events from the event buffer and reports a notification
to MGC with the composite event D?

Bye the way with respect to processing events of the event buffer GCP
spec says: 

"If the event in the queue is in the events listed in the new
EventsDescriptor, the MG acts on the event and removes the event from
the EventBuffer.  The time stamp of the Notify shall be the time the
event was actually detected.  "

As you can see the above paragraph does not deal with composite events.

Regards,

Milton

From: Kevin Boyle [mailto:[email-masked]] 
Sent: Friday, July 22, 2005 10:37 AM
To: Milton Mukhopadhyaya; [email-masked]
Subject: RE: [Megaco] eventbuffer and digitevents

Kevin

	Hi,

	4.	MGC sends a modify command with eventbuffer descriptor
with following events : { dd/d1, dd/d2, dd/d3} 
	5.	MGC sets the EventBufferControl variable to lockstep. 
	6.	At a certain point of time according to the spec defined
algorithm eventbuffering is activated and eventdescriptor is
deactivated. 
	7.	d1, d2 and d3 events were detected and buffered ( in the
eventbuffer). 
	8.	A new event descriptor is received that arms dd/ce event
with DM = 123. 

	                                                  OR

	                                           OR

	Regards,

	Milton

	Kevin.  

		Hi,

		                                                  OR

		                                           OR

		Regards,

		Milton

---

From: "Kevin Boyle" <[email-masked]>
Date: Fri, 22 Jul 2005 08:30:00 -0400

Let me reword: "Doesn't this mean that the completion event will process
the digits against the DigitMap in the order they were buffered?"
 
What other "composite events" are there besides DigitMap completion
events?
 
And as for your generic composite event, while you have buffered
individual events, the composite event is what you are looking for.
Whatever processing is described for the composite event would be used.
The time of detection would be the time that the composite event
completed.
 
Kevin

	From: Milton Mukhopadhyaya [mailto:[email-masked]] 
	Sent: Friday, July 22, 2005 3:14 AM
	To: Boyle, Kevin [NCRTP:3Z40:EXCH]; [email-masked]
	Subject: RE: [Megaco] eventbuffer and digitevents

	Hi Kevin,

	a) I was wrong about 'full match' it should be unambiguous
match.

	b) I fail to understand your statement "Doesn't this mean that
the completion event will process the digits in the order they were
buffered against the DigitMap?" - I hope you understood that those digit
events were NOT "buffered against the Digit Map".

	c) I agree with you that the quoted text does not invalidate
your conclusion, but you might have noticed that it does not explicitly
consider/support this case as well - and GCP specification seems to be
pretty ambiguous with respect to these scenarios. 

	In the similar vein, could you please check the more generic
scenario?

	1.	At a certain point of time according to the spec defined
algorithm event buffering is activated and EventsDescriptor is
deactivated. 
	2.	Events E1, E2 and E3 events were detected and buffered
(in the EventBuffer according to EventBuffer descriptor). 
	3.	A new event descriptor is received that arms event D.
Event D is a composite event with constituent events (E1, E2 and E3) -
definition of event D is: MG recognizes event D iff it detects events
E1, E2 and E3, in that order. 

	Following your earlier reasoning, can I conclude that MG
consumes all three elementary events from the event buffer and reports a
notification to MGC with the composite event D?

	Bye the way with respect to processing events of the event
buffer GCP spec says: 

	As you can see the above paragraph does not deal with composite
events.

	Regards,

	Milton

	I am not sure where your quoted text invalidates my earlier
reply.  "Subsequent digit events are processed in the same way as any
other events." Would this not mean that buffered digit events are
handled in the same way as digits detected without buffering?  Doesn't
this mean that the completion event will process the digits in the order
they were buffered against the DigitMap?

	I stand by my earlier answer with one correction.  It would be
an unambiguous match in the given example, not a full match.

	Kevin

		Hi,

		Clause 7.1.14.4 does not talk about this particular
scenario. 

		Firstly, Clause 7.1.14.4 says how buffering should
happen after a 'digit map completion event' - let me quote the spec 

		"Upon completion, a digit map completion event as
defined in the package providing the events being mapped into the digit
map shall be generated.  At that point the digit map is deactivated.
Subsequent events in the package are processed as follows  ...". 

		Secondly clause 7.1.14.4 does not talk about
eventbuffering explicitely, since it says : "if EventBufferControl is
ON, subsequent digit events are processed in the same way as any other
events."

		4.	MGC sends a modify command with eventbuffer
descriptor with following events : { dd/d1, dd/d2, dd/d3} 
		5.	MGC sets the EventBufferControl variable to
lockstep. 
		6.	At a certain point of time according to the spec
defined algorithm eventbuffering is activated and eventdescriptor is
deactivated. 
		7.	d1, d2 and d3 events were detected and buffered
( in the eventbuffer). 
		8.	A new event descriptor is received that arms
dd/ce event with DM = 123.  

		                                                  OR

		                                           OR

		Regards,

		Milton

		Option 2 is correct.  Clause 7.1.14.4 details DigitMaps
and buffering

		Kevin.  

			Hi,

			I have a question regarding the following
scenario:

			6.	MGC sends a modify command with
eventbuffer descriptor with following events : { dd/d1, dd/d2, dd/d3} 
			7.	MGC sets the EventBufferControl variable
to lockstep and there is no active event descriptor. 
			8.	d1, d2 and d3 events were detected and
buffered. 
			9.	A new event descriptor is received that
arms dd/ce event with DM = 123. 

			Now we can handle buffered digit events in the
following three ways:

			i)                     MG acts on the first
event - removes the event from the event buffer and reports partial
match with digitstring = "1" - since DM specifies an event sequence with
123

OR

			ii)                   MG consumes all three
digitevents in the event buffer and reports full match with digitstring
= "123"

			                                           OR

			iii)                  MG acts on buffered events
and since d1, d2 and d3 none of them matches dd/ce directly - all of
them are dropped; dd/ce event is activated and MG starts listening to
digits according to the specified DM.

			Which one of the above possible three ways is
the right one?

			Regards,

			Milton