diff --git a/scenarios/invite_fritz_prefix_removal/0005_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/0005_test.yml.tt2 index 7f39c242..548316f6 100644 --- a/scenarios/invite_fritz_prefix_removal/0005_test.yml.tt2 +++ b/scenarios/invite_fritz_prefix_removal/0005_test.yml.tt2 @@ -47,6 +47,10 @@ flow: - return|ROUTE_GET_CALLER_CLI: - start|ROUTE_GET_FORWARDER_CLI: - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_APPLY_CALLER_RWR: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR: - start|ROUTE_CLIR: - return|ROUTE_CLIR: - start|ROUTE_CALLER_BLOCK_CLI: @@ -56,6 +60,8 @@ flow: - return|ROUTE_CHECK_CLI_ALLOWED: - return|ROUTE_CHECK_USERPROV_CLI: - start|ROUTE_FIND_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - start|ROUTE_DETECT_LOOP: - return|ROUTE_DETECT_LOOP: - start|ROUTE_CLEAR_CALLEE_PREF: @@ -121,10 +127,14 @@ flow: - start|ROUTE_ACC_CALLER: - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - return|ROUTE_ACC_CALLER: - start|ROUTE_ACC_CALLEE: - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - return|ROUTE_ACC_CALLEE: - start|ROUTE_ADD_AOC_HEADER: - return|ROUTE_ADD_AOC_HEADER: @@ -158,6 +168,12 @@ flow: - start|ROUTE_PREPARE_MOH: - return|ROUTE_PREPARE_MOH: - start|ROUTE_SET_CALLER_CLI: + - start|ROUTE_APPLY_CALLER_RWR_FIRST: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR_FIRST: - start|ROUTE_PREPARE_CALLER_CLI: - return|ROUTE_PREPARE_CALLER_CLI: - start|ROUTE_PREPARE_CALLER_CLI: @@ -172,6 +188,8 @@ flow: - return|ROUTE_PREPARE_CALLER_CLI: - return|ROUTE_SET_CALLER_CLI: - start|ROUTE_SET_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - return|ROUTE_SET_CALLEE: - start|ROUTE_ADD_CALLINFO: - start|ROUTE_ADD_CALLINFO_CALLER_PRIMARY: diff --git a/scenarios/invite_fritz_prefix_removal/0021_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/0021_test.yml.tt2 index ba3d4039..8124a562 100644 --- a/scenarios/invite_fritz_prefix_removal/0021_test.yml.tt2 +++ b/scenarios/invite_fritz_prefix_removal/0021_test.yml.tt2 @@ -42,6 +42,10 @@ flow: - return|ROUTE_GET_CALLER_CLI: - start|ROUTE_GET_FORWARDER_CLI: - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_APPLY_CALLER_RWR: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR: - start|ROUTE_CLIR: - return|ROUTE_CLIR: - start|ROUTE_CALLER_BLOCK_CLI: @@ -51,6 +55,8 @@ flow: - return|ROUTE_CHECK_CLI_ALLOWED: - return|ROUTE_CHECK_USERPROV_CLI: - start|ROUTE_FIND_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - start|ROUTE_DETECT_LOOP: - return|ROUTE_DETECT_LOOP: - start|ROUTE_CHECK_PBX: diff --git a/scenarios/invite_fritz_prefix_removal/0029_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/0029_test.yml.tt2 index 07f3811a..eed62432 100644 --- a/scenarios/invite_fritz_prefix_removal/0029_test.yml.tt2 +++ b/scenarios/invite_fritz_prefix_removal/0029_test.yml.tt2 @@ -42,6 +42,10 @@ flow: - return|ROUTE_GET_CALLER_CLI: - start|ROUTE_GET_FORWARDER_CLI: - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_APPLY_CALLER_RWR: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR: - start|ROUTE_CLIR: - return|ROUTE_CLIR: - start|ROUTE_CALLER_BLOCK_CLI: @@ -51,6 +55,8 @@ flow: - return|ROUTE_CHECK_CLI_ALLOWED: - return|ROUTE_CHECK_USERPROV_CLI: - start|ROUTE_FIND_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - start|ROUTE_DETECT_LOOP: - return|ROUTE_DETECT_LOOP: - start|ROUTE_CLEAR_CALLEE_PREF: @@ -110,10 +116,14 @@ flow: - start|ROUTE_ACC_CALLER: - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - return|ROUTE_ACC_CALLER: - start|ROUTE_ACC_CALLEE: - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: - return|ROUTE_ACC_CALLEE: - return|ROUTE_ACC_FAILURE: - start|ROUTE_EARLY_REJECT: diff --git a/scenarios/invite_fritz_prefix_removal/0033_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/0033_test.yml.tt2 new file mode 100644 index 00000000..e2aa9369 --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/0033_test.yml.tt2 @@ -0,0 +1,238 @@ +flow: + - start|DEFAULT_ROUTE: + - start|ROUTE_ENTRY: + - return|ROUTE_ENTRY: + - start|ROUTE_NET_INFO: + - return|ROUTE_NET_INFO: + - start|ROUTE_CHECK_TEL_URI: + - return|ROUTE_CHECK_TEL_URI: + - start|ROUTE_PRX_REQUEST: + - start|ROUTE_INITVARS: + - return|ROUTE_INITVARS: + - start|ROUTE_INVITE: + - start|ROUTE_LOAD_CALLEE_DOMAIN_PREF: + - start|ROUTE_CLEAR_CALLEE_DOMAIN_PREF: + - return|ROUTE_CLEAR_CALLEE_DOMAIN_PREF: + - return|ROUTE_LOAD_CALLEE_DOMAIN_PREF: + - start|ROUTE_FIND_CALLER: + - start|ROUTE_AUTH: + - start|ROUTE_AUTH_HELPER: + - return|ROUTE_AUTH_HELPER: + - start|ROUTE_ADD_CALLINFO_REPLY: + - start|ROUTE_ADD_CALLINFO_CALLER_PRIMARY: + - return|ROUTE_ADD_CALLINFO_CALLER_PRIMARY: + - return|ROUTE_ADD_CALLINFO_REPLY: + - return|ROUTE_AUTH: + - return|ROUTE_FIND_CALLER: + - start|ROUTE_LOAD_CALLER_PREF: + - start|ROUTE_CLEAR_CALLER_PREF: + - return|ROUTE_CLEAR_CALLER_PREF: + - start|ROUTE_CHECK_UA: + - return|ROUTE_CHECK_UA: + - start|ROUTE_LOAD_CALLER_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLER_CONTRACT_PREF: + - start|ROUTE_LOAD_CALLER_RESELLER_PREF: + - return|ROUTE_LOAD_CALLER_RESELLER_PREF: + - return|ROUTE_LOAD_CALLER_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_FORWARDER_CLI: + - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_APPLY_CALLER_RWR: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR: + - start|ROUTE_CLIR: + - return|ROUTE_CLIR: + - start|ROUTE_CALLER_BLOCK_CLI: + - return|ROUTE_CALLER_BLOCK_CLI: + - start|ROUTE_CHECK_USERPROV_CLI: + - start|ROUTE_CHECK_CLI_ALLOWED: + - return|ROUTE_CHECK_CLI_ALLOWED: + - return|ROUTE_CHECK_USERPROV_CLI: + - start|ROUTE_FIND_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - start|ROUTE_DETECT_LOOP: + - return|ROUTE_DETECT_LOOP: + - start|ROUTE_EMERGENCY: + $avp(fritzcode): '110' + $var(dp_input): '110' + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - start|ROUTE_CHECK_PBX: + - return|ROUTE_CHECK_PBX: + - start|ROUTE_PSTN: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - start|ROUTE_PSTN_SELECT_PEER: + - start|ROUTE_CHECK_PEER_PROBE: + - return|ROUTE_CHECK_PEER_PROBE: + - start|ROUTE_CLEAR_PEER_OUT_PREF: + - return|ROUTE_CLEAR_PEER_OUT_PREF: + - start|ROUTE_LOAD_PEER_OUT_PREF: + - return|ROUTE_LOAD_PEER_OUT_PREF: + - return|ROUTE_PSTN_SELECT_PEER: + - start|ROUTE_OUTBOUND: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_ACC_CALLEE: + - start|ROUTE_ADD_AOC_HEADER: + - return|ROUTE_ADD_AOC_HEADER: + - start|BRANCH_ROUTE_SBC: + - start|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_PREPARE_UA: + - return|ROUTE_PREPARE_UA: + - return|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_BRANCH_ACC_RTP: + - return|ROUTE_BRANCH_ACC_RTP: + - start|ROUTE_FILTER_PRACK: + - return|ROUTE_FILTER_PRACK: + - start|ROUTE_PREPARE_SST: + - start|ROUTE_REMOVE_TIMER_SUPP_REQ: + - return|ROUTE_REMOVE_TIMER_SUPP_REQ: + - return|ROUTE_PREPARE_SST: + - start|ROUTE_PREPARE_MOH: + - return|ROUTE_PREPARE_MOH: + - start|ROUTE_SET_CALLER_CLI: + - start|ROUTE_APPLY_CALLER_RWR_FIRST: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_CALLER_RWR_FIRST: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_SET_CALLER_CLI: + - start|ROUTE_SET_CALLEE: + - start|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_APPLY_REWRITE_RULE: + - return|ROUTE_SET_CALLEE: + - start|ROUTE_ADD_CALLINFO: + - start|ROUTE_ADD_CALLINFO_CALLER_PRIMARY: + - return|ROUTE_ADD_CALLINFO_CALLER_PRIMARY: + - start|ROUTE_ADD_CALLINFO_CALLEE_PRIMARY: + - return|ROUTE_ADD_CALLINFO_CALLEE_PRIMARY: + - return|ROUTE_ADD_CALLINFO: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - return|BRANCH_ROUTE_SBC: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - 'INVITE sip:00431110@invite-fritz-prefix-removal.scenarios.test SIP/2.0' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Contact: ' + - 'Proxy-Authorization: Digest username="[% scenarios.0.username %]",realm="invite-fritz-prefix-removal.scenarios.test",uri="sip:[% server_ip %]:5060",nonce="[^"]+",response="[^"]+",algorithm=MD5' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' + - 'P-NGCP-Src-Ip: [% scenarios.0.ip %]' + - 'P-NGCP-Src-Port: [% scenarios.3.port %]' + - 'P-NGCP-Src-Proto: udp' + - 'P-NGCP-Src-Af: 4' + - 'P-Sock-Info: udp:[% server_ip %]:5060' + - 'P-LB-Uptime:\s+\d+' + - 'P-NGCP-Src-Nat: 1' + - 'v=0' + - 'o=user1 \d+ \d+ IN IP4 [% scenarios.0.ip %]' + - 's=-' + - 'c=IN IP4 [% scenarios.0.ip %]' + - 't=0 0' + - 'm=audio [% scenarios.3.mport %] RTP/AVP 8' + - 'a=rtpmap:8 PCMA/8000' + - 'a=ptime:50' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Out-Socket: udp:[% server_ip %]:5060', + 'P-NGCP-Auth-IP: [% scenarios.0.ip %]', + 'P-NGCP-Auth-UA: ', + 'Server: Sipwise NGCP Proxy', + 'Content-Length:\s+0', + ] + - [ + 'SIP/2.0 101 Connecting', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Out-Socket: udp:[% server_ip %]:5060', + 'P-NGCP-Auth-IP: [% scenarios.0.ip %]', + 'P-NGCP-Auth-UA: ', + 'P-NGCP-Authorization: testuser1002@invite-fritz-prefix-removal.scenarios.test', + 'P-NGCP-Authorized: 1', + 'P-NGCP-Caller-Info: ;ip=[% scenarios.3.ip %];port=[% scenarios.3.port %];primary=[% invite_fritz_prefix_removal_scenarios_test.testuser1002.phone_number %]', + 'P-Caller-UUID: [% invite_fritz_prefix_removal_scenarios_test.testuser1002.uuid %]', + 'Server: Sipwise NGCP Proxy', + 'Content-Length:\s+0', + ] + - [ + 'INVITE sip:emcprefix1110@[% scenarios.3.responders.0.ip %]:[% scenarios.3.responders.0.port %];transport=udp SIP/2.0', + 'Record-Route: ', + 'Record-Route: ', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-LB-Uptime:\s+\d+', + 'P-Asserted-Identity: ', + 'P-Caller-UUID: [% invite_fritz_prefix_removal_scenarios_test.testuser1002.uuid %]', + 'P-Callee-UUID: 0', + 'P-Called-Party-ID: ', + 'P-App-Param: ;calltimer=21600;aleg_sst_enable=no;sst_enable=no;hold_alter_b2b_bleg=no;hold_alter_b2b_aleg=no;fast_ack=no;a_park_domain=[% customer_test.id %];emergency=1', + 'P-App-Name: sbc', + 'P-NGCP-Caller-Info: ;ip=[% scenarios.3.ip %];port=[% scenarios.3.port %];primary=[% invite_fritz_prefix_removal_scenarios_test.testuser1002.phone_number %]', + 'P-NGCP-Callee-Info: ;ip=[% scenarios.3.responders.0.ip %];port=[% scenarios.3.responders.0.port %]', + 'P-D-Uri: sip:[% server_ip %]:5060;received=sip:[% scenarios.3.responders.0.ip %]:[% scenarios.3.responders.0.port %]%3blr%3btransport%3dudp', + 'P-Proxy-Uri: sip:[% server_ip %]:5062', + 'v=0', + 'o=user1 53655765 2353687637 IN IP4 192.168.8.178', + 's=-', + 'c=IN IP4 192.168.8.178', + 't=0 0', + 'm=audio \d+ RTP/AVP 8', + 'a=rtpmap:8 PCMA/8000', + 'a=sendrecv', + 'a=rtcp:\d+', + 'a=ptime:50', + ] + + diff --git a/scenarios/invite_fritz_prefix_removal/cdr_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/cdr_test.yml.tt2 index 7252c631..a756a917 100644 --- a/scenarios/invite_fritz_prefix_removal/cdr_test.yml.tt2 +++ b/scenarios/invite_fritz_prefix_removal/cdr_test.yml.tt2 @@ -26,4 +26,11 @@ cdr: call_type: 'call' call_status: 'noanswer' call_code: '480' - + - source_user: 'testuser1002' + source_domain: 'invite-fritz-prefix-removal.scenarios.test' + source_cli: '[% invite_fritz_prefix_removal_scenarios_test.testuser1002.phone_number %]' + destination_user: 'emergency_110' + destination_user_dialed: '00431110' + call_type: 'call' + call_status: 'ok' + call_code: '200' diff --git a/scenarios/invite_fritz_prefix_removal/emergency.yml b/scenarios/invite_fritz_prefix_removal/emergency.yml new file mode 100644 index 00000000..55e7ecd6 --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/emergency.yml @@ -0,0 +1,6 @@ +emc_test: + reseller_id: 1 + mappings: + - suffix: emcsuffix + code: 110 + prefix: emcprefix diff --git a/scenarios/invite_fritz_prefix_removal/peer.yml b/scenarios/invite_fritz_prefix_removal/peer.yml new file mode 100644 index 00000000..6204cabb --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/peer.yml @@ -0,0 +1,27 @@ +--- +peer_invite_emergency: + contact: + company: peer_invite_emergency + email: peer_invite_emergency@host0.not + contract: + billing_profile_id: 1 + status: active + type: sippeering + groups: + - name: peer_invite_emergency_group + priority: 1 + description: + rules: + - group_id: peer_invite_emergency_group + callee_prefix: "" + callee_pattern: '' + caller_pattern: '^sip:.+@invite-fritz-prefix-removal.scenarios.test' + description: "" + hosts: + - group_id: peer_invite_emergency_group + name: peer_invite_emergency_host0 + ip: 127.0.2.1 + port: 51602 + host: + transport: 1 + weight: 1 diff --git a/scenarios/invite_fritz_prefix_removal/prefs.json.tt2 b/scenarios/invite_fritz_prefix_removal/prefs.json.tt2 index 1f875449..0ae720e7 100644 --- a/scenarios/invite_fritz_prefix_removal/prefs.json.tt2 +++ b/scenarios/invite_fritz_prefix_removal/prefs.json.tt2 @@ -1,5 +1,13 @@ { "@invite-fritz-prefix-removal.scenarios.test": { - "nat_sipping": "no" + "nat_sipping": "no", + "emergency_prefix": "emergency_", + "rewrite_rule_set": "rw_invite_emergency_00", + "emergency_mapping_container_id": [% emergencymapping.emc_test.id %] + }, + "peer_invite_emergency_host0": { + "rewrite_rule_set": "rw_invite_emergency_01", + "concurrent_max": 0 } } + diff --git a/scenarios/invite_fritz_prefix_removal/rewrite.yml b/scenarios/invite_fritz_prefix_removal/rewrite.yml new file mode 100644 index 00000000..8d108310 --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/rewrite.yml @@ -0,0 +1,16 @@ +--- +rw_invite_emergency_00: + - direction: in + field: callee + match_pattern: '^(911|118|110)$' + replace_pattern: 'emergency_\1' + priority: 1 + description: Tag Emergency Numbers +rw_invite_emergency_01: + - direction: out + field: callee + match_pattern: '^emergency_(.+)$' + replace_pattern: '${caller_emergency_prefix}${caller_ac}\1' + priority: 1 + description: Normalize Emergency Numbers + diff --git a/scenarios/invite_fritz_prefix_removal/scenario.yml b/scenarios/invite_fritz_prefix_removal/scenario.yml index 3ea355a0..a7fe0d72 100644 --- a/scenarios/invite_fritz_prefix_removal/scenario.yml +++ b/scenarios/invite_fritz_prefix_removal/scenario.yml @@ -76,3 +76,13 @@ scenarios: username: 0999112 domain: invite-fritz-prefix-removal.scenarios.test register: 'no' + - ip: 127.126.0.5 + username: testuser1002 + domain: invite-fritz-prefix-removal.scenarios.test + responders: + - ip: 127.0.2.1 + number: 911 + username: 911 + domain: invite-fritz-prefix-removal.scenarios.test + peer_host: peer_invite_emergency_host0 + register: 'no' \ No newline at end of file diff --git a/scenarios/invite_fritz_prefix_removal/sipp_scenario03.xml b/scenarios/invite_fritz_prefix_removal/sipp_scenario03.xml new file mode 100644 index 00000000..4c891c9f --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/sipp_scenario03.xml @@ -0,0 +1,147 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 1 INVITE + Contact: + 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=3]%///[call_id] + CSeq: 1 ACK + Contact: + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 2 INVITE + Contact: + Max-Forwards: 70 + [field1 file="caller.csv" line=3] + 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=3]%///[call_id] + [routes] + CSeq: 2 ACK + Contact: + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 3 BYE + Contact: + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + + diff --git a/scenarios/invite_fritz_prefix_removal/sipp_scenario03_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/sipp_scenario03_test.yml.tt2 new file mode 100644 index 00000000..bf844f1d --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/sipp_scenario03_test.yml.tt2 @@ -0,0 +1,56 @@ +messages: +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length:\s+0' +- - 'SIP/2.0 407 Proxy Authentication Required' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authenticate: Digest realm="invite-fritz-prefix-removal.scenarios.test", nonce="[^"]+"' + - 'Server: Sipwise NGCP Proxy' + - 'Content-Length:\s+0' +- - 'SIP/2.0 100 Trying' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Server: Sipwise NGCP LB' + - 'Content-Length:\s+0' +- - 'SIP/2.0 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length:\s+0' + - 'Contact: ' +- - 'SIP/2.0 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,PRACK,SUBSCRIBE,NOTIFY,MESSAGE,PUBLISH' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' + - 'Contact: ' + - 'v=0' + - 'o=user1 53655765 2353687637 IN IP4 192.168.8.178' + - 's=-' + - 'c=IN IP4 192.168.8.178' + - '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 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,PRACK,SUBSCRIBE,NOTIFY,MESSAGE,PUBLISH' + - 'Content-Length:\s+0' diff --git a/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03.xml b/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03.xml new file mode 100644 index 00000000..d9cea470 --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03.xml @@ -0,0 +1,79 @@ + + + + + + + + + + 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-Length: [len] + + ]]> + + + + + + + + diff --git a/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03_test.yml.tt2 b/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03_test.yml.tt2 new file mode 100644 index 00000000..1b8aee85 --- /dev/null +++ b/scenarios/invite_fritz_prefix_removal/sipp_scenario_responder03_test.yml.tt2 @@ -0,0 +1,40 @@ +messages: +- - 'INVITE sip:emcprefix1110@[% scenarios.3.responders.0.ip %]:[% scenarios.3.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:\s+\d+' + - 'Contact: ' + - 'v=0' + - 'o=user1 53655765 2353687637 IN IP4 192.168.8.178' + - 's=-' + - 'c=IN IP4 192.168.8.178' + - '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.3.responders.0.ip %]:[% scenarios.3.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:\s+0' + - 'Contact: ' +- - 'BYE sip:[% scenarios.3.responders.0.ip %]:[% scenarios.3.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:\s+0'