Subject: RE: [Megaco] FW: Disabling all Events

From: "Tom-PT Taylor"<[email-masked]>
Date: Wed, 10 Apr 2002 18:30:12 -0400

I'm surprised no one has brought this up before, though I have the vaguest
memory of a discussion a couple of years ago in which I favoured this
syntax.  (Whether I did or not, it looks a bit irregular to me now.)  It
certainly appears that you are right, but perhaps it is an item for an
Implementor's Guide correction in the syntax to allow the empty braces.

-----Original Message-----
From: Sudhir Kumar Appana [mailto:[email-masked]]
Sent: Wednesday, April 10, 2002 2:13 PM
To: [email-masked]
Cc: Sudhir (E-mail)
Subject: [Megaco] FW: Disabling all Events

Tom,
Can you reply for this doubt.
Thanks,
Sudhir

-----Original Message-----
From: Sudhir Kumar Appana [mailto:[email-masked]]
Sent: Wednesday, April 10, 2002 4:44 PM
To: [email-masked]
Cc: Sudhir (E-mail)
Subject: Disabling all Events

Hi,

Is MGC can send the following packet to disable all Events that were
previously
activated:

Transaction = 1 {
       Context = - {
           Modify = TermA {
               Events             ; just events token
        }
    }
}

Is the above packet is a valid. As far as syntax is considered, it is valid.

As far as I know, just Events token will be used by MG as a reply to
AuditValue Transaction if no Event(s) were activated.

Thanks,
Sudhir

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

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

---

From: Terry L Anderson <[email-masked]>
Date: Thu, 11 Apr 2002 11:52:15 -0400

This was discussed and the syntax was changed through the implementors guide to
this form rather than an empty {}.  The issue was avoiding the need for a
RequestID when no real event is being specified.  The alternative would have
been
    Events = 1234 {}
But since there would be no event to tigger a notify it seems pointless to
allocate the id.  Allowing
    Event {}
with no '=' would be too much of a deviation in form

--

------------------------------------------------------------
Terry L Anderson              mailto:[email-masked]
Tel:732.949.5628   Fax:732.949.7016
Lucent Technologies/INS/Voice Over IP Access Networks
Rm 2G-219A, 101 Crawfords Corner Rd, Holmdel, NJ 07733-3030
http://its.lucent.com/~tla (Lucent internal) http://www.gti.net/tla

---

From: Terry L Anderson <[email-masked]>
Date: Thu, 11 Apr 2002 11:52:15 -0400

--

---

From: Troy Cauble <[email-masked]>
Date: Thu, 11 Apr 2002 15:19:37 -0400

> with no '=' would be too much of a deviation in form

Terry,

This reminds me...
Last June I pointed out that the change to which you are
referring (IG 6.79) broke the ABNF in a fairly serious way.

Here's an example.  The EventsToken below could be
one of two things.

MEGACO/1 [135.114.123.123]:1234
Reply = 5000 {
  Context = 1 {
    Add = t1 {
      Events    ; this could be an empty eventsDescriptor
                ; OR an auditItem
    }
  }
}

Last October, at your suggestion, I tried to revive the
thread, but no one responded.  Below I am attaching the 
last post on the subject.

-troy

Subject: Re: IG 6.79 "Cancelling Event Detection" breaks ABNF
From: Troy Cauble <[email-masked]>
To: "Rosen, Brian" <[email-masked]>, Tom-PT Taylor <[email-masked]>, "[email-masked]'" <[email-masked]>, MEGACO list <[email-masked]>
Date: Tue, 09 Oct 2001 12:40:27 -0400

Greetings,

This old thread had some fairly serious problems that were never
resolved.  I am proposing changes for the problems in the text
encoding.  There is a larger issue to the ASN.1 problems -- I
will start another thread for that.

BACKGROUND

I'm told that auditItem's use in auditReturnParameter is to
represent empty descriptors.

   auditReturnParameter = (mediaDescriptor / modemDescriptor /
                           muxDescriptor / eventsDescriptor /
                           signalsDescriptor / digitMapDescriptor /
                     observedEventsDescriptor / eventBufferDescriptor /
                           statisticsDescriptor / packagesDescriptor /
                            errorDescriptor / auditItem )

   auditItem            = ( MuxToken / ModemToken / MediaToken /
                           SignalsToken / EventBufferToken /
                           DigitMapToken / StatsToken / EventsToken /
                           ObservedEventsToken / PackagesToken )

But some of the descriptors in auditReturnParameter already have
empty forms.  This is the crux of problems #1, #2 (text) and #4 below.

PROPOSED CHANGES that fix #1, #2 (text) and #4 below

   signalsDescriptor    = SignalsToken [ LBRKT signalParm
                          *(COMMA signalParm) RBRKT ]

   auditReturnParameter = (mediaDescriptor / modemDescriptor /
                           muxDescriptor / eventsDescriptor /
                           signalsDescriptor / digitMapDescriptor /
                     observedEventsDescriptor / eventBufferDescriptor /
                           statisticsDescriptor / packagesDescriptor /
                            errorDescriptor / auditReturnItem )

   auditReturnItem      = ( MuxToken / ModemToken / MediaToken /
                           DigitMapToken / StatsToken /
                           ObservedEventsToken / PackagesToken )

   auditItem            = ( auditReturnItem / SignalsToken /
                           EventBufferToken / EventsToken )

An alternative approach would be to create empty forms for
the other 7 descriptors represented by auditItem and remove
the auditItem from auditReturnParameter.  But then those 
empty forms could be used elsewhere (ammParameter, notifyRequest) 
where they're apparantly not needed.

-troy

Troy Cauble wrote:
> 
> A summary of the problems discussed in this thread.
> 
> 1) In the text encoding, some empty descriptors have the form
>    "Signals {}" while others have "Events".
> 
> In a Termination Audit:
> 
> 2) There are two line encodings for an empty Signals descriptor
>    (text and ASN.1).
> 
> 3) There are two line encodings each for an empty Events descriptor
>    or Event Buffer descriptor (ASN.1 only).
> 
> 4) In the text encoding, EventsToken and EventBufferToken each
>    have reduce/reduce conflicts because they can represent either
>    an auditItem token or an empty descriptor in the auditReturnParameter.
> 
> -troy
> 
> 
> 
> "Rosen, Brian" wrote:
> >
> > I agree with Tom; we did a pass over the ABNF to try to make
> > all of the empty forms not have braces.  The choice was
> > completely arbitrary, and as I recall, we decided since it
> > didn't make any real difference, shorter was better.
> > If we missed one, we goofed.
> >
> > Tom, the problem here seems to be real.  As Troy says, you will get
> > a reduce conflict in a rules-based parser with this ambiguity.
> > I'm pretty sure you can ignore the problem, but it's poor design
> > practice.  You will recall all of the effort Abdallah and Nancy
> > went through to test out these kinds of things as we developed
> > the ABNF.  The IG change wasn't verified in the same way, thus
> > we have this problem.  We need to decide what to do.
> >
> > Brian
> >
> > > > Tom-PT Taylor wrote:
> > > >
> > > > I'm the one responsible for all this.  I suppose I should
> > > dig up the thread.
> > > > Anyway, the intention was definitiely to provide a way of
> > > signalling empty
> > > > descriptors.  I think we chose rather arbitrarily between
> > > the desc{} and desc
> > > > form, opting for the latter.
> > >

---

From: Troy Cauble <[email-masked]>
Date: Thu, 11 Apr 2002 15:19:37 -0400

Terry,

This reminds me...

-troy

Greetings,

BACKGROUND

-troy