diff options
Diffstat (limited to 'lib/megaco/src/text/megaco_text_tokens.hrl')
-rw-r--r-- | lib/megaco/src/text/megaco_text_tokens.hrl | 475 |
1 files changed, 475 insertions, 0 deletions
diff --git a/lib/megaco/src/text/megaco_text_tokens.hrl b/lib/megaco/src/text/megaco_text_tokens.hrl new file mode 100644 index 0000000000..14f59c3f06 --- /dev/null +++ b/lib/megaco/src/text/megaco_text_tokens.hrl @@ -0,0 +1,475 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2000-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% + +%% +%%---------------------------------------------------------------------- +%% Purpose: Define of tokens used in text encoding of Megaco/H.248 +%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Adding a new token requires changes in the following files: +%% +%% megaco_text_tokens.hrl +%% megaco_text_gen.hrl +%% megaco_compact_text_encoder.erl +%% megaco_pretty_text_encoder.erl +%% megaco_text_scanner.erl +%% megaco_text_parser.yrl (safeToken rule, make_safe_token/1, actual rule) +%% +%% Plus regeneration the ASN.1 related files including +%% manual patches +%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Special records +%%---------------------------------------------------------------------- + +-record(property_parm, + { + name, + value, + extraInfo = asn1_NOVALUE + }). + + + +%%---------------------------------------------------------------------- +%% Special characters +%%---------------------------------------------------------------------- + +-define(EqualToken, 16#3d). +-define(ColonToken, 16#3a). +-define(LbrktToken, 16#7b). +-define(RbrktToken, 16#7d). +-define(LsbrktToken, $[). +-define(RsbrktToken, $]). +-define(CommaToken, 16#2c). +-define(DotToken, 16#2e). +-define(SlashToken, 16#2f). +-define(DoubleQuoteToken, 16#22). +-define(SpToken, 16#20). +-define(HtabToken, 16#09). +-define(CrToken, 16#0d). +-define(LfToken, 16#0a). + +-define(SemiColonToken, $;). +-define(NequalToken, $#). +-define(GreaterToken, $>). +-define(LesserToken, $<). +-define(BackslashToken, $\\). +-define(LparToken, $(). +-define(RparToken, $)). +-define(VbarToken, $|). + +%%---------------------------------------------------------------------- +%% Pretty version of tokens +%%---------------------------------------------------------------------- + +-define(PrettyAddToken , "Add" ). +-define(PrettyAndAUDITSelectToken , "ANSLgc" ). +-define(PrettyAuditToken , "Audit" ). +-define(PrettyAuditCapToken , "AuditCapability" ). +-define(PrettyAuditValueToken , "AuditValue" ). +-define(PrettyAuthToken , "Authentication" ). +-define(PrettyBothToken , "Both" ). % v3 +-define(PrettyBothwayToken , "Bothway" ). +-define(PrettyBriefToken , "Brief" ). +-define(PrettyBufferToken , "Buffer" ). +-define(PrettyCtxToken , "Context" ). +-define(PrettyContextAuditToken , "ContextAudit" ). +-define(PrettyContextAttrToken , "ContextAttr" ). % v3 +-define(PrettyContextListToken , "ContextList" ). % v3 +-define(PrettyDigitMapToken , "DigitMap" ). +-ifdef(encoder_version_pre_prev3c). +-define(PrettyDirectionToken , "Direction" ). % v3 +-else. +-define(PrettyDirectionToken , "SPADirection" ). % v3 +-endif. +-define(PrettyDiscardToken , "Discard" ). +-define(PrettyDisconnectedToken , "Disconnected" ). +-define(PrettyDelayToken , "Delay" ). +-define(PrettyDurationToken , "Duration" ). +-define(PrettyEmbedToken , "Embed" ). +-define(PrettyEmergencyToken , "Emergency" ). +-ifdef(encoder_version_pre_prev3c). +-define(PrettyEmergencyOffToken , "EmergencyOffToken" ). % v2 +-else. +-define(PrettyEmergencyOffToken , "EmergencyOff" ). % v3 +-endif. +-define(PrettyEmergencyValueToken , "EmergencyValue" ). % v3 +-define(PrettyErrorToken , "Error" ). +-define(PrettyEventBufferToken , "EventBuffer" ). +-define(PrettyEventsToken , "Events" ). +-define(PrettyExternalToken , "External" ). % v3 +-define(PrettyFailoverToken , "Failover" ). +-define(PrettyForcedToken , "Forced" ). +-define(PrettyGracefulToken , "Graceful" ). +-define(PrettyH221Token , "H221" ). +-define(PrettyH223Token , "H223" ). +-define(PrettyH226Token , "H226" ). +-define(PrettyHandOffToken , "HandOff" ). +-define(PrettyIEPSToken , "IEPSCall" ). % v3 +-define(PrettyImmAckRequiredToken , "ImmAckRequired" ). +-define(PrettyInactiveToken , "Inactive" ). +-define(PrettyInternalToken , "Internal" ). % v3 +-define(PrettyIntsigDelayToken , "Intersignal" ). % v3 +-define(PrettyInterruptByEventToken , "IntByEvent" ). +-define(PrettyInterruptByNewSignalsDescrToken, "IntBySigDescr" ). +-define(PrettyIsolateToken , "Isolate" ). +-define(PrettyInSvcToken , "InService" ). +-define(PrettyIterationToken , "Iteration" ). % v3 +-define(PrettyKeepActiveToken , "KeepActive" ). +-define(PrettyLocalToken , "Local" ). +-define(PrettyLocalControlToken , "LocalControl" ). +-define(PrettyLockStepToken , "LockStep" ). +-define(PrettyLoopbackToken , "Loopback" ). +-define(PrettyMediaToken , "Media" ). +-define(PrettyMegacopToken , "MEGACO" ). +-define(PrettyMessageSegmentToken , "Segment" ). % v3 +-define(PrettyMethodToken , "Method" ). +-define(PrettyMgcIdToken , "MgcIdToTry" ). +-define(PrettyModeToken , "Mode" ). +-define(PrettyModifyToken , "Modify" ). +-define(PrettyModemToken , "Modem" ). +-define(PrettyMoveToken , "Move" ). +-define(PrettyMtpToken , "MTP" ). +-define(PrettyMuxToken , "Mux" ). +-define(PrettyNeverNotifyToken , "NeverNotify" ). % v3 +-define(PrettyNotifyToken , "Notify" ). +-define(PrettyNotifyCompletionToken , "NotifyCompletion" ). +-define(PrettyNotifyImmediateToken , "ImmediateNotify" ). % v3 +-define(PrettyNotifyRegulatedToken , "RegulatedNotify" ). % v3 +-define(PrettyNx64kToken , "Nx64Kservice" ). +-define(PrettyObservedEventsToken , "ObservedEvents" ). +-define(PrettyOffToken , "OFF" ). +-define(PrettyOnewayToken , "Oneway" ). +-define(PrettyOnewayBothToken , "OnewayBoth" ). % v3 +-define(PrettyOnewayExternalToken , "OnewayExternal" ). % v3 +-define(PrettyOnOffToken , "OnOff" ). +-define(PrettyOrAUDITselectToken , "ORLgc" ). % v3 +-define(PrettyOnToken , "ON" ). +-define(PrettyOtherReasonToken , "OtherReason" ). +-define(PrettyOutOfSvcToken , "OutOfService" ). +-define(PrettyPackagesToken , "Packages" ). +-define(PrettyPendingToken , "Pending" ). +-define(PrettyPriorityToken , "Priority" ). +-define(PrettyProfileToken , "Profile" ). +-define(PrettyReasonToken , "Reason" ). +-define(PrettyRecvonlyToken , "ReceiveOnly" ). +-define(PrettyReplyToken , "Reply" ). +-define(PrettyResetEventsDescriptorToken , "ResetEventsDescriptor" ). % v3 +-define(PrettyRestartToken , "Restart" ). +-define(PrettyRemoteToken , "Remote" ). +-ifdef(encoder_version_pre_prev3c). +-define(PrettyRequestIDToken , "RequestID" ). % v3 +-else. +-define(PrettyRequestIDToken , "SPARequestID" ). % v3 +-endif. +-define(PrettyReservedGroupToken , "ReservedGroup" ). +-define(PrettyReservedValueToken , "ReservedValue" ). +-define(PrettySegmentationCompleteToken , "END" ). % v3 +-define(PrettySendonlyToken , "SendOnly" ). +-define(PrettySendrecvToken , "SendReceive" ). +-define(PrettyServicesToken , "Services" ). +-define(PrettyServiceStatesToken , "ServiceStates" ). +-define(PrettyServiceChangeToken , "ServiceChange" ). +-define(PrettyServiceChangeAddressToken , "ServiceChangeAddress" ). +-define(PrettyServiceChangeIncompleteToken , "ServiceChangeInc" ). % v3 +-define(PrettySignalListToken , "SignalList" ). +-define(PrettySignalsToken , "Signals" ). +-define(PrettySignalTypeToken , "SignalType" ). +-define(PrettyStatsToken , "Statistics" ). +-define(PrettyStreamToken , "Stream" ). +-define(PrettySubtractToken , "Subtract" ). +-define(PrettySynchISDNToken , "SynchISDN" ). +-define(PrettyTerminationStateToken , "TerminationState" ). +-define(PrettyTestToken , "Test" ). +-define(PrettyTimeOutToken , "TimeOut" ). +-define(PrettyTopologyToken , "Topology" ). +-define(PrettyTransToken , "Transaction" ). +-define(PrettyResponseAckToken , "TransactionResponseAck"). +-define(PrettyV18Token , "V18" ). +-define(PrettyV22Token , "V22" ). +-define(PrettyV22bisToken , "V22b" ). +-define(PrettyV32Token , "V32" ). +-define(PrettyV32bisToken , "V32b" ). +-define(PrettyV34Token , "V34" ). +-define(PrettyV76Token , "V76" ). +-define(PrettyV90Token , "V90" ). +-define(PrettyV91Token , "V91" ). +-define(PrettyVersionToken , "Version" ). + +%%---------------------------------------------------------------------- +%% Compact version of tokens +%%---------------------------------------------------------------------- + +-define(CompactAddToken , "A" ). +-define(CompactAndAUDITSelectToken , "ANSLgc" ). +-define(CompactAuditToken , "AT" ). +-define(CompactAuditCapToken , "AC" ). +-define(CompactAuditValueToken , "AV" ). +-define(CompactAuthToken , "AU" ). +-define(CompactBothToken , "B" ). % v3 +-define(CompactBothwayToken , "BW" ). +-define(CompactBriefToken , "BR" ). +-define(CompactBufferToken , "BF" ). +-define(CompactCtxToken , "C" ). +-define(CompactContextAuditToken , "CA" ). +-define(CompactContextAttrToken , "CT" ). % v3 +-define(CompactContextListToken , "CLT" ). % v3 +-define(CompactDigitMapToken , "DM" ). +-ifdef(encoder_version_pre_prev3c). +-define(CompactDirectionToken , "DI" ). % v3 +-else. +-define(CompactDirectionToken , "SPADI" ). % v3 +-endif. +-define(CompactDiscardToken , "DS" ). +-define(CompactDisconnectedToken , "DC" ). +-define(CompactDelayToken , "DL" ). +-define(CompactDurationToken , "DR" ). +-define(CompactEmbedToken , "EM" ). +-define(CompactEmergencyToken , "EG" ). +-define(CompactEmergencyOffToken , "EGO" ). +-define(CompactEmergencyValueToken , "EGV" ). % v3 +-define(CompactErrorToken , "ER" ). +-define(CompactEventBufferToken , "EB" ). +-define(CompactEventsToken , "E" ). +-define(CompactExternalToken , "EX" ). % v3 +-define(CompactFailoverToken , "FL" ). +-define(CompactForcedToken , "FO" ). +-define(CompactGracefulToken , "GR" ). +-define(CompactH221Token , ?PrettyH221Token ). +-define(CompactH223Token , ?PrettyH223Token ). +-define(CompactH226Token , ?PrettyH226Token ). +-define(CompactHandOffToken , "HO" ). +-define(CompactIEPSToken , "IEPS" ). % v3 +-define(CompactImmAckRequiredToken , "IA" ). +-define(CompactInactiveToken , "IN" ). +-define(CompactInternalToken , "IT" ). % v3 +-define(CompactIntsigDelayToken , "SPAIS" ). % v3 +-define(CompactInterruptByEventToken , "IBE" ). +-define(CompactInterruptByNewSignalsDescrToken, "IBS" ). +-define(CompactIsolateToken , "IS" ). +-define(CompactInSvcToken , "IV" ). +-define(CompactIterationToken , "IR" ). % v3 +-define(CompactKeepActiveToken , "KA" ). +-define(CompactLocalToken , "L" ). +-define(CompactLocalControlToken , "O" ). +-define(CompactLockStepToken , "SP" ). +-define(CompactLoopbackToken , "LB" ). +-define(CompactMediaToken , "M" ). +-define(CompactMegacopToken , "!" ). +-define(CompactMessageSegmentToken , "SM" ). % v3 +-define(CompactMethodToken , "MT" ). +-define(CompactMgcIdToken , "MG" ). +-define(CompactModeToken , "MO" ). +-define(CompactModifyToken , "MF" ). +-define(CompactModemToken , "MD" ). +-define(CompactMoveToken , "MV" ). +-define(CompactMtpToken , ?PrettyMtpToken ). +-define(CompactMuxToken , "MX" ). +-define(CompactNeverNotifyToken , "NBNN" ). % v3 +-define(CompactNotifyToken , "N" ). +-define(CompactNotifyCompletionToken , "NC" ). +-define(CompactNotifyImmediateToken , "NBIN" ). % v3 +-define(CompactNotifyRegulatedToken , "NBRN" ). % v3 +-define(CompactNx64kToken , "N64" ). +-define(CompactObservedEventsToken , "OE" ). +-define(CompactOffToken , "OFF" ). +-define(CompactOnewayToken , "OW" ). +-define(CompactOnewayBothToken , "OWB" ). % v3 +-define(CompactOnewayExternalToken , "OWE" ). % v3 +-define(CompactOnOffToken , "OO" ). +-define(CompactOrAUDITselectToken , "ORLgc" ). % v3 +-define(CompactOnToken , "ON" ). +-define(CompactOtherReasonToken , "OR" ). +-define(CompactOutOfSvcToken , "OS" ). +-define(CompactPackagesToken , "PG" ). +-define(CompactPendingToken , "PN" ). +-define(CompactPriorityToken , "PR" ). +-define(CompactProfileToken , "PF" ). +-define(CompactReasonToken , "RE" ). +-define(CompactRecvonlyToken , "RC" ). +-define(CompactReplyToken , "P" ). +-define(CompactResetEventsDescriptorToken , "RSE" ). % v3 +-define(CompactRestartToken , "RS" ). +-define(CompactRemoteToken , "R" ). +-ifdef(encoder_version_pre_prev3c). +-define(CompactRequestIDToken , "RQ" ). % v3 +-else. +-define(CompactRequestIDToken , "SPARQ" ). % v3 +-endif. +-define(CompactReservedGroupToken , "RG" ). +-define(CompactReservedValueToken , "RV" ). +-define(CompactSegmentationCompleteToken , "&" ). % v3 +-define(CompactSendonlyToken , "SO" ). +-define(CompactSendrecvToken , "SR" ). +-define(CompactServicesToken , "SV" ). +-define(CompactServiceStatesToken , "SI" ). +-define(CompactServiceChangeToken , "SC" ). +-define(CompactServiceChangeAddressToken , "AD" ). +-define(CompactServiceChangeIncompleteToken , "SIC" ). % v3 +-define(CompactSignalListToken , "SL" ). +-define(CompactSignalsToken , "SG" ). +-define(CompactSignalTypeToken , "SY" ). +-define(CompactStatsToken , "SA" ). +-define(CompactStreamToken , "ST" ). +-define(CompactSubtractToken , "S" ). +-define(CompactSynchISDNToken , "SN" ). +-define(CompactTerminationStateToken , "TS" ). +-define(CompactTestToken , "TE" ). +-define(CompactTimeOutToken , "TO" ). +-define(CompactTopologyToken , "TP" ). +-define(CompactTransToken , "T" ). +-define(CompactResponseAckToken , "K" ). +-define(CompactV18Token , ?PrettyV18Token ). +-define(CompactV22Token , ?PrettyV22Token ). +-define(CompactV22bisToken , ?PrettyV22bisToken ). +-define(CompactV32Token , ?PrettyV32Token ). +-define(CompactV32bisToken , ?PrettyV32bisToken ). +-define(CompactV34Token , ?PrettyV34Token ). +-define(CompactV76Token , ?PrettyV76Token ). +-define(CompactV90Token , ?PrettyV90Token ). +-define(CompactV91Token , ?PrettyV91Token ). +-define(CompactVersionToken , "V" ). + +-define(white_space(Char), ((Char) =:= ?SpToken) orelse ((Char) =:= ?HtabToken)). +-define(end_of_line(Char), ((Char) =:= ?LfToken) orelse ((Char) =:= ?CrToken)). + +-define(classify_char(Char), + (case Char of + $+ -> safe_char; + $- -> safe_char; + $& -> safe_char; + $! -> safe_char; + $_ -> safe_char; + $/ -> safe_char; + $' -> safe_char; + $? -> safe_char; + $@ -> safe_char; + $^ -> safe_char; + $` -> safe_char; + $~ -> safe_char; + $* -> safe_char; + $$ -> safe_char; + ?BackslashToken -> safe_char; + ?LparToken -> safe_char; + ?RparToken -> safe_char; + $% -> safe_char; + ?VbarToken -> safe_char; + $. -> safe_char; + ?SemiColonToken -> rest_char; + ?LsbrktToken -> rest_char; + ?RsbrktToken -> rest_char; + ?LbrktToken -> rest_char; + ?RbrktToken -> rest_char; + ?ColonToken -> rest_char; + ?CommaToken -> rest_char; + ?NequalToken -> rest_char; + ?LesserToken -> rest_char; + ?GreaterToken -> rest_char; + ?EqualToken -> rest_char; + ?DoubleQuoteToken -> double_quote; + ?SpToken -> white_space; + ?HtabToken -> white_space; + ?LfToken -> end_of_line; + ?CrToken -> end_of_line; + _ when (Char >= $0) andalso (Char =< $9) -> safe_char; + _ when (Char >= $a) andalso (Char =< $z) -> safe_char; + _ when (Char >= $A) andalso (Char =< $Z) -> safe_char_upper; + _ -> bad_char + end)). + +-define(classify_char2(Char), + (case Char of + ?SemiColonToken -> rest_char; + ?LsbrktToken -> rest_char; + ?RsbrktToken -> rest_char; + ?LbrktToken -> rest_char; + ?RbrktToken -> rest_char; + ?ColonToken -> rest_char; + ?CommaToken -> rest_char; + ?NequalToken -> rest_char; + ?LesserToken -> rest_char; + ?GreaterToken -> rest_char; + ?EqualToken -> rest_char; + ?SpToken -> white_space; + ?HtabToken -> white_space; + ?LfToken -> end_of_line; + ?CrToken -> end_of_line; + _ -> no_skip_char + end)). + +-define(classify_char3(Char), + (case Char of + $+ -> safe_char; + $- -> safe_char; + $& -> safe_char; + $! -> safe_char; + $_ -> safe_char; + $/ -> safe_char; + $' -> safe_char; + $? -> safe_char; + $@ -> safe_char; + $^ -> safe_char; + $` -> safe_char; + $~ -> safe_char; + $* -> safe_char; + $$ -> safe_char; + ?BackslashToken -> safe_char; + ?LparToken -> safe_char; + ?RparToken -> safe_char; + $% -> safe_char; + ?VbarToken -> safe_char; + $. -> safe_char; + _ when (Char >= $0) andalso (Char =< $9) -> safe_char; + _ when (Char >= $a) andalso (Char =< $z) -> safe_char; + _ when (Char >= $A) andalso (Char =< $Z) -> safe_char_upper; + _ -> non_safe_char + end)). + +%% Only safe_char and safe_char_upper +-define(classify_char4(Char), + (case Char of + $+ -> safe_char; + $- -> safe_char; + $& -> safe_char; + $! -> safe_char; + $_ -> safe_char; + $/ -> safe_char; + $' -> safe_char; + $? -> safe_char; + $@ -> safe_char; + $^ -> safe_char; + $` -> safe_char; + $~ -> safe_char; + $* -> safe_char; + $$ -> safe_char; + ?BackslashToken -> safe_char; + ?LparToken -> safe_char; + ?RparToken -> safe_char; + $% -> safe_char; + ?VbarToken -> safe_char; + $. -> safe_char; + _ when (Char >= $0) andalso (Char =< $9) -> safe_char; + _ when (Char >= $a) andalso (Char =< $z) -> safe_char; + _ when (Char >= $A) andalso (Char =< $Z) -> safe_char_upper; + _ -> not_safe_char + end)). + |