diff --git a/scenarios_pbx/config.yml b/scenarios_pbx/config.yml index 7d6cb0ed..1a695ce7 100644 --- a/scenarios_pbx/config.yml +++ b/scenarios_pbx/config.yml @@ -1,7 +1,13 @@ +--- +b2b: + sbc: + xfer: + blind_immediate_release: yes + enable: yes kamailio: proxy: - allow_refer_method: 'yes' + allow_refer_method: yes presence: - enable: 'yes' + enable: yes pbx: - enable: 'yes' + enable: yes diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/cdr_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/cdr_test.yml.tt2 new file mode 100644 index 00000000..48d1673e --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/cdr_test.yml.tt2 @@ -0,0 +1,11 @@ +cdr: + - source_user: 'testuser1002' + source_domain: 'invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test' + source_cli: '[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1002.phone_number %]' + destination_user: 'testuser1003' + destination_domain: 'invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test' + destination_user_dialed: '[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.phone_number %]' + destination_user_in: '[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/media181sec.pcap b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/media181sec.pcap new file mode 120000 index 00000000..d95ed875 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/media181sec.pcap @@ -0,0 +1 @@ +../media181sec.pcap \ No newline at end of file diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/scenario.yml b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/scenario.yml new file mode 100644 index 00000000..bae18cde --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/scenario.yml @@ -0,0 +1,54 @@ + +test_uuid: invite_xfer_blind_callee_immediat_rel_immediat_rel +domains: + invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test: + reseller_id: 1 +customers: + 'invite_xfer_blind_callee_immediat_rel.customerpbx.test': + contacts: + - email: "invite_xfer_blind_callee_immediat_rel.customerpbx.test@spce.test" + reseller_id: 1 + details: + status: 'active' + type: 'pbxaccount' + billing_profile_id: 1 + reseller_id: 1 +subscribers: + invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test: + testuser1002: + customer: 'invite_xfer_blind_callee_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1002 + is_pbx_pilot: 1 + pbx_extension: 1002 + testuser1003: + customer: 'invite_xfer_blind_callee_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1003 + is_pbx_pilot: 0 + pbx_extension: 1003 + testuser1004: + customer: 'invite_xfer_blind_callee_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1004 + is_pbx_pilot: 0 + pbx_extension: 1004 +scenarios: + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test + responders: + - ip: 127.1.0.1 + username: testuser1003 + domain: invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test + register: yes + - ip: 127.1.0.2 + username: testuser1004 + domain: invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test + register: yes diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00.xml b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00.xml new file mode 100644 index 00000000..85fdfadd --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00.xml @@ -0,0 +1,222 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 1 INVITE + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 2 INVITE + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + [field1 file="caller.csv"] + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + [routes] + CSeq: 2 ACK + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655766 2353687638 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + a=recvonly + + ]]> + + + + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655767 2353687639 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + a=sendrecv + + ]]> + + + + + + + + + + + + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 3 BYE + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00_test.yml.tt2 new file mode 100644 index 00000000..dd9ecf27 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario00_test.yml.tt2 @@ -0,0 +1,120 @@ +messages: +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 407 Proxy Authentication Required' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authenticate: Digest realm="invite-xfer-blind-callee-immediat-rel.scenarios-pbx.test", nonce="[^"]+"' + - 'Server: Sipwise NGCP Proxy' + - 'Content-Length: 0' +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length: 0' + - 'P-Asserted-Identity: "[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - 'Contact: ' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Asserted-Identity: "[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - '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' +- - 'INVITE sip:[% scenarios.0.username %]@[% scenarios.0.ip %]:[% scenarios.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Asserted-Identity: "[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - '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=sendonly' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'ACK sip:[% scenarios.0.ip %]:[% scenarios.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: ' +- - 'INVITE sip:[% scenarios.0.ip %]:[% scenarios.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Asserted-Identity: "[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - '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.0.ip %]:[% scenarios.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: ' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' + - 'P-Asserted-Identity: "[% invite_xfer_blind_callee_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00.xml b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00.xml new file mode 100644 index 00000000..aaff6b79 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00.xml @@ -0,0 +1,175 @@ + + + + + + + + + + Content-Length: 0 + + ]]> + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Referred-By: + Content-Length: 0 + + ]]> + + + + + + + + + + + + + Content-Length: [len] + + ]]> + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00_test.yml.tt2 new file mode 100644 index 00000000..410e00cf --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder00_test.yml.tt2 @@ -0,0 +1,73 @@ +messages: +- - 'INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] 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.0.responders.0.ip %]:[% scenarios.0.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: ' +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - '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=recvonly' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'SIP/2.0 202 Accepted' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ REFER' + - 'Content-Length: 0' +- - 'BYE sip:[% scenarios.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01.xml b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01.xml new file mode 100644 index 00000000..38d05316 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01.xml @@ -0,0 +1,112 @@ + + + + + + + + + + Content-Length: 0 + + ]]> + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + Content-Length: [len] + + ]]> + + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01_test.yml.tt2 new file mode 100644 index 00000000..28abb6c0 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_callee_immediat_rel/sipp_scenario_responder01_test.yml.tt2 @@ -0,0 +1,70 @@ +messages: +- - 'INVITE sip:[% scenarios.0.responders.1.username %]@[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %] 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.0.responders.1.ip %]:[% scenarios.0.responders.1.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: ' +- - 'INVITE sip:[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - '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.0.responders.1.ip %]:[% scenarios.0.responders.1.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.0.responders.1.ip %]:[% scenarios.0.responders.1.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/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/cdr_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/cdr_test.yml.tt2 new file mode 100644 index 00000000..880470eb --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/cdr_test.yml.tt2 @@ -0,0 +1,11 @@ +cdr: + - source_user: 'testuser1002' + source_domain: 'invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test' + source_cli: '[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1002.phone_number %]' + destination_user: 'testuser1003' + destination_domain: 'invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test' + destination_user_dialed: '[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.phone_number %]' + destination_user_in: '[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/media181sec.pcap b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/media181sec.pcap new file mode 120000 index 00000000..d95ed875 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/media181sec.pcap @@ -0,0 +1 @@ +../media181sec.pcap \ No newline at end of file diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/scenario.yml b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/scenario.yml new file mode 100644 index 00000000..cf6c1c4b --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/scenario.yml @@ -0,0 +1,53 @@ +test_uuid: invite_xfer_blind_caller_immediat_rel_immediat_rel +domains: + invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test: + reseller_id: 1 +customers: + 'invite_xfer_blind_caller_immediat_rel.customerpbx.test': + contacts: + - email: "invite_xfer_blind_caller_immediat_rel.customerpbx.test@spce.test" + reseller_id: 1 + details: + status: 'active' + type: 'pbxaccount' + billing_profile_id: 1 + reseller_id: 1 +subscribers: + invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test: + testuser1002: + customer: 'invite_xfer_blind_caller_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1002 + is_pbx_pilot: 1 + pbx_extension: 1002 + testuser1003: + customer: 'invite_xfer_blind_caller_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1003 + is_pbx_pilot: 0 + pbx_extension: 1003 + testuser1004: + customer: 'invite_xfer_blind_caller_immediat_rel.customerpbx.test' + password: testuser + cc: 43 + ac: 1 + sn: 1004 + is_pbx_pilot: 0 + pbx_extension: 1004 +scenarios: + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test + responders: + - ip: 127.1.0.1 + username: testuser1003 + domain: invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test + register: yes + - ip: 127.1.0.2 + username: testuser1004 + domain: invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test + register: yes diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00.xml b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00.xml new file mode 100644 index 00000000..9ca34925 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00.xml @@ -0,0 +1,225 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 1 INVITE + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 2 INVITE + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + [field1 file="caller.csv"] + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + [routes] + CSeq: 2 ACK + Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Referred-By: + Content-Length: 0 + + ]]> + + + + + + + + + + + + + Content-Length: [len] + + ]]> + + + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00_test.yml.tt2 new file mode 100644 index 00000000..2062dd96 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario00_test.yml.tt2 @@ -0,0 +1,96 @@ +messages: +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 407 Proxy Authentication Required' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authenticate: Digest realm="invite-xfer-blind-caller-immediat-rel.scenarios-pbx.test", nonce="[^"]+"' + - 'Server: Sipwise NGCP Proxy' + - 'Content-Length: 0' +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length: 0' + - 'P-Asserted-Identity: "[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - 'Contact: ' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Asserted-Identity: "[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - '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' +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length: 0' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Asserted-Identity: "[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' + - '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=recvonly' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'SIP/2.0 202 Accepted' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ REFER' + - 'Content-Length: 0' + - 'P-Asserted-Identity: "[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' +- - 'BYE sip:[% scenarios.0.username %]@[% scenarios.0.ip %]:[% scenarios.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' + - 'P-Asserted-Identity: "[% invite_xfer_blind_caller_immediat_rel_scenarios_pbx_test.testuser1003.pbx_extension %]" ' diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00.xml b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00.xml new file mode 100644 index 00000000..2d19df27 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00.xml @@ -0,0 +1,188 @@ + + + + + + + + + + Content-Length: 0 + + ]]> + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + a=recvonly + + ]]> + + + + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + a=sendrecv + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00_test.yml.tt2 new file mode 100644 index 00000000..020de621 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder00_test.yml.tt2 @@ -0,0 +1,98 @@ +messages: +- - 'INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] 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.0.responders.0.ip %]:[% scenarios.0.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: ' +- - 'INVITE sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - '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=sendonly' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'ACK sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.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: ' +- - 'INVITE sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - '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.0.responders.0.ip %]:[% scenarios.0.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: ' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01.xml b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01.xml new file mode 100644 index 00000000..33fb6bca --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01.xml @@ -0,0 +1,111 @@ + + + + + + + + + + Content-Length: 0 + + ]]> + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[media_ip_type] [media_ip] + t=0 0 + m=audio [media_port] RTP/AVP 8 + a=rtpmap:8 PCMA/8000 + a=ptime:50 + + ]]> + + + + + + + + + + + Content-Length: [len] + + ]]> + + + + + + + diff --git a/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01_test.yml.tt2 b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01_test.yml.tt2 new file mode 100644 index 00000000..591bf801 --- /dev/null +++ b/scenarios_pbx/invite_xfer_blind_caller_immediat_rel/sipp_scenario_responder01_test.yml.tt2 @@ -0,0 +1,70 @@ +messages: +- - 'INVITE sip:[% scenarios.0.responders.1.username %]@[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %] 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.0.responders.1.ip %]:[% scenarios.0.responders.1.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: ' +- - 'INVITE sip:[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - '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.0.responders.1.ip %]:[% scenarios.0.responders.1.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.0.responders.1.ip %]:[% scenarios.0.responders.1.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'