⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_text_parser_prev3b.hrl

📁 OTP是开放电信平台的简称
💻 HRL
📖 第 1 页 / 共 4 页
字号:
	    do_merge_indAudLocalControlDescriptor(Parms, Desc2)    end;do_merge_indAudLocalControlDescriptor([], Desc) ->%%     d("do_merge_indAudLocalControlDescriptor -> entry when"%%       "~n   Desc: ~p", [Desc]),    case Desc#'IndAudLocalControlDescriptor'.propertyParms of	[_ | _] = PropParms -> % List has more then one element	    PropParms2= lists:reverse(PropParms),	    Desc#'IndAudLocalControlDescriptor'{propertyParms = PropParms2};	_ ->	    Desc    end.ensure_indAudLocalParm(Token) ->    case Token of	{safeToken, _Line, "mode"}          -> modeToken;	{safeToken, _Line, "mo"}            -> modeToken;	{safeToken, _Line, "reservedgroup"} -> reservedGroupToken;	{safeToken, _Line, "rg"}            -> reservedGroupToken;	{safeToken, _Line, "reservedvalue"} -> reservedValueToken;	{safeToken, _Line, "rv"}            -> reservedValueToken;	PkgdName                            -> {pkgdName,						ensure_pkgdName(PkgdName)}    end.merge_indAudTerminationStateDescriptor({pkgdName, Val}) ->    PropParm = #'IndAudPropertyParm'{name = Val},    #'IndAudTerminationStateDescriptor'{propertyParms = [PropParm]};merge_indAudTerminationStateDescriptor(serviceStatesToken) ->    #'IndAudTerminationStateDescriptor'{serviceState = 'NULL'};merge_indAudTerminationStateDescriptor(bufferToken) ->    #'IndAudTerminationStateDescriptor'{eventBufferControl = 'NULL'}.merge_indAudEventBufferDescriptor(EventName, SpecParams) ->    IAEBD = #'IndAudEventBufferDescriptor'{eventName = EventName},    do_merge_indAudEventBufferDescriptor(SpecParams, IAEBD).do_merge_indAudEventBufferDescriptor(asn1_NOVALUE, IAEBD) ->    IAEBD;do_merge_indAudEventBufferDescriptor({streamID, StreamID}, IAEBD) ->    IAEBD#'IndAudEventBufferDescriptor'{streamID = StreamID};do_merge_indAudEventBufferDescriptor({eventParameterName, _Name} = EPN, 				     IAEBD) ->    %% BUGBUG BUGBUG BUGBUG     %% This is an ugly hack to allow the eventParamName which only    %% exists in the text encoding...    IAEBD#'IndAudEventBufferDescriptor'{streamID = EPN}.ensure_indAudSignalListParm(SIG) when record(SIG, 'Signal') ->    ensure_indAudSignal(SIG).ensure_indAudSignal(#'Signal'{signalName       = SignalName,			      streamID         = asn1_NOVALUE, 			      sigType          = asn1_NOVALUE, 			      duration         = asn1_NOVALUE, 			      notifyCompletion = asn1_NOVALUE, 			      keepActive       = asn1_NOVALUE, 			      sigParList       = []}) ->    #'IndAudSignal'{signalName = SignalName}.    ensure_IADMD({_TokenTag, _Line, 	      #'DigitMapDescriptor'{digitMapName  = Name,				    digitMapValue = asn1_NOVALUE}}) ->    #'IndAudDigitMapDescriptor'{digitMapName = Name}.merge_indAudPackagesDescriptor(#'PackagesItem'{packageName    = N,					       packageVersion = V}) ->    #'IndAudPackagesDescriptor'{packageName    = N,				packageVersion = V}.ensure_indAudTerminationStateParm(Token) ->    case Token of	{safeToken, _Line, "servicestates"} -> serviceStatesToken;	{safeToken, _Line, "si"}            -> serviceStatesToken;	{safeToken, _Line, "buffer"}        -> bufferToken;	{safeToken, _Line, "bf"}            -> bufferToken;	PkgdName                            -> {pkgdName,						ensure_pkgdName(PkgdName)}    end.%% Types modified by v2:merge_auditDescriptor([]) ->    #'AuditDescriptor'{};merge_auditDescriptor(Tokens) when list(Tokens) ->    case lists:keysearch(terminationAudit, 1, Tokens) of	{value, {terminationAudit, TA}} ->	    case lists:keydelete(terminationAudit, 1, Tokens) of		[] ->		    #'AuditDescriptor'{auditPropertyToken = TA};		AuditTokens ->		    #'AuditDescriptor'{auditToken         = AuditTokens,				       auditPropertyToken = TA}	    end;	false ->	    #'AuditDescriptor'{auditToken = Tokens}    end;merge_auditDescriptor(_) ->    #'AuditDescriptor'{}.%% v2 - endmerge_ServiceChangeParm(Parms) ->    Required = [serviceChangeReason, serviceChangeMethod],    merge_ServiceChangeParm(Parms, #'ServiceChangeParm'{}, Required).merge_ServiceChangeParm([], SCP, []) ->    SCP;merge_ServiceChangeParm([], _SCP, Required) ->    exit({missing_required_serviceChangeParm, Required});merge_ServiceChangeParm([{address, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeAddress == asn1_NOVALUE,       SCP0#'ServiceChangeParm'.serviceChangeMgcId == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeAddress = Val},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{address, Val}|_Parms], SCP0, _Req)   when SCP0#'ServiceChangeParm'.serviceChangeAddress == asn1_NOVALUE ->    MgcId = SCP0#'ServiceChangeParm'.serviceChangeMgcId,    exit({not_both_address_mgcid_serviceChangeParm, Val, MgcId});merge_ServiceChangeParm([{mgc_id, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeMgcId == asn1_NOVALUE,       SCP0#'ServiceChangeParm'.serviceChangeAddress == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeMgcId = Val},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{mgc_id, Val}|_Parms], SCP0, _Req)   when SCP0#'ServiceChangeParm'.serviceChangeMgcId == asn1_NOVALUE ->    Addr = SCP0#'ServiceChangeParm'.serviceChangeAddress,    exit({not_both_address_mgcid_serviceChangeParm, Val, Addr});merge_ServiceChangeParm([{profile, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeProfile == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeProfile = Val},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{version, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeVersion == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeVersion = Val},    merge_ServiceChangeParm(Parms, SCP, Req);%% REQUIRED (i.e. no default value)merge_ServiceChangeParm([{reason, Val}|Parms], SCP0, Req0)   when SCP0#'ServiceChangeParm'.serviceChangeReason == undefined ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeReason = Val},    Req = lists:delete(serviceChangeReason, Req0),    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{delay, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeDelay == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeDelay = Val},    merge_ServiceChangeParm(Parms, SCP, Req);%% REQUIRED (i.e. no default value)merge_ServiceChangeParm([{method, Val}|Parms], SCP0, Req0)   when SCP0#'ServiceChangeParm'.serviceChangeMethod == undefined ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeMethod = Val},    Req = lists:delete(serviceChangeMethod, Req0),    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{time_stamp, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.timeStamp == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{timeStamp = Val},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{extension, _Val}|Parms], SCP0, Req) ->    merge_ServiceChangeParm(Parms, SCP0, Req);merge_ServiceChangeParm([{audit_item, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeInfo == asn1_NOVALUE, atom(Val) ->    SCI = #'AuditDescriptor'{auditToken = [Val]},    SCP = SCP0#'ServiceChangeParm'{serviceChangeInfo = SCI},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{audit_item, Val}|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeInfo == asn1_NOVALUE,tuple(Val) ->    SCI = #'AuditDescriptor'{auditPropertyToken = [Val]},    SCP = SCP0#'ServiceChangeParm'{serviceChangeInfo = SCI},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{audit_item, Val}|Parms], SCP0, Req)   when record(SCP0#'ServiceChangeParm'.serviceChangeInfo, 'AuditDescriptor'),       atom(Val) ->    SCI0 = SCP0#'ServiceChangeParm'.serviceChangeInfo,    L    = SCI0#'AuditDescriptor'.auditToken,    SCI  = SCI0#'AuditDescriptor'{auditToken = [Val|L]},    SCP  = SCP0#'ServiceChangeParm'{serviceChangeInfo = SCI},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{audit_item, Val}|Parms], SCP0, Req)   when record(SCP0#'ServiceChangeParm'.serviceChangeInfo, 'AuditDescriptor'),       tuple(Val) ->    SCI0 = SCP0#'ServiceChangeParm'.serviceChangeInfo,    L    = SCI0#'AuditDescriptor'.auditPropertyToken,    SCI  = SCI0#'AuditDescriptor'{auditPropertyToken = [Val|L]},    SCP  = SCP0#'ServiceChangeParm'{serviceChangeInfo = SCI},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([incomplete|Parms], SCP0, Req)   when SCP0#'ServiceChangeParm'.serviceChangeIncompleteFlag == asn1_NOVALUE ->    SCP = SCP0#'ServiceChangeParm'{serviceChangeIncompleteFlag = 'NULL'},    merge_ServiceChangeParm(Parms, SCP, Req);merge_ServiceChangeParm([{Tag, Val}|_Parms], SCP, _Req) ->    Val2 = 	case Tag of	    address -> 		SCP#'ServiceChangeParm'.serviceChangeAddress;	    mgc_id     -> 		SCP#'ServiceChangeParm'.serviceChangeMgcId;	    profile    -> 		SCP#'ServiceChangeParm'.serviceChangeProfile;	    version    -> 		SCP#'ServiceChangeParm'.serviceChangeVersion;	    reason     -> 		SCP#'ServiceChangeParm'.serviceChangeReason;	    delay      -> 		SCP#'ServiceChangeParm'.serviceChangeDelay;	    method     -> 		SCP#'ServiceChangeParm'.serviceChangeMethod;	    time_stamp -> 		SCP#'ServiceChangeParm'.timeStamp;	    audit_item -> 		SCP#'ServiceChangeParm'.serviceChangeInfo	end,    exit({at_most_once_serviceChangeParm, {Tag, Val, Val2}});merge_ServiceChangeParm([Parm|_Parms], SCP, _Req) ->    Parm2 = 	case Parm of	    incomplete -> 		SCP#'ServiceChangeParm'.serviceChangeIncompleteFlag	end,    exit({at_most_once_serviceChangeParm, {Parm, Parm2}}).merge_ServiceChangeResParm(Parms) ->    merge_ServiceChangeResParm(Parms, #'ServiceChangeResParm'{}).merge_ServiceChangeResParm([], SCRP) ->    SCRP;merge_ServiceChangeResParm([{address, Val}|Parms], SCRP0)   when SCRP0#'ServiceChangeResParm'.serviceChangeAddress == asn1_NOVALUE,       SCRP0#'ServiceChangeResParm'.serviceChangeMgcId == asn1_NOVALUE ->    SCRP = SCRP0#'ServiceChangeResParm'{serviceChangeAddress = Val},    merge_ServiceChangeResParm(Parms, SCRP);merge_ServiceChangeResParm([{address, Val}|_Parms], SCRP0)   when SCRP0#'ServiceChangeResParm'.serviceChangeAddress == asn1_NOVALUE ->    MgcId = SCRP0#'ServiceChangeResParm'.serviceChangeMgcId,    exit({not_both_address_mgcid_servChgReplyParm, Val, MgcId});merge_ServiceChangeResParm([{mgc_id, Val}|Parms], SCRP0)  when SCRP0#'ServiceChangeResParm'.serviceChangeMgcId == asn1_NOVALUE,       SCRP0#'ServiceChangeResParm'.serviceChangeAddress == asn1_NOVALUE ->     SCRP = SCRP0#'ServiceChangeResParm'{serviceChangeMgcId = Val},    merge_ServiceChangeResParm(Parms, SCRP);merge_ServiceChangeResParm([{mgc_id, Val}|_Parms], SCRP0)  when SCRP0#'ServiceChangeResParm'.serviceChangeMgcId == asn1_NOVALUE ->     Addr = SCRP0#'ServiceChangeResParm'.serviceChangeAddress,    exit({not_both_address_mgcid_servChgReplyParm, Val, Addr});merge_ServiceChangeResParm([{profile, Val}|Parms], SCRP0)  when SCRP0#'ServiceChangeResParm'.serviceChangeProfile == asn1_NOVALUE ->    SCRP = SCRP0#'ServiceChangeResParm'{serviceChangeProfile = Val},    merge_ServiceChangeResParm(Parms, SCRP);merge_ServiceChangeResParm([{version, Val}|Parms], SCRP0)  when SCRP0#'ServiceChangeResParm'.serviceChangeVersion == asn1_NOVALUE ->    SCRP = SCRP0#'ServiceChangeResParm'{serviceChangeVersion = Val},    merge_ServiceChangeResParm(Parms, SCRP);merge_ServiceChangeResParm([{time_stamp, Val}|Parms], SCRP0)  when SCRP0#'ServiceChangeResParm'.timeStamp == asn1_NOVALUE ->    SCRP = SCRP0#'ServiceChangeResParm'{timeStamp = Val},    merge_ServiceChangeResParm(Parms, SCRP);merge_ServiceChangeResParm([{Tag, Val}|_Parms], SCRP) ->    Val2 = 	case Tag of	    address    -> SCRP#'ServiceChangeResParm'.serviceChangeAddress;	    mgc_id     -> SCRP#'ServiceChangeResParm'.serviceChangeMgcId;	    profile    -> SCRP#'ServiceChangeResParm'.serviceChangeProfile;	    version    -> SCRP#'ServiceChangeResParm'.serviceChangeVersion;	    time_stamp -> SCRP#'ServiceChangeResParm'.timeStamp	end,    exit({at_most_once_servChgReplyParm, {Tag, Val, Val2}}).ensure_serviceChangeMethod({safeToken, _Line, "fl"}) ->    failover;ensure_serviceChangeMethod({safeToken, _Line, "failover"}) ->    failover;ensure_serviceChangeMethod({safeToken, _Line, "fo"}) ->     forced;ensure_serviceChangeMethod({safeToken, _Line, "forced"}) ->    forced;ensure_serviceChangeMethod({safeToken, _Line, "gr"}) ->    graceful;ensure_serviceChangeMethod({safeToken, _Line, "graceful"}) ->    graceful;ensure_serviceChangeMethod({safeToken, _Line, "rs"}) ->    restart;ensure_serviceChangeMethod({safeToken, _Line, "restart"}) ->    restart;ensure_serviceChangeMethod({safeToken, _Line, "dc"}) ->    disconnected;ensure_serviceChangeMethod({safeToken, _Line, "disconnected"}) ->    disconnected;ensure_serviceChangeMethod({safeToken, _Line, "ho"}) ->    handOff;ensure_serviceChangeMethod({safeToken, _Line, "handoff"}) ->    handOff;ensure_serviceChangeMethod({safeToken, Line, Text}) ->    return_error(Line, {bad_serviceChangeMethod, Text}).ensure_profile({_TokenTag, Line, Text}) ->    case string:tokens(Text, [$/]) of        [Name, Version] ->            Version2 = ensure_version(Version),            #'ServiceChangeProfile'{profileName = Name, version = Version2};        _ ->            return_error(Line, {bad_profile, Text})    end.ensure_version(Version) ->    ensure_uint(Version, 0, 99).merge_signalRequest(SignalName, PropertyParms) ->    Sig = #'Signal'{signalName = SignalName},    SPL = [],    do_merge_signalRequest(Sig, PropertyParms, SPL).do_merge_signalRequest(Sig, [H | T], SPL) ->    case H of        {stream, SID} when Sig#'Signal'.streamID == asn1_NOVALUE ->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -