Subject: Re: MEGACO reserved names

From: Harpreet Singh Anand <[email-masked]>
Date: Tue, 2 Nov 1999 10:59:32 +0530

Hello Abdallah,

We agree with your observation that making tokens as reserved would simplify
parsing. However, we wanted one clarification - in the mail you have mentioned
that these reserved words can not occur as PackageName or ItemId.  We believe
these are given as examples and that the reserved words can not occur anywhere
else also, for example the reserved words can not occur as eventParameterName,
sigParameterName, pathName, TerminationId etc.

Regards,
Harpreet

Abdallah Rayhan wrote:

> What I want to say is that, you can not use package name called
> "ServiceChange" because it is a token. Same thing applies to
> ItemName, .e.g, ItemName can not be "Transaction". If two packages
> define the same ItemName, then we dont care as long as the package
> name is qualified. Package names and item names are not reserved
> as far as the grammar/parsing is considered but unique when registered
> which is another issue. Packages are similar to libraries where you can have
> more than one library with same name. It does not affect the compiler a bit.
>
> Abdallah
>
> Brian Rosen wrote:
>
> > While I'm not violently against this, I don't think it
> > is helpful to do it.  The rule that drives the design of
> > the parser is that two packages can have the same itemName.
> > I can declare foo in PackA, and also declare foo in PackB.
> > PackB/foo and PackA/foo are different.  Your parser has to
> > deal with this.  That means that the symbols in the symbol
> > table are lexically dependent on prior parsing.  You get no
> > advantage out of knowing that DC (the serviceChange reason) can't occur in
> > togen (as in togen/dc, the C DTMF tone).
> >
> > Brian
> >
> > > -----Original Message-----
> > > From: Abdallah Rayhan [mailto:[email-masked]]
> > > Sent: Friday, October 29, 1999 11:55 AM
> > > To: [email-masked]
> > > Subject: MEGACO reserved names
> > >
> > >
> > > I propose make the following tokens reserved in MEGACO.
> > > This means that they can not be used as stand alone names, e.g.,
> > > PackageName = NAME and ItemID = NAME can not use any
> > > reserved names.
> > >
> > > The reason for this is that it would simplify parsing and
> > > make it easier to
> > > detect ambiguous and syntactically incorrect expressions.
> > >
> > > These names are:
> > > from DigitMapValue: "T", "S", and "L"
> > > from digitMapLetter: "A","B","C","D","S","L",
> > > "K0","K1","K2","S0","S1","S2", and
> > > "S3"
> > >
> > > the rest are,
> > >
> > > ActionToken                = ("Action"                | "AN")
> > > AccumulateToken            = ("Accumulate"            | "AM")
> > > AddToken                   = ("Add"                   | "A")
> > > AuditToken                 = ("Audit"                 | "AT")
> > > AuditCapToken              = ("AuditCapability"       | "AC")
> > > AuditValueToken            = ("AuditValue"            | "AV")
> > > AuthToken                  = ("Authentication"        | "AU")
> > > BothwayToken               = ("Bothway"               | "BW")
> > > BriefToken                 = ("Brief"                 | "BR")
> > > BufferedEventHandlingToken = ("BufferedEventHandling" | "BE")
> > > CtxToken                   = ("Context"               | "C")
> > > DigitMapToken              = ("DigitMap"              | "DM")
> > > DiscardToken               = ("Discard"               | "DS")
> > > DisconnectedToken          = ("Disconnected"          | "DC")
> > > DelayToken                 = ("Delay"                 | "DL")
> > > DeleteToken                = ("Delete"                | "DE")
> > > DurationToken              = ("Duration"              | "DR")
> > > EmergencyToken             = ("Emergency"             | "EM")
> > > ErrorToken                 = ("Error"                 | "ER")
> > > EventsDescriptorToken      = ("Events"                | "E")
> > > FailoverToken              = ("Failover"              | "FL")
> > > ForcedToken                = ("Forced"                | "FO")
> > > GracefulToken              = ("Graceful"              | "GR")
> > > H221Token                  = ("H221" )
> > > H223Token                  = ("H223" )
> > > H226Token                  = ("H226" )
> > > HandOffToken               = ("HandOff"               | "HO")
> > > InactiveToken              = ("Inactive"              | "IN")
> > > IsolateToken               = ("Isolate"               | "IS")
> > > InSvcToken                 = ("InService"             | "IV")
> > > KeepActiveToken            = ("KeepActive"            | "KA")
> > > LocalToken                 = ("Local"                 | "L")
> > > LocalControlToken          = ("LocalControl"          | "O")
> > > LoopbackToken              = ("Loopback"              | "LB")
> > > LoopToken                  = ("Loop"                  | "LP")
> > > MediaToken                 = ("Media"                 | "M")
> > > MegacopToken               = ("MEGACO"                | "!")
> > > MethodToken                = ("Method"                | "MT")
> > > MgcIdToken                 = ("MgcIdToTry"            | "MG")
> > > ModeToken                  = ("Mode"                  | "MO")
> > > ModifyToken                = ("Modify"                | "MF")
> > > ModemToken                 = ("Modem"                 | "MD")
> > > MoveToken                  = ("Move"                  | "MV")
> > > MuxToken                   = ("Mux"                   | "MX")
> > > NotifyActionToken          = ("NotifyAction"          | "NA")
> > > NotifyToken                = ("Notify"                | "N")
> > > ObservedEventsToken        = ("ObservedEvents"        | "OE")
> > > OnewayToken                = ("Oneway"                | "OW")
> > > OnOffToken                 = ("OnOff"                 | "OO")
> > > OutOfSvcToken              = ("OutOfService"          | "OS")
> > > PackagesToken              = ("Packages"              | "PG")
> > > PendingToken               = ("Pending"               | "PN")
> > > PriorityToken              = ("Priority"              | "PR")
> > > ProcessToken               = ("Process"               | "PC")
> > > ProfileToken               = ("Profile"               | "PF")
> > > ReasonToken                = ("Reason"                | "RE")
> > > RecvonlyToken              = ("ReceiveOnly"           | "RC")
> > > ReplyToken                 = ("Reply"                 | "P")
> > > RestartToken               = ("Restart"               | "RS")
> > > RemoteToken                = ("Remote"                | "R")
> > > SdpToken                   = ("SDP"                   | "D")
> > > SignalsDescriptorToken     = ("Signals"               | "SG")
> > > SignalListToken            = ("SignalList"            | "SL")
> > > SignalTypeToken            = ("SignalType"            | "SY")
> > > SendonlyToken              = ("SendOnly"              | "SO")
> > > SendrecvToken              = ("SendReceive"           | "SR")
> > > ServicesToken              = ("Services"              | "SV")
> > > ServiceStatesToken         = ("ServiceStates"         | "SI")
> > > ServiceChangeToken         = ("ServiceChange"         | "SC")
> > > ServiceChangeAddressToken  = ("ServiceChangeAddress"  | "AD")
> > > StatsToken                 = ("Statistics"            | "SA")
> > > StepToken                  = ("Step"                  | "SP")
> > > StreamToken                = ("Stream"                | "ST")
> > > SubtractToken              = ("Subtract"              | "S")
> > > SynchISDNToken             = ("SynchISDN"             | "SN")
> > > TagValueToken              = ("TagValue"              | "TV")
> > > TerminationStateToken      = ("TerminationState"      | "TS")
> > > TestToken                  = ("Test"                  | "TE")
> > > TimeOutToken               = ("TimeOut"               | "TO")
> > > TopologyToken              = ("Topology"              | "TP")
> > > TransToken                 = ("Transaction"           | "T")
> > > V18Token                   = ("V18")
> > > V22Token                   = ("V22")
> > > V22bisToken                = ("V22b")
> > > V32Token                   = ("V32")
> > > V32bisToken                = ("V32b")
> > > V34Token                   = ("V34")
> > > V90Token                   = ("V90")
> > > V91Token                   = ("V91")
> > >
> > > regards
> > > Abdallah Rayhan
> > >

