Subject: [Megaco] V3 related clarifications required

From: Sudhanshu Garg <[email-masked]>
Date: Mon, 5 Jun 2006 17:56:32 +0530

Hi,

While going through the H.248.1 V3 I had following queries.
Could someone please answer them. Protocol enhancements are also suggested 
for some of them. Please also comment on them if they are correct and 
feasible or not.

Queries related to context attribute descriptor and context Audit
Query 1:
The context Id list has been introduced in H.248.1 in context attribute 
descriptor.
The usage has also been explained for the auditing purpose in section 
7.2.5. Can the context Id list be used for other command requests as well?

For example if IMGC needs to tear down some calls selectively, can 
following Megaco transaction be used?
MEGACO/3 [x.x.x.x]:x 
Transaction=10001{Context=*{ContextAttr{ContextList={1,2}},Subtract=*{Audit{}}}}

If yes then, what will be the corresponding reply:
a) MEGACO/3 [y.y.y.y]:y 
Reply=10001{Context=*{ContextAttr{ContextList={1,2}},Subtract=*}}
or
b) MEGACO/3 [y.y.y.y]:y Reply=10001{Context=1{Subtract=t1, Subtract=t2}, 
Context=2{Subtract=t3, Subtract=t4}}
or
c) anything else.

And also, it should be mandatory to have wildcarded context ID 
(context=*), if context attribute descriptor has context ID list.

