Subject: Re: [Megaco] Auditing the active Contexts

From: Dan Linton <[email-masked]>
Date: Wed, 05 Sep 2001 06:12:59 -0400

List,

Any comments on this?

Thanks,
Dan

Dan Linton wrote:

> Hello,
>
> Section 7.2.5 in the RFC contains a table of ContextID/TerminationID's
> that are allowed with the AuditValue command. Every entry in that table
> makes sense except one: ALL/ROOT (i.e. ContextID = *,
> TerminationID = ROOT).
>
> I'm evaluating this under the fundamental assumption that commands operate
> on terminations in a context and that ROOT should be treated as if it is in the
> NULL context (which can also be found in the table mentioned above). So
> NULL/ROOT yields properties on the gateway and ALL/ALL yields a list
> of contexts and the terminations within the context. Why do we even need
> ALL/ROOT? If it is simply to get a list of active contexts (ALL/ALL effectively
> does that plus more), then I would like to propose a simpler solution. That
> is, disallow ALL/ROOT. Instead, define an ActiveContexts property in the
> Base Root package as a list of ContextIDs. Examples are:
>
> 1)  root/ActiveContexts = {}
>
> 2)  root/ActiveContexts = {1, 2, 8}
>
> Of course, this would be a readonly property. The ROOT properties are
> returned when the MGC audits NULL/ROOT. If the MGC requires more
> information than that about the active contexts, it should use ALL/ALL.
>
> ---------
>
> Shifting gears back to ALL/ROOT. Not only is it a special case that convolutes
> the implementation, I don't think it works. I cannot come up with an appropriate
> reply even taking Section 11.1 of the Implementor's Guide into consideration.
> Each of the examples given here has an issue (documented below).
>
> 1) Action Request:
>       Context = * {AuditValue = ROOT {Audit{}}}
>    Action Replies:
>       Context = 1 {},
>       Context = 2 {}
>
> 2) Action Request:
>       Context = * {AuditValue = ROOT {Audit{}}}
>    Action Replies:
>       Context = 1 {AuditValue = ROOT},
>       Context = 2 {AuditValue = ROOT}
>
> 3) Action Request:
>       Context = * {AuditValue = ROOT {Audit{}}}
>    Action Replies:
>       Context = 1 {AuditValue = Line/1,
>                    AuditValue = RTP/1},
>       Context = 2 {AuditValue = Line/2,
>                    AuditValue = RTP/2}
>
> In Number 1, the replies violate the current ABNF (missing the Command Reply).
> Number 2 repeats the same information inside of each Action Reply. However, the
> larger issue with Number 2 is that ROOT is not in either of the contexts listed. The
> replies for Number 3 are exactly the same as if ALL/ALL had been used in the
> request.
>
> As it currently stands, I don't think there is a valid way to Reply. So we at least need
> to fix that. I like adding a property to root as outlined above. However, I would
> settle for simply disallowing ALL/ROOT (use ALL/ALL instead).
>
> Thanks,
> Dan

---

From: "Ternovsky, Igor" <[email-masked]>
Date: Wed, 5 Sep 2001 12:59:22 +0200

Dan,
 
I like you idea. 'Audit ALL/ROOT' besides being hard to remember is the only
command that violates a concept you mentioned:
command is applied to termination(s) which is eihter in the specified
context or about to be there (Move). 'ALL' does not include NULL context and
ROOT is in NULL.  Guess that the only problem is backward compatibility. So,
the both approaches will have to coexist and the old one can be deprecated
in IG.
 
Igor

-----Original Message-----
From: Dan Linton [mailto:[email-masked]]
Sent: Wed, September 05, 2001 12:13 PM
To: megaco
Subject: Re: [Megaco] Auditing the active Contexts

List, 

Any comments on this? 

Thanks, 
Dan 

Dan Linton wrote: 

Hello, 

