Subject: [Megaco] Auditing the active Contexts

From: Dan Linton <[email-masked]>
Date: Tue, 28 Aug 2001 12:04:33 -0400

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