Query 2:
The termination ID list has been introduced in H.248.1 where a 
hierarchical TerminationID structure is not possible.
When service change command request is sent then whether the termination 
ID ROOT can be present with other terminations simultaneously in the 
termination ID list or not.
e.g. MEGACO/3 [y.y.y.y]:y Transaction=2000{Context=-{ServiceChange=[ROOT, 
T1]{Services{Method=Forced, Reason="907 Transmission 
failure",20060602T04044100}}}
It means that termination T1 and MG as a whole are taken out of service 
(where T1 also belongs to same MG) and here taking T1 out of service is 
redundant.

Query 3:
ASN syntax supports sequence of IndAudPropertyParm in 
ContextAttrAuditRequest. Does it mean
a) auditing of multiple packages is allowed
or
b) auditing of only a single package with a selection criteria of multiple 
property parameters is allowed.

If answer is "a" then to audit package P1 and P2 with the selection 
criteria being properties p3, p4 and p5, single action request is 
sufficient and sequence of IndAudPropertyParm in ContextAttrAuditRequest 
should be provided as follows:
Action request 1:
IndAudPropertyParm 1:
        name P1
        propertyParms p3
IndAudPropertyParm 2:
        name P1
        propertyParms p4
IndAudPropertyParm 3:
        name P1
        propertyParms p5
IndAudPropertyParm 4:
        name P2
        propertyParms p3
IndAudPropertyParm 5:
        name P2
        propertyParms p4
IndAudPropertyParm 6:
        name P2
        propertyParms p5

If answer is "b" then to audit package P1 and P2 with the selection 
criteria being properties p3, p4 and p5, two action requests are necessary 
and sequence of IndAudPropertyParm in ContextAttrAuditRequest should be 
provided as follows:
Action request 1:
IndAudPropertyParm 1:
        name P1
        propertyParms p3
IndAudPropertyParm 2:
        name P1
        propertyParms p4
IndAudPropertyParm 3:
        name P1
        propertyParms p5
Action request 2:
IndAudPropertyParm 1:
        name P2
        propertyParms p3
IndAudPropertyParm 2:
        name P2
        propertyParms p4
IndAudPropertyParm 3:
        name P2
        propertyParms p5

On the same hand, the ABNF encoding does not allow me to provide the 
flexibility to audit multiple packages simultaneously.
Snip from ABNF syntax is also attached.
    ; at-most-once except contextAuditSelector
    contextAuditProperties      = (TopologyToken / EmergencyToken /
                                        PriorityToken /IEPSToken/ pkgdName 
/
                                        contextAuditSelector)

Query 4:
In ABNF syntax, the usage of indAudcontextAttrDescriptor in contextAudit 
is not very clear as the individual audit also maps on to 
contextAuditProperties only.
Snip from ABNF syntax is also attached.
    contextAudit                = ContextAuditToken LBRKT 
(contextAuditProperties 
                          *(COMMA contextAuditProperties)) /
                            indAudcontextAttrDescriptor         RBRKT

    indAudcontextAttrDescriptor
                                = ContextAttrToken LBRKT 
contextAuditProperties
                                        *(COMMA contextAuditProperties) 
RBRKT

Query 5:
The usage of context Id list inside the contextAuditSelector (using 
contextAttrDescriptor) is not very clear. The ASN syntax does not have 
context Id list in ContextAttrAuditRequest.
IF context ID list is not required in the contextAuditSelector, then the 
corresponding ABNF should be updated to have list of propertyParm instead 
of contextAttrDescriptor.

Suggested ABNF:
    ; at-most-once
    contextAuditSelector        = priority / emergencyValue / iepsValue / 
                                        contextAttrSelector / 
auditSelectLogic
    contextAttrSelector = ContextAttrToken LBRKT (propertyParm *(COMMA 
propertyParm)) RBRKT

Snip from existing ABNF syntax and ASN syntax  is also attached.
ABNF Syntax:
    contextAudit                = ContextAuditToken LBRKT 
(contextAuditProperties 
                          *(COMMA contextAuditProperties)) /
                            indAudcontextAttrDescriptor         RBRKT

    ; at-most-once except contextAuditSelector
    contextAuditProperties      = (TopologyToken / EmergencyToken /
                                        PriorityToken /IEPSToken/ pkgdName 
/
                                        contextAuditSelector)

    ; at-most-once
    contextAuditSelector        = priority / emergencyValue / iepsValue / 
                                        contextAttrDescriptor / 
auditSelectLogic

    contextAttrDescriptor       = ContextAttrToken LBRKT (contextIdList /
                                        propertyParm *(COMMA 
propertyParm)) RBRKT

ASN Syntax:
    ContextAttrAuditRequest     ::= SEQUENCE
    {
        topology                                NULL OPTIONAL,
        emergency                               NULL OPTIONAL,
        priority                                NULL OPTIONAL,
        …,
        iepscallind                             NULL OPTIONAL,
        contextPropAud                  SEQUENCE OF IndAudPropertyParm 
OPTIONAL,
        selectpriority                  INTEGER(0..15) OPTIONAL,
           -- to select given priority
        selectemergency                 BOOLEAN OPTIONAL,
           -- to select if emergency set/not set (T/F) 
        selectiepscallind                       BOOLEAN OPTIONAL,
           -- to select if IEPS set/not set (T/F)
        selectLogic                             SelectLogic OPTIONAL    -- 
default is AND
    }

    SelectLogic            ::= CHOICE
    {
        andAUDITSelect                  NULL,     -- all filter conditions 
satisfied
        orAUDITSelect                   NULL,     -- at least one filter 
condition satisfied
          …
    }

Regards,
Sudhanshu.
Technical Leader
Flextronics Software Systems
Phone:  +91-124-4176301 extn 5109
Fax: +91-124-4300247
web: www.flextronicssoftware.com

***********************  FSS-Private   ***********************
_______________________________________________
Megaco mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/megaco

---

From: Christian Groves <[email-masked]>
Date: Tue, 20 Jun 2006 15:21:22 +1000

Hello

Please see my answers below marked [CNG].

Regards, Christian

Sudhanshu Garg wrote:

> Could someone please answer them. Protocol enhancements are also 
> suggested for some of them. Please also comment on them if they are 
> correct and feasible or not.
>
> The context Id list has been introduced in H.248.1 in context 
> attribute descriptor.

[CNG] Yes.

> b) MEGACO/3 [y.y.y.y]:y Reply=10001{Context=1{Subtract=t1, 
> Subtract=t2}, Context=2{Subtract=t3, Subtract=t4}}
> or
> c) anything else.
>

[CNG] Context List is used in the reply not the request.