I'm evaluating this under the fundamental assumption that commands operate 
on terminations in a context and that ROOT should be treated as if it is in
the 
NULL context (which can also be found in the table mentioned above). So 
NULL/ROOT yields properties on the gateway and ALL/ALL yields a list 
of contexts and the terminations within the context. Why do we even need 
ALL/ROOT? If it is simply to get a list of active contexts (ALL/ALL
effectively 
does that plus more), then I would like to propose a simpler solution. That 
is, disallow ALL/ROOT. Instead, define an ActiveContexts property in the 
Base Root package as a list of ContextIDs. Examples are: 

--------- 

Shifting gears back to ALL/ROOT. Not only is it a special case that
convolutes 
the implementation, I don't think it works. I cannot come up with an
appropriate 
reply even taking Section 11.1 of the Implementor's Guide into
consideration. 
Each of the examples given here has an issue (documented below). 

1) Action Request: 

2) Action Request: 

3) Action Request: 

In Number 1, the replies violate the current ABNF (missing the Command
Reply). 
Number 2 repeats the same information inside of each Action Reply. However,
the 
larger issue with Number 2 is that ROOT is not in either of the contexts
listed. The 
replies for Number 3 are exactly the same as if ALL/ALL had been used in the

request. 

As it currently stands, I don't think there is a valid way to Reply. So we
at least need 
to fix that. I like adding a property to root as outlined above. However, I
would 
settle for simply disallowing ALL/ROOT (use ALL/ALL instead). 

Thanks, 
Dan

---

From: "Chuong N. Nguyen" <[email-masked]>
Date: Thu, 06 Sep 2001 10:08:05 -0500

Sorry

I meant
P=4{C=1{AV=C{t1,t2,t3,...}},
           C=2.....}

