[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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.  

 

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".

 

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".

 

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