> When service change command request is sent then whether the 
> termination ID ROOT can be present with other terminations 
> simultaneously in the termination ID list or not.
> e.g. MEGACO/3 [y.y.y.y]:y 
> Transaction=2000{Context=-{ServiceChange=[ROOT, 
> It means that termination T1 and MG as a whole are taken out of 
> service (where T1 also belongs to same MG) and here taking T1 out of 
> service is redundant.

[CNG] There isn't text forbidding the use of Root and non-root 
terminations in the same list but mixing the two doesn't seem to be the 
right thing to do. As you point at best its superflous.

> b) auditing of only a single package with a selection criteria of 
> multiple property parameters is allowed.
>
> sufficient and sequence of IndAudPropertyParm in 
> ContextAttrAuditRequest should be provided as follows:
> Action request 1:
> IndAudPropertyParm 1:
>         name P1
>         propertyParms p3
> IndAudPropertyParm 2:
>         name P1
>         propertyParms p4
> IndAudPropertyParm 3:
>         name P1
>         propertyParms p5
> IndAudPropertyParm 4:
>         name P2
>         propertyParms p3
> IndAudPropertyParm 5:
>         name P2
>         propertyParms p4
> IndAudPropertyParm 6:
>         name P2
>         propertyParms p5
>
> criteria being properties p3, p4 and p5, two action requests are 
> necessary and sequence of IndAudPropertyParm in 
> ContextAttrAuditRequest should be provided as follows:
> Action request 1:
> IndAudPropertyParm 1:
>         name P1
>         propertyParms p3
> IndAudPropertyParm 2:
>         name P1
>         propertyParms p4
> IndAudPropertyParm 3:
>         name P1
>         propertyParms p5
> Action request 2:
> IndAudPropertyParm 1:
>         name P2
>         propertyParms p3
> IndAudPropertyParm 2:
>         name P2
>         propertyParms p4
> IndAudPropertyParm 3:
>         name P2
>         propertyParms p5
>
>                                         PriorityToken /IEPSToken/ 
> pkgdName /
>                                         contextAuditSelector)

[CNG] Option a is allowed. IndAudPropertyParm consists of a package 
name/name pair.
Wouldn't the ABNF construct:
 "indAudcontextAttrDescriptor = ContextAttrToken LBRKT 
contextAuditProperties *(COMMA contextAuditProperties) RBRKT
be used?

>
>
>
> Query 4:
> In ABNF syntax, the usage of indAudcontextAttrDescriptor in 
> contextAudit is not very clear as the individual audit also maps on to 
>                                         *(COMMA 
> contextAuditProperties) RBRKT
>
[CNG] Context Audit allows the audit of Context attributes that are hard 
coded into the protocol. e.g. pre-v3. indAudcontextAttrDescriptor allows 
audit of package defined context properties.

> IF context ID list is not required in the contextAuditSelector, then 
> the corresponding ABNF should be updated to have list of propertyParm 
> instead of contextAttrDescriptor.

[CNG] The contextIDlist is only included in the ContextRequest because 
it is used in the reply e.g. contextReply                ContextRequest 
OPTIONAL
as mentioned earlier the contextIDlist is only used in reply not request.

>     contextAttrSelector        = ContextAttrToken LBRKT (propertyParm 
> *(COMMA propertyParm)) RBRKT
>
>
>                                         PriorityToken /IEPSToken/ 
> pkgdName /
>                                         contextAuditSelector)
>
>     ; at-most-once
>         contextPropAud                        SEQUENCE OF 
> IndAudPropertyParm OPTIONAL,
>         selectLogic                                SelectLogic 
> OPTIONAL    -- default is AND
>     }
>
>     SelectLogic            ::= CHOICE
>     {
>         andAUDITSelect                        NULL,     -- all filter 
> conditions satisfied
>         orAUDITSelect                        NULL,     -- at least one 
> filter condition satisfied
>           …
>     }
>
>
> Regards,
> Sudhanshu.
> Technical Leader
>------------------------------------------------------------------------
>