Subject: Re: [Megaco] Reply to audit all contexts, list of commands with specific terminations

From: Christian Groves <[email-masked]>
Date: Mon, 23 Nov 2009 16:11:06 +1100

Hello Raphael,

Finally got around to looking at the email.

I believe that option 2 is the correct response. I think the example is 
the same as specifying Transaction 1 [ContextID=ALL,TID=C1], Transaction 
2 [ContextID=ALL, TID=C2], Transaction 3 [ContextID=ALL, TID=C3]. Thus 
section 6.3.2/H.248.1 is relevant.

Please see my comments below.

Regards, Christian

Raphael Tryster wrote:
>
> Consider an MG that has terminations C1, C2 and C3. C1 is in context 
> 1, C2 is in context 2, and C3 is in the null context. What is the 
> correct reply to this transaction?
>
> !/1 [192.168.59.1]:2944 T=2629{
>
> C=*{O-AV=C1{AT{M}}, O-AV=C2{AT{M}}, O-AV=C3{AT{M}}}}
>
> Answer 1:
>
> MEGACO/1 [192.168.59.2]:2944
>
> Reply=2629{
>
> Context=1{
>
> AuditValue=C1{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}},
>
> AuditValue=C2{Error=435{"Termination not in specified context"}},
>
> AuditValue=C3{Error=435{"Termination not in specified context"}}
>
> },
>
> Context=2{
>
> AuditValue=C1{Error=435{"Termination not in specified context"}},
>
> AuditValue=C2{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}},
>
> AuditValue=C3{Error=435{"Termination not in specified context"}}
>
> }
>
> }
>
> Answer 2:
>
> MEGACO/1 [192.168.59.2]:2944
>
> Reply=2629{
>
> Context=1{
>
> AuditValue=C1{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}},
>
> },
>
> Context=2{
>
> AuditValue=C2{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}}
>
> }
>
> }
>
> Answer 3:
>
> MEGACO/1 [192.168.59.2]:2944
>
> Reply=2629{
>
> Context=1{
>
> AuditValue=C1{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}},
>
> AuditValue=C3{Error=431{"No TerminationID matched a wildcard"}}
>
> },
>
> Context=2{
>
> AuditValue=C2{Media{LocalControl{Mode=SendReceive},TerminationState{ServiceStates=InService, 
> Buffer=OFF}}},
>
> AuditValue=C3{Error=431{"No TerminationID matched a wildcard"}}
>
> }
>
> }
>
> Why should it be Answer 1? Although section 7.2.5 says that "the 
> command Context=*{AuditValue=t2/*{Audit{Packages}}} returns 
> Context=1{AuditValue=t2/1{Packages{ccc,ddd}}}, 
> Context=2{AuditValue=t2/2{Packages{ccc,ddd}}}", this case is 
> different, because the terminations are enumerated explicitly, and so 
> a reply is expected for each termination listed, for each context that 
> exists.
>
[CNG] Answer 1 isn't valid. You are correct that the case is different 
because the terminations are specific. Is does say though that using 
ContextID=ALL and TerminationID=specific returns "(Non-NULL) ContextID 
in which the termination currently exists.
>
> Why should it be Answer 2? Because of 6.3.2, "ContextID wildcarded 
> (ALL) with TerminationID specific: In the case where the ContextID is 
> wildcarded (i.e. ContextID = ALL) and the TerminationID is fully 
> specified, the effect is identical to a command specifying the 
> non-NULL context that contains the specified termination. Thus a 
> search must be made to find the context and only one instance of the 
> command is executed. No errors are reported for contexts that do not 
> contain the specified termination".
>
[CNG] I believe Answer 2 is valid.
>
> Why should it be Answer 3? Because 6.3.2 continues, "If the 
> termination is not contained in any (non-NULL) context then Error Code 
> 431 (“No TerminationID matched a wildcard”) is returned".
>
[CNG] Because C3 IS in the NULL context the error wouldn't be generated.
>
> Answer 2 seems to be the most manageable and useful, but that doesn't 
> count for much if an MGC is expecting a different format and will draw 
> wrong conclusions if it doesn’t get it. So, if anyone can see the 
> right answer clearly, I would appreciate it.
>
> Raphael Tryster
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Megaco mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/megaco
>