📄 megaco_ber_bin_drv_media_gateway_control_v1.erl
字号:
%%-------------------------------------------------%% 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>>]), 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_drv_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_drv_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_drv_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_drv_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, T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -