📄 megaco_ber_bin_media_gateway_control_v2.erl
字号:
?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 + -