aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/h323test.erl
diff options
context:
space:
mode:
authorKenneth Lundin <[email protected]>2010-02-19 14:01:57 +0000
committerErlang/OTP <[email protected]>2010-02-19 14:01:57 +0000
commit18bd1239bee04427340a44f57f993ea92c264e41 (patch)
treedbb3031dcd2e446eb457ff7ac5229949517d7557 /lib/asn1/test/h323test.erl
parent729565dc3f8bcf8829508136498aef6a542840f4 (diff)
downloadotp-18bd1239bee04427340a44f57f993ea92c264e41.tar.gz
otp-18bd1239bee04427340a44f57f993ea92c264e41.tar.bz2
otp-18bd1239bee04427340a44f57f993ea92c264e41.zip
OTP-8463 Support for EXTENSIBILITY IMPLIED and SET/SEQ OF NamedType is
added.
Diffstat (limited to 'lib/asn1/test/h323test.erl')
-rw-r--r--lib/asn1/test/h323test.erl172
1 files changed, 172 insertions, 0 deletions
diff --git a/lib/asn1/test/h323test.erl b/lib/asn1/test/h323test.erl
new file mode 100644
index 0000000000..60d2c39be0
--- /dev/null
+++ b/lib/asn1/test/h323test.erl
@@ -0,0 +1,172 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(h323test).
+
+-compile(export_all).
+-export([compile/3,run/1]).
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "H235-SECURITY-MESSAGES",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "H323-MESSAGES",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "MULTIMEDIA-SYSTEM-CONTROL",[Rules,{outdir,OutDir}]++Options).
+
+run(per_bin) ->
+ run();
+run(per) ->
+ run();
+run(_Rules) ->
+ ok.
+
+run() ->
+ ?line alerting(),
+ ?line connect(),
+ ok.
+
+arq() ->
+ _AdmissionRequest = "27900007086000340036003300320038003700370101805337010180533600AC1F38C60693000D000445367AE75C5740120300AC1F38C6415004E0200100110000D7D22EA88D511C0200AC1F38C6C0580100".
+
+
+t0() ->
+ Setup = "00B8060008914A0001010180533622C000000000074572696373736F6E0356302E3100010180533700AC1F38C206B80045367AE75C5740120300AC1F38C6415000411C110000D7D22EA88D511C0200AC1F3806C0583802150000080E1403001E80800A04000100AC1F38C661A820400000060401004E1403001E80801114000100AC1F38C72EE000AC1F38C72EE00100010063AA34AB"
+,
+ ByteList = hexstr2bytes(Setup),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+t1() ->
+ AdmissionRequest = "27900007086000340036003300320038003700370101805337010180533600AC1F38C60693000D000445367AE75C5740120300AC1F38C6415004E0200100110000D7D22EA88D511C0200AC1F38C6C0580100",
+ ByteList = hexstr2bytes(AdmissionRequest),
+ asn1_wrapper:decode('H323-MESSAGES','RasMessage',ByteList).
+
+t2() ->
+ Cs = "080200040504038090A56C059132303033700591323030347E00930500B8060008914A0001010180533622C000000000074572696373736F6E0356302E3100010180533700AC1F38C206B80045367AE75C5740120300AC1F38C6415000411C110000D7D22EA88D511C0200AC1F3806C0583802150000080E1403001E80800A04000100AC1F38C661A820400000060401004E1403001E80801114000100AC1F38C72EE000AC1F38C72EE00100010063AA34AB",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+t3() ->
+ Cs = "10b8060008914a0002044003004d0067006f006e018085cc22c0b500534c164d6963726f736f6674ae204e65744d656574696e67ae0003332e3000000101808c990088e1293a06b8001689edc5bf23d3118c2d00c04f4b1cd0000c07000a00000204dc40b500534c3c0200000028000000000000001b0000008138427484ccd211b4e300a0c90d0660100000001289edc5bf23d3118c2d00c04f4b1cd00000000000000000a615d9ee",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+dec_alerting() ->
+ Cs = "0380060008914a0002020120110000000000000000000000000000000000",
+ _Slask="E83AE983",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+enc_alerting(V) ->
+ asn1_wrapper:encode('H323-MESSAGES','H323-UserInformation',V).
+
+alerting() ->
+ ?line {ok,V} = dec_alerting(),
+ ?line {ok,B} = enc_alerting(V),
+ ?line ByteList = lists:flatten(B),
+ ?line {ok,V} = asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+
+dec_connect() ->
+ Cs = "02c0060008914a00020088e1293a04a322c0b500534c164d6963726f736f6674ae204e65744d656474696e67ae0003332e3000001689edc5bf23d3118c2d00c04f4b1cd00900110000000000000000000000000000000000",
+ _Slask="2f530a3f",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+enc_connect(V) ->
+ asn1_wrapper:encode('H323-MESSAGES','H323-UserInformation',V).
+
+connect() ->
+ ?line {ok,V} = dec_connect(),
+ ?line {ok,B} = enc_connect(V),
+ ?line ByteList = lists:flatten(B),
+ ?line {ok,V} = asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+dec_h245_TCS() ->
+ Cs ="02700106000881750003"
+ "800d00003c000100000100000100000e"
+ "807fff04b5428080010180000e483060"
+ "0100800c96a88000002020b500534c48"
+ "020000000000f4010000f40101000400"
+ "0000000002000100401f000000100000"
+ "000104002000f4010700000100000002"
+ "00ff00000000c0004000f0000000cc01"
+ "30ff880118ff00008000012040b38000"
+ "0220c0b38000032020b500534c280200"
+ "00000000a0000000a000040010000000"
+ "000070000100401f0000580200000c00"
+ "1000000000008000042020b500534c28"
+ "020000000000a0000000a00004001000"
+ "0000000071000100401f00003a070000"
+ "25001000000000008000052020b50053"
+ "4c280200000000008000000080000500"
+ "14000000000072000100401f00000809"
+ "000025001000000000008000062020b5"
+ "00534c28020000000000800000008000"
+ "050014000000000073000100401f0000"
+ "7f0a00002b0010000000000080000722"
+ "000b40000909a00120390c000a099001"
+ "20390c000b09880120390c000c08a220"
+ "3940000d089220390004800602070007"
+ "00060004000500020001000000030000"
+ "0a00000e800702070007000600040005"
+ "000200010000000300000900000e8008"
+ "02070007000600040005000200010000"
+ "000300000c00000e8009020700070006"
+ "00040005000200010000000300000b00"
+ "000e800a020700070006000400050002"
+ "00010000000300000d00000e0300000b"
+ "01003280299d93369631bc",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('MULTIMEDIA-SYSTEM-CONTROL',
+ 'MultimediaSystemControlMessage',ByteList).
+
+ hexstr2bytes([D1,D2|T]) ->
+ [dig2num(D1)*16+dig2num(D2)|hexstr2bytes(T)];
+hexstr2bytes([]) ->
+ [].
+
+dig2num(D) when D >= $0, D =< $9 ->
+ D - $0;
+dig2num(D) when D >= $a, D =< $f ->
+ 10 + D - $a;
+dig2num(D) when D >= $A, D =< $F ->
+ 10 + D - $A.
+
+bytes2hexstr(Bytes) ->
+ bytes2hexstr(Bytes,[]).
+
+bytes2hexstr([B|Bytes],Acc) ->
+ D1 = num2dig(B bsr 4),
+ D2 = num2dig(B band 15),
+ bytes2hexstr(Bytes,[D2,D1|Acc]);
+bytes2hexstr([],Acc) ->
+ lists:reverse(Acc).
+
+num2dig(Num) when Num =< 9 ->
+ $0 + Num;
+num2dig(Num) ->
+ $a + Num - 10.
+
+
+
+
+
+