From 404b9f444e277f65bb3668fd3cd67428e25af658 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Tue, 20 Jul 2021 12:54:36 +0200 Subject: [PATCH] TT#116101 bin/generate_test_tt2.py: more rules * match more sip: cases * add missing tcp for socket Change-Id: Iea828093a5fe5e722ed808ffbe08be1cad65cc04 --- bin/generate_test_tt2.py | 18 ++- tests/fixtures/mix/scenario_ids.yml | 15 +++ .../mix/sipp_scenario_responder00.msg | 118 ++++++++++++++++++ .../sipp_scenario_responder00_test.yml.tt2 | 40 ++++++ tests/test_generate_test_tt2.py | 24 ++-- 5 files changed, 202 insertions(+), 13 deletions(-) create mode 100644 tests/fixtures/mix/sipp_scenario_responder00.msg create mode 100644 tests/fixtures/mix/sipp_scenario_responder00_test.yml.tt2 diff --git a/bin/generate_test_tt2.py b/bin/generate_test_tt2.py index c18ece92..e46d0d86 100755 --- a/bin/generate_test_tt2.py +++ b/bin/generate_test_tt2.py @@ -147,18 +147,26 @@ class Generator: ) rules.append( ( - r"sip:{}:{}([^\d])".format(subs["ip"], subs["port"]), - r"sip:[% {0}.ip %]:[% {0}.port %]\1".format(tt), + r"sip:([^@]+@)?{}:{}([^\d])".format( + subs["ip"], subs["port"] + ), + r"sip:\1[% {0}.ip %]:[% {0}.port %]\2".format(tt), + ) + ) + rules.append( + ( + r"sip:([^@]+@)?{}([^:])".format(subs["ip"]), + r"sip:\1[% {0}.ip %]\2".format(tt), ) ) def add_socket(scen, tt): rules.append( ( - r";socket=udp:{}:{}([^;>]+)".format( + r";socket=(udp|tcp):{}:{}([^;>]+)".format( scen["ip"], scen["port"] ), - r";socket=udp:[% {0}.ip %]:[% {0}.port %]\1".format(tt), + r";socket=\1:[% {0}.ip %]:[% {0}.port %]\2".format(tt), ) ) sdp_rule(scen["ip"], f"{tt}.ip") @@ -172,7 +180,7 @@ class Generator: # server_ip rules rules.append( ( - r";socket=(sip|udp):{}:5060".format(server_ip), + r";socket=(sip|udp|tcp):{}:5060".format(server_ip), r";socket=\1:[% server_ip %]:5060", ) ) diff --git a/tests/fixtures/mix/scenario_ids.yml b/tests/fixtures/mix/scenario_ids.yml index 86ddba28..0d01a875 100644 --- a/tests/fixtures/mix/scenario_ids.yml +++ b/tests/fixtures/mix/scenario_ids.yml @@ -83,4 +83,19 @@ scenarios: register: yes username: testuser1005 username: testuser1002 + - devid: testuser1002 + domain: invite-emergency.scenarios.test + ip: 10.20.29.2 + mport: 45003 + port: 51602 + responders: + - domain: invite-emergency.scenarios.test + ip: 172.30.1.2 + mport: 46003 + peer: peer_invite_emergency_host0 + port: 52602 + proto: udp + register: no + username: 112 + username: testuser1002 server_ip: 192.168.1.152 diff --git a/tests/fixtures/mix/sipp_scenario_responder00.msg b/tests/fixtures/mix/sipp_scenario_responder00.msg new file mode 100644 index 00000000..bc87fee6 --- /dev/null +++ b/tests/fixtures/mix/sipp_scenario_responder00.msg @@ -0,0 +1,118 @@ +----------------------------------------------- 2021-07-20 11:00:31.613771 +UDP message received [1217] bytes : + +INVITE sip:E1112@172.30.1.2:52602;transport=udp SIP/2.0 +Record-Route: +Record-Route: +Record-Route: +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bK2aa1.df56c4416da0d978f31f916b91547dd3.0 +Via: SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bK2aa1.5b8b530dce96fb797ee82335b2ab3b4f.0 +Via: SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bKQ7TPOaI8;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: +CSeq: 2935 INVITE +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +Max-Forwards: 69 +P-Asserted-Identity: +Content-Type: application/sdp +Content-Length: 176 +Contact: + +v=0 +o=user1 53655765 2353687637 IN IP4 192.168.1.152 +s=- +c=IN IP4 192.168.1.152 +t=0 0 +m=audio 30626 RTP/AVP 8 +a=rtpmap:8 PCMA/8000 +a=sendrecv +a=rtcp:30627 +a=ptime:50 + +----------------------------------------------- 2021-07-20 11:00:31.616530 +UDP message sent (570 bytes): + +SIP/2.0 180 Ringing +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bK2aa1.df56c4416da0d978f31f916b91547dd3.0, SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bK2aa1.5b8b530dce96fb797ee82335b2ab3b4f.0, SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bKQ7TPOaI8;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: ;tag=179047SIPpTag011 +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +CSeq: 2935 INVITE +Contact: +Content-Length: 0 + + +----------------------------------------------- 2021-07-20 11:00:32.123381 +UDP message sent (1003 bytes): + +SIP/2.0 200 OK +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bK2aa1.df56c4416da0d978f31f916b91547dd3.0, SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bK2aa1.5b8b530dce96fb797ee82335b2ab3b4f.0, SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bKQ7TPOaI8;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: ;tag=179047SIPpTag011 +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +CSeq: 2935 INVITE +Record-Route: , , +Contact: +Content-Type: application/sdp +Content-Length: 144 + +v=0 +o=user1 53655765 2353687637 IN IP4 172.30.1.2 +s=- +c=IN IP4 172.30.1.2 +t=0 0 +m=audio 46003 RTP/AVP 8 +a=rtpmap:8 PCMA/8000 +a=ptime:50 + +----------------------------------------------- 2021-07-20 11:00:32.341996 +UDP message received [936] bytes : + +ACK sip:172.30.1.2:52602;transport=UDP SIP/2.0 +Record-Route: +Record-Route: +Record-Route: +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bK2aa1.8ac59f2766830c4e00c1ce7aa2635028.0 +Via: SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bK2aa1.a4232a23e01af25b4f87b4ef59883bf8.0 +Via: SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bK75Zf4a1J;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: ;tag=179047SIPpTag011 +CSeq: 2935 ACK +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +Max-Forwards: 68 +Content-Length: 0 +Contact: + + +----------------------------------------------- 2021-07-20 11:00:33.817566 +UDP message received [917] bytes : + +BYE sip:172.30.1.2:52602;transport=UDP SIP/2.0 +Record-Route: +Record-Route: +Record-Route: +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bKf9a1.d303694b06767ae9e89c3dae003bc76f.0 +Via: SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bKf9a1.9be24d40c1a4832133ba38f9a88e9712.0 +Via: SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bKq45F.agi;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: ;tag=179047SIPpTag011 +CSeq: 2936 BYE +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +Max-Forwards: 68 +P-Asserted-Identity: +Content-Length: 0 + + +----------------------------------------------- 2021-07-20 11:00:33.817989 +UDP message sent (566 bytes): + +SIP/2.0 200 OK +Via: SIP/2.0/UDP 192.168.1.152;branch=z9hG4bKf9a1.d303694b06767ae9e89c3dae003bc76f.0, SIP/2.0/UDP 127.0.0.1:5062;rport=5062;branch=z9hG4bKf9a1.9be24d40c1a4832133ba38f9a88e9712.0, SIP/2.0/UDP 127.0.0.1:5080;received=127.0.0.1;branch=z9hG4bKq45F.agi;rport=5080 +From: ;tag=53E70CC1-60F690AF0008EAB4-BA7EE700 +To: ;tag=179047SIPpTag011 +Call-ID: NGCP%invite_emergency%///1-179067@10.20.29.2_pbx-1 +CSeq: 2936 BYE +Contact: +Content-Length: 0 + + diff --git a/tests/fixtures/mix/sipp_scenario_responder00_test.yml.tt2 b/tests/fixtures/mix/sipp_scenario_responder00_test.yml.tt2 new file mode 100644 index 00000000..809b878b --- /dev/null +++ b/tests/fixtures/mix/sipp_scenario_responder00_test.yml.tt2 @@ -0,0 +1,40 @@ +messages: +- - 'INVITE sip:E1112@[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=udp SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-Asserted-Identity: ' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'Contact: ' + - 'v=0' + - 'o=user1 \d+ \d+ IN IP4 [% server_ip %]' + - 's=-' + - 'c=IN IP4 [% server_ip %]' + - 't=0 0' + - 'm=audio \d+ RTP/AVP 8' + - 'a=rtpmap:8 PCMA/8000' + - 'a=sendrecv' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'ACK sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' + - 'Contact: ' +- - 'BYE sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'P-Asserted-Identity: ' + - 'Content-Length: 0' diff --git a/tests/test_generate_test_tt2.py b/tests/test_generate_test_tt2.py index 79fc827a..18bd5155 100644 --- a/tests/test_generate_test_tt2.py +++ b/tests/test_generate_test_tt2.py @@ -209,8 +209,7 @@ def test_invite_redirect_tel_uri_resp(generate_test_tt2_file, caplog): def test_ok_incoming_hih(generate_test_tt2_file, caplog): caplog.set_level(logging.DEBUG) res = generate_test_tt2_file( - IDS_FILE.format("incoming_hih"), - MSG_FILE.format("incoming_hih", "00"), + IDS_FILE.format("incoming_hih"), MSG_FILE.format("incoming_hih", "00") ) assert check_filecontent( @@ -227,8 +226,7 @@ def test_incoming_hih_resp(generate_test_tt2_file, caplog): ) assert check_filecontent( - TT2_FILE.format("incoming_hih", "_responder01"), - res.out_file, + TT2_FILE.format("incoming_hih", "_responder01"), res.out_file ) assert res.returncode == 0 @@ -236,8 +234,7 @@ def test_incoming_hih_resp(generate_test_tt2_file, caplog): def test_mix(generate_test_tt2_file, caplog): caplog.set_level(logging.DEBUG) res = generate_test_tt2_file( - IDS_FILE.format("mix"), - MSG_FILE.format("mix", "00"), + IDS_FILE.format("mix"), MSG_FILE.format("mix", "00") ) assert check_filecontent(TT2_FILE.format("mix", "00"), res.out_file) @@ -247,9 +244,20 @@ def test_mix(generate_test_tt2_file, caplog): def test_mix_alias(generate_test_tt2_file, caplog): caplog.set_level(logging.DEBUG) res = generate_test_tt2_file( - IDS_FILE.format("mix"), - MSG_FILE.format("mix", "01"), + IDS_FILE.format("mix"), MSG_FILE.format("mix", "01") ) assert check_filecontent(TT2_FILE.format("mix", "01"), res.out_file) assert res.returncode == 0 + + +def test_mix_resp(generate_test_tt2_file, caplog): + caplog.set_level(logging.DEBUG) + res = generate_test_tt2_file( + IDS_FILE.format("mix"), MSG_FILE.format("mix", "_responder00") + ) + + assert check_filecontent( + TT2_FILE.format("mix", "_responder00"), res.out_file + ) + assert res.returncode == 0