Subject: [Megaco] Question regarding the order of commands for the InterruptByNewSignalsDesc signal completion event

From: "Kamitses, Jerry" <[email-masked]>
Date: Mon, 14 Aug 2006 13:06:00 -0400

Please comment on which of these optional sequences are Megaco V1 compliant 
(and the applicable bits of the spec. used as rationale).  Note that by 
"compliant" we are asking which sequences a Megaco V1 compliant MGC 
should be able to handle.

"A" denotes the starting condition, and the three apparently valid options 
appear labeled B1, B2, and B3

(A) Modify command on NULL context sent to the termination 3/2/1@MG to play cg/rg 
 Then Add sent to 3/2/1@MG placing this termination into the context 17171255, 
  stopping the cg/rt signal, and starting the cg/bt signal.

!/1 <MGC>
T=17562{C=-{MF=3/2/1@MG {E=1{g/sc},SG{cg/rt{NC={TO,IBE,IBS}}}}}}

!/1 <MG>:2345
P=17562 { C=- { MF=3/2/1@MG  }}

!/1 <MGC>
T=17563{C=17171255{A=3/2/1@MG{M {ST=111{{MO=SR,tdmc/ec=ON}}},E=2{g/sc},SG{cg/bt{NC={TO}}}}}}

	- - - -          - - - -       - - - - 
B1 (OPTION 1)  3/2/1@MG generates Notify for the IBS signal completion event on the NULL context, 
and then the Termination is added to the context and the cg/bt signal is started. 

!/1 <MG>:2345
T=9053 { C=- { N=3/2/1@MG { OE = 1 { 20060814T13351501:G/SC {METH = SD, SIGID = CG/RT } } } }}

!/1 <MG>:2345
P=17563 {  C=17171255 { A = 3/2/1@MG }  }

	- - - -          - - - -       - - - - 
.... OR
B2 (OPTION 2) 3/2/1@MG is first added to the new context and then the Notify occurs for the IBS 
signal completion event on the new context using the new event descriptor.

!/1 <MG>:2345
P=17563 { C=17171255 { A = 3/2/1@MG }  }

!/1 <MG>:2345
T=9053 { C=17171255 { N=3/2/1@MG { OE = 2 { 20060814T13351501:G/SC { METH = TO, SIGID = CG/RT } } } }}

	- - - -          - - - -       - - - - 
... OR 

B3 - same as B2 except the NTFY could get ahead of the reply to the transaction containing the add?

!/1 <MG>:2345
T=9053 { C=17171255 { N=3/2/1@MG { OE = 2 { 20060814T13351501:G/SC { METH = TO, SIGID = CG/RT } } } }}

!/1 <MG>:2345
P=17563 { C=17171255 { A = 3/2/1@MG }  }

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

---

From: "Kevin Boyle" <[email-masked]>
Date: Tue, 15 Aug 2006 12:56:13 -0400

Because the signal is interrupted by the application of the new Signals
Descriptor in the course of applying the new command, I believe the
proper way here is to 1) apply each descriptor in the new command, 2)
generate the Notify Command that resulted from the application of the
new Signals Descriptor, 3) respond indicating success of the command.

So, in this instance, I believe B1 to be the correct choice.
Unfortunately, I know of no direct text in the spec that would outline
this ordering, other than the text that indicates that transactions and
commands are executed in the order in which they appear.

You did provide an example where the messaging gets out of order for
example B2.  I would note that this could also happen with B1, such that
the Add Reply could appear before the Notify Command.  So, ordering is
not a problem solely for the second answer scenario you described.

Either way, it is possible that the MGC could reject the Notify Command
as having a context mismatch.  However, well-written implementations
would keep track of the fact that a context change is likely to occur
and account for the possibility of out-of-order message receipt on
unreliable transports.

Kevin 

-----Original Message-----
From: Kamitses, Jerry [mailto:[email-masked]] 
Sent: Monday, August 14, 2006 1:06 PM
To: [email-masked]
Subject: [Megaco] Question regarding the order of commands for the
InterruptByNewSignalsDesc signal completion event

Please comment on which of these optional sequences are Megaco V1
compliant (and the applicable bits of the spec. used as rationale).
Note that by "compliant" we are asking which sequences a Megaco V1
compliant MGC should be able to handle.

"A" denotes the starting condition, and the three apparently valid
options appear labeled B1, B2, and B3

(A) Modify command on NULL context sent to the termination 3/2/1@MG to
play cg/rg  Then Add sent to 3/2/1@MG placing this termination into the
context 17171255,
  stopping the cg/rt signal, and starting the cg/bt signal.

!/1 <MGC>

!/1 <MG>:2345

!/1 <MGC>
T=17563{C=17171255{A=3/2/1@MG{M
{ST=111{{MO=SR,tdmc/ec=ON}}},E=2{g/sc},SG{cg/bt{NC={TO}}}}}}

	- - - -          - - - -       - - - - 
B1 (OPTION 1)  3/2/1@MG generates Notify for the IBS signal completion
event on the NULL context, and then the Termination is added to the
context and the cg/bt signal is started. 

!/1 <MG>:2345
T=9053 { C=- { N=3/2/1@MG { OE = 1 { 20060814T13351501:G/SC {METH = SD,
SIGID = CG/RT } } } }}

!/1 <MG>:2345

	- - - -          - - - -       - - - - 
.... OR
B2 (OPTION 2) 3/2/1@MG is first added to the new context and then the
Notify occurs for the IBS 
signal completion event on the new context using the new event
descriptor.

!/1 <MG>:2345

!/1 <MG>:2345
T=9053 { C=17171255 { N=3/2/1@MG { OE = 2 { 20060814T13351501:G/SC {
METH = TO, SIGID = CG/RT } } } }}

	- - - -          - - - -       - - - - 
... OR 

B3 - same as B2 except the NTFY could get ahead of the reply to the
transaction containing the add?

!/1 <MG>:2345
T=9053 { C=17171255 { N=3/2/1@MG { OE = 2 { 20060814T13351501:G/SC {
METH = TO, SIGID = CG/RT } } } }}

!/1 <MG>:2345