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

📄 megaco_ber_bin_media_gateway_control_v1.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
         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>>]),   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3, EncBytes4],LenSoFar = EncLen1 + EncLen2 + EncLen3 + EncLen4,?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]),case Tlv5 of [] -> true; _ -> true end, % ... extra fields skipped   {'DigitMapValue', Term1, Term2, Term3, Term4}.%%================================%%  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_v1: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_v1: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_ModemDescriptor'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3} = Val,%%-------------------------------------------------%% attribute mtl(1) with type SEQUENCE OF%%-------------------------------------------------   {EncBytes1,EncLen1} = 'enc_ModemDescriptor_mtl'(Cindex1, [<<160>>]),%%-------------------------------------------------%% attribute mpl(2) with type SEQUENCE OF%%-------------------------------------------------   {EncBytes2,EncLen2} = 'enc_ModemDescriptor_mpl'(Cindex2, [<<161>>]),%%-------------------------------------------------%% attribute nonStandardData(3)   External megaco_ber_bin_media_gateway_control_v1:NonStandardData OPTIONAL%%-------------------------------------------------   {EncBytes3,EncLen3} =  case Cindex3 of         asn1_NOVALUE -> {<<>>,0};         _ ->            'enc_NonStandardData'(Cindex3, [<<162>>])       end,   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],LenSoFar = EncLen1 + EncLen2 + EncLen3,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).%%================================%%  ModemDescriptor_mtl%%================================'enc_ModemDescriptor_mtl'({'ModemDescriptor_mtl',Val}, TagIn) ->   'enc_ModemDescriptor_mtl'(Val, TagIn);'enc_ModemDescriptor_mtl'(Val, TagIn) ->      {EncBytes,EncLen} = 'enc_ModemDescriptor_mtl_components'(Val,[],0),   ?RT_BER:encode_tags(TagIn, EncBytes, EncLen).'enc_ModemDescriptor_mtl_components'([], AccBytes, AccLen) ->    {lists:reverse(AccBytes),AccLen};'enc_ModemDescriptor_mtl_components'([H|T],AccBytes, AccLen) ->   {EncBytes,EncLen} = case (case H of {asn1_enum,_}->H;{_,_}->element(2,H);_->H end) ofv18 -> ?RT_BER:encode_enumerated(0,[<<10>>]);v22 -> ?RT_BER:encode_enumerated(1,[<<10>>]);v22bis -> ?RT_BER:encode_enumerated(2,[<<10>>]);v32 -> ?RT_BER:encode_enumerated(3,[<<10>>]);v32bis -> ?RT_BER:encode_enumerated(4,[<<10>>]);v34 -> ?RT_BER:encode_enumerated(5,[<<10>>]);v90 -> ?RT_BER:encode_enumerated(6,[<<10>>]);v91 -> ?RT_BER:encode_enumerated(7,[<<10>>]);synchISDN -> ?RT_BER:encode_enumerated(8,[<<10>>]);{asn1_enum,Enumval1} -> ?RT_BER:encode_enumerated(Enumval1,[<<10>>]);Enumval2 -> exit({error,{asn1, {enumerated_not_in_range,Enumval2}}})end,   'enc_ModemDescriptor_mtl_components'(T,[EncBytes|AccBytes], AccLen + EncLen).'dec_ModemDescriptor_mtl'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), [?RT_BER:decode_enumerated(V1,[],{[{v18,0},{v22,1},{v22bis,2},{v32,3},{v32bis,4},{v34,5},{v90,6},{v91,7},{synchISDN,8}],[]},[10]) || V1 <- Tlv1].%%================================%%  ModemDescriptor_mpl%%================================'enc_ModemDescriptor_mpl'({'ModemDescriptor_mpl',Val}, TagIn) ->   'enc_ModemDescriptor_mpl'(Val, TagIn);'enc_ModemDescriptor_mpl'(Val, TagIn) ->      {EncBytes,EncLen} = 'enc_ModemDescriptor_mpl_components'(Val,[],0),   ?RT_BER:encode_tags(TagIn, EncBytes, EncLen).'enc_ModemDescriptor_mpl_components'([], AccBytes, AccLen) ->    {lists:reverse(AccBytes),AccLen};'enc_ModemDescriptor_mpl_components'([H|T],AccBytes, AccLen) ->   {EncBytes,EncLen} = 'enc_PropertyParm'(H, [<<48>>]),   'enc_ModemDescriptor_mpl_components'(T,[EncBytes|AccBytes], AccLen + EncLen).'dec_ModemDescriptor_mpl'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), ['dec_PropertyParm'(V1, [16]) || V1 <- Tlv1].'dec_ModemDescriptor'(Tlv) ->   'dec_ModemDescriptor'(Tlv, [16]).'dec_ModemDescriptor'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute mtl(1) with type SEQUENCE OF%%-------------------------------------------------[V1|Tlv2] = Tlv1, Term1 = 'dec_ModemDescriptor_mtl'(V1, [131072]),%%-------------------------------------------------%% attribute mpl(2) with type SEQUENCE OF%%-------------------------------------------------[V2|Tlv3] = Tlv2, Term2 = 'dec_ModemDescriptor_mpl'(V2, [131073]),%%-------------------------------------------------%% attribute nonStandardData(3)   External megaco_ber_bin_media_gateway_control_v1:NonStandardData OPTIONAL%%-------------------------------------------------{Term3,Tlv4} = case Tlv3 of[{131074,V3}|TempTlv4] ->    {'dec_NonStandardData'(V3, []), TempTlv4};    _ ->        { asn1_NOVALUE, Tlv3}end,case Tlv4 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv4}}}) % extra fields not allowedend,   {'ModemDescriptor', Term1, Term2, Term3}.%%================================%%  RequestID%%================================'enc_RequestID'(Val) ->    'enc_RequestID'(Val, [<<2>>]).'enc_RequestID'({'RequestID',Val}, TagIn) ->   'enc_RequestID'(Val, TagIn);'enc_RequestID'(Val, TagIn) ->?RT_BER:encode_integer([], Val, TagIn).'dec_RequestID'(Tlv) ->   'dec_RequestID'(Tlv, [2]).'dec_RequestID'(Tlv, TagIn) ->?RT_BER:decode_integer(Tlv,{0,4294967295},TagIn).%%================================%%  SigParameter%%================================

⌨️ 快捷键说明

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