Subject: RE: [Megaco] Wildcard in ContextId

From: "Tom-PT Taylor" <[email-masked]>
Date: Thu, 6 Sep 2001 14:22:22 -0400

I'd say (2) is correct.  The NULL context is a syntactic convenience, but is
not within the scope of Context = * ...

-----Original Message-----
From: Ian Leighton [mailto:[email-masked]]
Sent: Wednesday, September 05, 2001 5:08 PM
To: [email-masked]
Subject: [Megaco] Wildcard in ContextId

Hi

If a transaction as follows is processed

Transaction = 1 {
    Context = * {
        AuditValue = * { ... },
        Subtract = T1/1
    }
}

and gateway has 3 terminations where  Context 1 contains T1/1
and  the NULL Context contains T1/2.

Which of the following is correct;

1) The audit command is attempted for T1/2 and processing determines
that its Context does not match Context = * which results in a error.
The
Subtract command is not processed.
2) The audit command does not process T1/2 since it is not part of an
active Context.

Regards
Ian Leighton

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

---

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

Tom

So if we have just

T=1{C=*{AV=*{audit{}}}

1) The reply should just be only terminations that are in an active
contexts.
      Actual syntax can be
        P=1{C=1 {AV=t1/1, AV=t1/2, ...}, C=2{AV=.........,
C=last contextID....

        or

        P=1{C=1{AV=context{t1/1, t1/2, .......},
                   C=2{AV=context{........................},
                  C=lastcontext....

       or

           P=1{C=1{AV=context{t1/1, t1/2, .......},
                   C=2{AV=t1/1, AV=t1/2. .....
                  C=lastcontext....

      Are all of the above acceptable?

2) Do we return error for terminations that are not in the active
context?
     This will help determine the original more complex transaction.

---------

Now back to the original transaction and the definition that "*" ==
"ALL" == the command expands
to multiple commands - one for each terminationID both physical and
ephermeral.

  T=1{C=*{AV=T1/1{}, AV=T1/2{}, ......... AV=last terminationId,
Subtract = T1/1}}

How do you not process (term used by Ian and Tom) this command
AV=T1/2{}?
Don't you have to process this command to find out whether it is not in
an active context?
So if the command is process, does a response needed?

Personally I don't want to see any error responses for termination not
in an active context
but it is not clearly stated anyway what the responses should be.

----

Or do we expand context=* first and within in each context/action we
expand the commands for
all terminationIds.
Then do the processing starting w/C=1?

T=1{C=1{AV.......},
           C=2{AV....},
            C=lastcontext{AV....}}

Still I don't see how one would not process AV=T1/2.

----------

Chuong

Tom-PT Taylor wrote:

>
>
> I'd say (2) is correct.  The NULL context is a syntactic convenience,
> but is not within the scope of Context = * ...
>

--
  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 ****

---

From: "VYACHESLAV LVIN" <[email-masked]>
Date: Fri, 07 Sep 2001 11:26:43 -0400

Hi list,

Let me try to formulate "rules of thumb" for processing transactions
with ContextId=* and wildcarded terminations:

case 1 -  First command in Action: List of terminations affected by this
command is a  subset of terminations matching wildcard AND belonging to
not-null contexts:
Example:
T1/1 is in context 1, T1/2 is in context 2,  T2/2 is in context 3, T1/3
is in Null context, then
T=1 {
    C=* {
         AnyCommand=T1/* {..}
     }
}
will be executed on terminations T1/1 and T1/2 ONLY and reply will be
sent for those two terminations.
case 2 -  Subsequent command in Action: List of terminations affected by
this command is a  subset of terminations matching wildcard AND
belonging to contexts first command was executed on.
Example:
T1/1 is in context 1, T1/2 is in context 2,  T2/1 is in context 3, T1/3
is in Null context, then
T=1 {
    C=* {
         AnyCommand_1=T1/* {..},
         AnyCommand_2=* {..}
     }
}

R=1 {
     C=1 { AnyCommand_1=T1/1 {..}},
     C=2 { AnyCommand_1=T1/2 {..}},
     C=1 { AnyCommand_2=T1/1 {..}},
     C=2 { AnyCommand_2=T1/2 {..}}
}

Comments?

Regards,
Vyacheslav

"Chuong N. Nguyen" wrote:

>         P=1{C=1 {AV=t1/1, AV=t1/2, ..}, C=2{AV=.........,
> C=last contextID....
>
>         or
>
> Don't you have to process this command to find out whether it is not
> in an active context?
>> I'd say (2) is correct.  The NULL context is a syntactic
>> convenience, but is not within the scope of Context = * ...
>>