--

Regards,
Harpreet

_________________________________
Harpreet Singh Anand
Ficon Technology
E-mail :  mailto:[email-masked]
Web    :  http://www.ficon-tech.com

---

From: Pete Cordell <[email-masked]>
Date: Tue, 2 Nov 1999 11:25:27 -0000

A question...

If the parsing of the protocol is predicated on knowing what are reserved
words, surely that means that new reserved words can not be added and hence
the protocol becomes un-extendable.  This sounds rather dangerous to me.
But maybe I've missed something.

Pete

=============================================
Pete Cordell
[email-masked]
=============================================

-----Original Message-----
From: Harpreet Singh Anand <[email-masked]>
To: [email-masked]
<[email-masked]>
Date: 02 November 1999 05:42
Subject: Re: MEGACO reserved names

---

From: Tom-PT Taylor <[email-masked]>
Date: Wed, 3 Nov 1999 08:22:39 -0500

I think reserving names could be real trouble.  The number of possible one-
and two-letter combinations is pretty limited, so we would back ourselves
into a corner pretty quickly.

> From: Greene, Nancy-M [CAR:5N10:EXCH]
> Sent: Tuesday, November 02, 1999 2:50 PM
> To:   [email-masked]
> The protocol is extendable. In the text encoding of the protocol, you can
> extend the commands and parameters by prefixing the new
> commands/parameters with "X-".
>
> On the issue of Megaco reserved names - I think we need to state in
> section 12 on Packages,  that the PackageName part of the pkgdName MUST be
> present to qualify the ItemID. If we do this then I think we are ok. We
> only need to ensure that PackageName/ItemID (=pkgdName) is not a Megaco
> reserved word, and since PackageName/ItemID always has a "/" in it, and no
> Megaco reserved word has a slash, there is no problem.
>
> Nancy
> --------------------------------------------------------------------------
>
> Nancy M. Greene
> Internet & Service Provider Networks, Nortel Networks
> T:514-271-7221 (internal:ESN853-1077) E:[email-masked]
>
>       ----------
> From:   Pete Cordell[SMTP:[email-masked]]
> Sent:   Tuesday, November 02, 1999 6:25 AM
> To:     [email-masked]