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

📄 megaco_ber_bin_media_gateway_control_v2.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_ServiceChangeParm'(Tlv) ->   'dec_ServiceChangeParm'(Tlv, [16]).'dec_ServiceChangeParm'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute serviceChangeMethod(1) with type ENUMERATED%%-------------------------------------------------[V1|Tlv2] = Tlv1, Term1 = ?RT_BER:decode_enumerated(V1,[],{[{failover,0},{forced,1},{graceful,2},{restart,3},{disconnected,4},{handOff,5}],[]},[131072]),%%-------------------------------------------------%% attribute serviceChangeAddress(2)   External megaco_ber_bin_media_gateway_control_v2:ServiceChangeAddress OPTIONAL%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{131073,V2}|TempTlv3] ->    {'dec_ServiceChangeAddress'(V2, []), TempTlv3};    _ ->        { asn1_NOVALUE, Tlv2}end,%%-------------------------------------------------%% attribute serviceChangeVersion(3) with type INTEGER OPTIONAL%%-------------------------------------------------{Term3,Tlv4} = case Tlv3 of[{131074,V3}|TempTlv4] ->    {?RT_BER:decode_integer(V3,{0,99},[]), TempTlv4};    _ ->        { asn1_NOVALUE, Tlv3}end,%%-------------------------------------------------%% attribute serviceChangeProfile(4)   External megaco_ber_bin_media_gateway_control_v2:ServiceChangeProfile OPTIONAL%%-------------------------------------------------{Term4,Tlv5} = case Tlv4 of[{131075,V4}|TempTlv5] ->    {'dec_ServiceChangeProfile'(V4, []), TempTlv5};    _ ->        { asn1_NOVALUE, Tlv4}end,%%-------------------------------------------------%% attribute serviceChangeReason(5)   External megaco_ber_bin_media_gateway_control_v2:Value%%-------------------------------------------------[V5|Tlv6] = Tlv5, Term5 = 'dec_Value'(V5, [131076]),%%-------------------------------------------------%% attribute serviceChangeDelay(6) with type INTEGER OPTIONAL%%-------------------------------------------------{Term6,Tlv7} = case Tlv6 of[{131077,V6}|TempTlv7] ->    {?RT_BER:decode_integer(V6,{0,4294967295},[]), TempTlv7};    _ ->        { asn1_NOVALUE, Tlv6}end,%%-------------------------------------------------%% attribute serviceChangeMgcId(7)   External megaco_ber_bin_media_gateway_control_v2:MId OPTIONAL%%-------------------------------------------------{Term7,Tlv8} = case Tlv7 of[{131078,V7}|TempTlv8] ->    {'dec_MId'(V7, []), TempTlv8};    _ ->        { asn1_NOVALUE, Tlv7}end,%%-------------------------------------------------%% attribute timeStamp(8)   External megaco_ber_bin_media_gateway_control_v2:TimeNotation OPTIONAL%%-------------------------------------------------{Term8,Tlv9} = case Tlv8 of[{131079,V8}|TempTlv9] ->    {'dec_TimeNotation'(V8, []), TempTlv9};    _ ->        { asn1_NOVALUE, Tlv8}end,%%-------------------------------------------------%% attribute nonStandardData(9)   External megaco_ber_bin_media_gateway_control_v2:NonStandardData OPTIONAL%%-------------------------------------------------{Term9,Tlv10} = case Tlv9 of[{131080,V9}|TempTlv10] ->    {'dec_NonStandardData'(V9, []), TempTlv10};    _ ->        { asn1_NOVALUE, Tlv9}end,%%-------------------------------------------------%% attribute serviceChangeInfo(10)   External megaco_ber_bin_media_gateway_control_v2:AuditDescriptor OPTIONAL%%-------------------------------------------------{Term10,Tlv11} = case Tlv10 of[{131081,V10}|TempTlv11] ->    {'dec_AuditDescriptor'(V10, []), TempTlv11};    _ ->        { asn1_NOVALUE, Tlv10}end,case Tlv11 of [] -> true; _ -> true end, % ... extra fields skipped   {'ServiceChangeParm', Term1, Term2, Term3, Term4, Term5, Term6, Term7, Term8, Term9, Term10}.%%================================%%  DigitMapValue%%================================'enc_DigitMapValue'(Val) ->    'enc_DigitMapValue'(Val, [<<48>>]).'enc_DigitMapValue'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3, Cindex4, Cindex5} = Val,%%-------------------------------------------------%% attribute startTimer(1) with type INTEGER OPTIONAL%%-------------------------------------------------   {EncBytes1,EncLen1} =  case Cindex1 of         asn1_NOVALUE -> {<<>>,0};         _ ->            ?RT_BER:encode_integer([], Cindex1, [<<128>>])       end,%%-------------------------------------------------%% attribute shortTimer(2) with type INTEGER OPTIONAL%%-------------------------------------------------   {EncBytes2,EncLen2} =  case Cindex2 of         asn1_NOVALUE -> {<<>>,0};         _ ->            ?RT_BER:encode_integer([], Cindex2, [<<129>>])       end,%%-------------------------------------------------%% attribute longTimer(3) with type INTEGER OPTIONAL%%-------------------------------------------------   {EncBytes3,EncLen3} =  case Cindex3 of         asn1_NOVALUE -> {<<>>,0};         _ ->            ?RT_BER:encode_integer([], Cindex3, [<<130>>])       end,%%-------------------------------------------------%% attribute digitMapBody(4) with type IA5String%%-------------------------------------------------   {EncBytes4,EncLen4} = ?RT_BER:encode_restricted_string([], Cindex4, 22, [<<131>>]),%%-------------------------------------------------%% attribute durationTimer(5) with type INTEGER OPTIONAL%%-------------------------------------------------   {EncBytes5,EncLen5} =  case Cindex5 of         asn1_NOVALUE -> {<<>>,0};         _ ->            ?RT_BER:encode_integer([], Cindex5, [<<132>>])       end,   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3, EncBytes4, EncBytes5],LenSoFar = EncLen1 + EncLen2 + EncLen3 + EncLen4 + EncLen5,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_DigitMapValue'(Tlv) ->   'dec_DigitMapValue'(Tlv, [16]).'dec_DigitMapValue'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute startTimer(1) with type INTEGER OPTIONAL%%-------------------------------------------------{Term1,Tlv2} = case Tlv1 of[{131072,V1}|TempTlv2] ->    {?RT_BER:decode_integer(V1,{0,99},[]), TempTlv2};    _ ->        { asn1_NOVALUE, Tlv1}end,%%-------------------------------------------------%% attribute shortTimer(2) with type INTEGER OPTIONAL%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{131073,V2}|TempTlv3] ->    {?RT_BER:decode_integer(V2,{0,99},[]), TempTlv3};    _ ->        { asn1_NOVALUE, Tlv2}end,%%-------------------------------------------------%% attribute longTimer(3) with type INTEGER OPTIONAL%%-------------------------------------------------{Term3,Tlv4} = case Tlv3 of[{131074,V3}|TempTlv4] ->    {?RT_BER:decode_integer(V3,{0,99},[]), TempTlv4};    _ ->        { asn1_NOVALUE, Tlv3}end,%%-------------------------------------------------%% attribute digitMapBody(4) with type IA5String%%-------------------------------------------------[V4|Tlv5] = Tlv4, Term4 = ?RT_BER:decode_restricted_string(V4,[],22,[131075]),%%-------------------------------------------------%% attribute durationTimer(5) with type INTEGER OPTIONAL%%-------------------------------------------------{Term5,Tlv6} = case Tlv5 of[{131076,V5}|TempTlv6] ->    {?RT_BER:decode_integer(V5,{0,99},[]), TempTlv6};    _ ->        { asn1_NOVALUE, Tlv5}end,case Tlv6 of [] -> true; _ -> true end, % ... extra fields skipped   {'DigitMapValue', Term1, Term2, Term3, Term4, Term5}.%%================================%%  DigitMapName%%================================'enc_DigitMapName'(Val) ->    'enc_DigitMapName'(Val, [<<4>>]).'enc_DigitMapName'({'DigitMapName',Val}, TagIn) ->   'enc_DigitMapName'(Val, TagIn);'enc_DigitMapName'(Val, TagIn) ->?RT_BER:encode_octet_string([], Val, TagIn).'dec_DigitMapName'(Tlv) ->   'dec_DigitMapName'(Tlv, [4]).'dec_DigitMapName'(Tlv, TagIn) ->?RT_BER:decode_octet_string(Tlv,2,TagIn).%%================================%%  DigitMapDescriptor%%================================'enc_DigitMapDescriptor'(Val) ->    'enc_DigitMapDescriptor'(Val, [<<48>>]).'enc_DigitMapDescriptor'(Val, TagIn) ->{_,Cindex1, Cindex2} = Val,%%-------------------------------------------------%% attribute digitMapName(1) with type OCTET STRING OPTIONAL%%-------------------------------------------------   {EncBytes1,EncLen1} =  case Cindex1 of         asn1_NOVALUE -> {<<>>,0};         _ ->            ?RT_BER:encode_octet_string([], Cindex1, [<<128>>])       end,%%-------------------------------------------------%% attribute digitMapValue(2)   External megaco_ber_bin_media_gateway_control_v2:DigitMapValue OPTIONAL%%-------------------------------------------------   {EncBytes2,EncLen2} =  case Cindex2 of         asn1_NOVALUE -> {<<>>,0};         _ ->            'enc_DigitMapValue'(Cindex2, [<<161>>])       end,   BytesSoFar = [EncBytes1, EncBytes2],LenSoFar = EncLen1 + EncLen2,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_DigitMapDescriptor'(Tlv) ->   'dec_DigitMapDescriptor'(Tlv, [16]).'dec_DigitMapDescriptor'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute digitMapName(1) with type OCTET STRING OPTIONAL%%-------------------------------------------------{Term1,Tlv2} = case Tlv1 of[{131072,V1}|TempTlv2] ->    {?RT_BER:decode_octet_string(V1,2,[]), TempTlv2};    _ ->        { asn1_NOVALUE, Tlv1}end,%%-------------------------------------------------%% attribute digitMapValue(2)   External megaco_ber_bin_media_gateway_control_v2:DigitMapValue OPTIONAL%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{131073,V2}|TempTlv3] ->    {'dec_DigitMapValue'(V2, []), TempTlv3};    _ ->        { asn1_NOVALUE, Tlv2}end,case Tlv3 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv3}}}) % extra fields not allowedend,   {'DigitMapDescriptor', Term1, Term2}.%%================================%%  ModemType%%================================'enc_ModemType'(Val) ->    'enc_ModemType'(Val, [<<10>>]).'enc_ModemType'({'ModemType',Val}, TagIn) ->   'enc_ModemType'(Val, TagIn);'enc_ModemType'(Val, TagIn) ->case (case Val of {asn1_enum,_}->Val;{_,_}->element(2,Val);_->Val end) ofv18 -> ?RT_BER:encode_enumerated(0,TagIn);v22 -> ?RT_BER:encode_enumerated(1,TagIn);v22bis -> ?RT_BER:encode_enumerated(2,TagIn);v32 -> ?RT_BER:encode_enumerated(3,TagIn);v32bis -> ?RT_BER:encode_enumerated(4,TagIn);v34 -> ?RT_BER:encode_enumerated(5,TagIn);v90 -> ?RT_BER:encode_enumerated(6,TagIn);v91 -> ?RT_BER:encode_enumerated(7,TagIn);synchISDN -> ?RT_BER:encode_enumerated(8,TagIn);{asn1_enum,Enumval1} -> ?RT_BER:encode_enumerated(Enumval1,TagIn);Enumval2 -> exit({error,{asn1, {enumerated_not_in_range,Enumval2}}})end.'dec_ModemType'(Tlv) ->   'dec_ModemType'(Tlv, [10]).'dec_ModemType'(Tlv, TagIn) ->?RT_BER:decode_enumerated(Tlv,[],{[{v18,0},{v22,1},{v22bis,2},{v32,3},{v32bis,4},{v34,5},{v90,6},{v91,7},{synchISDN,8}],[]},TagIn).%%================================%%  ModemDescriptor%%================================'enc_ModemDescriptor'(Val) ->    'enc_ModemDescriptor'(Val, [<<48>>]).'enc_Modem

⌨️ 快捷键说明

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