> I prefer a more compact reply.
>
> P=4{C=*{AV=ROOT{contextlist{.....}}}
>
> We already have the precedent of the following:
>
>    auditReply           = (AuditValueToken / AuditCapToken )
>                           ( contextTerminationAudit  / auditOther)
>
>    contextTerminationAudit = EQUAL CtxToken ( terminationIDList /
>                           LBRKT errorDescriptor RBRKT )
>
>    terminationIDList    = LBRKT TerminationID *(COMMA TerminationID)
>    RBRKT
>
> So Dan from your earlier email, the Reply example #3 could have been
>
> P=4{C=*{AV=C{t1,t2,t3,...}}}
>
> This is also based on Section 7.2.5
>
> Specifying an empty Audit Descriptor results in
>    only the TerminationID being returned.  This may be useful to get a
>    list of TerminationIDs when used with wildcard.  Annexes A and B
>    provide a special syntax for presenting such a list in condensed
>    form, such that the AuditValue command tag does not have to be
>    repeated for each TerminationID.
>
> The only thing that bugs me is that most MG implementators do not seem to get
> the above
> and keep wanting to return a Reply like Dan's example #3.
>
> If this is true, either we need some clarification in IG or remove the
> contextTerminationAudit
> syntax.
>
> Chuong
>
> Nurit Shenhar wrote:
>
> > Hi Dan
> >
> > Our implementation of the all/root is:
> >
> > MEGACO/1 [10.2.229.18]:2944
> > P=4{
> > C=1{
> > AV=ROOT},
> > C=2{
> > AV=ROOT}}
> >
> > I know that ROOT is considered to be in the NULL context, but it also
> > represents the whole gateway. And besides, when somebody sends this command,
> > he shouldn't care what the termination is. He should only check the context
> > number.
> >
> > Nurit
> >
> > Dan's email
> > >     >
> > >     > 3) Action Request:
> --
>   Alcatel USA, Inc             Internet: [email-masked]
>   1000 Coit Road Plano, Texas 75075           Phone:    (972) 519-4613
>   **** The opinions expressed are not those of Alcatel USA, Inc ****
>
> --------------CF7B6D7A5AF983539A08B672
> Content-Type: text/html; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
> <html>
> &nbsp;
> <br>From Standard
> <br>&nbsp;&nbsp; +-----------+---------------+--------------------------------------+
> <br>&nbsp;&nbsp; | All&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> | List of all ContextIds&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> |
> <br>&nbsp;&nbsp; +-----------+---------------+--------------------------------------+
> <p>I&nbsp;prefer a more compact reply.
> <p>P=4{C=*{AV=ROOT{contextlist{.....}}}
> <p>We already have the precedent of the following:
> <p>&nbsp;&nbsp; auditReply&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> = (AuditValueToken / AuditCapToken )
> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> ( contextTerminationAudit&nbsp; / auditOther)
> <br>&nbsp;
> <br>&nbsp;
> <p>&nbsp;&nbsp; contextTerminationAudit = EQUAL CtxToken ( terminationIDList
> /
> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> LBRKT errorDescriptor RBRKT )
> <p>&nbsp;&nbsp; terminationIDList&nbsp;&nbsp;&nbsp; = LBRKT TerminationID
> *(COMMA TerminationID)
> <br>&nbsp;&nbsp; RBRKT
> <p>So Dan from your earlier email, the Reply example #3 could have been
> <p>P=4{C=*{AV=C{t1,t2,t3,...}}}
> <p>This is also based on Section 7.2.5
> <p><b>Specifying an empty Audit Descriptor results in</b>
> <br><b>&nbsp;&nbsp; only the TerminationID being returned.&nbsp; This may
> be useful to get a</b>
> <br><b>&nbsp;&nbsp; list of TerminationIDs when used with wildcard.&nbsp;
> Annexes A and B</b>
> <br><b>&nbsp;&nbsp; provide a special syntax for presenting such a list
> in condensed</b>
> <br><b>&nbsp;&nbsp; form, such that the AuditValue command tag does not
> have to be</b>
> <br><b>&nbsp;&nbsp; repeated for each TerminationID.</b>
> <p>The only thing that bugs me is that most MG implementators do not seem
> to get the above
> <br>and keep wanting to return a Reply like Dan's example #3.
> <p>If this is true, either we need some clarification in IG or remove the
> contextTerminationAudit
> <br>syntax.
> <p>Chuong
> <br>&nbsp;
> <p>Nurit Shenhar wrote:
> <blockquote TYPE=CITE>Hi Dan
> <p>Our implementation of the all/root is:
> <p>MEGACO/1 [10.2.229.18]:2944
> <br>P=4{
> <br>C=1{
> <br>AV=ROOT},
> <br>C=2{
> <br>AV=ROOT}}
> <p>I know that ROOT is considered to be in the NULL context, but it also
> <br>represents the whole gateway. And besides, when somebody sends this
> command,
> <br>he shouldn't care what the termination is. He should only check the
> context
> <br>number.
> <p>Nurit
> <p>Dan's email
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; > 3) Action Request:
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context
> = * {AuditValue = ROOT {Audit{}}}
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp; Action Replies:
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context
> = 1 {AuditValue = Line/1,
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> AuditValue = RTP/1},
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context
> = 2 {AuditValue = Line/2,
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> AuditValue = RTP/2}
> <br>>&nbsp;&nbsp;&nbsp;&nbsp; >
> <br><a href="http://www1.ietf.org/mailman/listinfo/megaco"></a>&nbsp;
> <br>&nbsp;
> <br>&nbsp;
> <br><a href="http://www1.ietf.org/mailman/listinfo/megaco"></a>&nbsp;</blockquote>
>
> <pre>--&nbsp;
> &nbsp; Alcatel USA, Inc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Internet: [email-masked]
> &nbsp; 1000 Coit Road Plano, Texas 75075&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Phone:&nbsp;&nbsp;&nbsp; (972) 519-4613
> &nbsp; **** The opinions expressed are not those of Alcatel USA, Inc ****</pre>
> &nbsp;</html>
>
> --------------CF7B6D7A5AF983539A08B672--
>
> _______________________________________________
> Megaco mailing list
> [email-masked]
> http://www1.ietf.org/mailman/listinfo/megaco

--
  Alcatel USA, Inc             Internet: [email-masked]
  1000 Coit Road Plano, Texas 75075           Phone:    (972) 519-4613
  **** The opinions expressed are not those of Alcatel USA, Inc ****