diff --git a/.gitignore b/.gitignore index 4caae5a9..cf463d48 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ presence_*xml presence.sh apicert.pem .ngcpcfg_perms +prefs.json diff --git a/bin/config_files.sh b/bin/config_files.sh index e553442d..92f82f96 100755 --- a/bin/config_files.sh +++ b/bin/config_files.sh @@ -12,7 +12,7 @@ fi case ${GROUP} in scenarios) mkdir -p /etc/kamailio/stir/ - cp "${BASE_DIR}/${GROUP}/invite-peerout-stir.scenarios.test.key" \ + cp "${BASE_DIR}/${GROUP}"/invite-peerout-stir.scenarios.test.*key \ /etc/kamailio/stir/ chown -R kamailio:kamailio /etc/kamailio/stir/ echo "$(date) - Added stir file keys" diff --git a/scenarios/incoming_peer_stir/0003_test.yml.tt2 b/scenarios/incoming_peer_stir/0003_test.yml.tt2 new file mode 100644 index 00000000..40809148 --- /dev/null +++ b/scenarios/incoming_peer_stir/0003_test.yml.tt2 @@ -0,0 +1,210 @@ +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_PSTN_SELECT_INBOUND_PEER: + - return|ROUTE_PSTN_SELECT_INBOUND_PEER: + - start|ROUTE_CLEAR_PEER_IN_PREF: + - return|ROUTE_CLEAR_PEER_IN_PREF: + - start|ROUTE_LOAD_PEER_IN_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - return|ROUTE_LOAD_PEER_IN_PREF: + $avp(lua_dlg_profile): ["peer:[% peer_00_host0.id %]", "total"] + $avp(from_pstn): [1] + - return|ROUTE_FIND_CALLER: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_FORWARDER_CLI: + - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_CLIR: + - return|ROUTE_CLIR: + - start|ROUTE_CALLER_BLOCK_CLI: + - return|ROUTE_CALLER_BLOCK_CLI: + - start|ROUTE_FIND_CALLEE: + - start|ROUTE_CLEAR_CALLEE_PREF: + - return|ROUTE_CLEAR_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - start|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLEE_DIALOG: + $avp(lua_dlg_profile): [ + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + $xavp(caller_peer_prefs[0]=>concurrent_max[*]): [1] + - start|ROUTE_STIR_CHECK: + $xavp(callee_real_prefs[0]=>stir_check[*]): [1] + $x_fd: invite-peerout-stir.scenarios.test + $sht(stir=>invite-peerout-stir.scenarios.test): "/etc/kamailio/stir/invite-peerout-stir.scenarios.test.key" + - return|ROUTE_STIR_CHECK: + $var(tmp): "/etc/kamailio/stir/invite-peerout-stir.scenarios.test.pubkey" + $var(rc): 1 + - start|ROUTE_NCOS_CHECK: + - start|ROUTE_NCOS: + - return|ROUTE_NCOS: + - start|ROUTE_NCOS: + - return|ROUTE_NCOS: + - start|ROUTE_NCOS: + - return|ROUTE_NCOS: + - start|ROUTE_NCOS: + - return|ROUTE_NCOS: + - return|ROUTE_NCOS_CHECK: + - start|ROUTE_BLOCK_OUT: + - return|ROUTE_BLOCK_OUT: + - start|ROUTE_CHECK_PBX: + - return|ROUTE_CHECK_PBX: + - start|ROUTE_CALLEE_DISPATCH: + - start|ROUTE_INVITE_TO_INT: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_CF_CFU: + - return|ROUTE_CF_CFU: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - start|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - return|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - start|ROUTE_OUTBOUND: + - start|ROUTE_SET_CALLER_DIALOG: + $avp(lua_dlg_profile): [ + "incoming", + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLER_DIALOG: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_ACC_CALLEE: + - start|ROUTE_ADD_AOC_HEADER: + - return|ROUTE_ADD_AOC_HEADER: + - start|BRANCH_ROUTE_SBC: + - start|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - start|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_PREPARE_UA: + - return|ROUTE_PREPARE_UA: + - return|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_SET_RUSER: + - return|ROUTE_SET_RUSER: + - start|ROUTE_BRANCH_ACC_RTP: + - return|ROUTE_BRANCH_ACC_RTP: + - start|ROUTE_FILTER_PRACK: + - return|ROUTE_FILTER_PRACK: + - start|ROUTE_PREPARE_SST: + - return|ROUTE_PREPARE_SST: + - start|ROUTE_PREPARE_MOH: + - return|ROUTE_PREPARE_MOH: + - start|ROUTE_SET_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: + - start|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_PREPARE_CALLER_CLI: + - return|ROUTE_SET_CALLER_CLI: + - start|ROUTE_SET_CALLEE: + - 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: + # branch ?? + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + $avp(lua_dlg_profile): [ + "incoming", + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] +sip_in: + - '^INVITE sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@' + - 'Contact: sip:[% scenarios.0.username %]@' + - 'CSeq: 1 INVITE' + - 'Max-Forwards: 69' + - 'Content-Type: application/sdp' + - 'Identity: [^;]+;info=;alg=ES256;ppt=shaken' + - 'P-Asserted-Identity: ' +sip_out: + - [ + '^SIP/2.0 100 Trying', + 'CSeq: 1 INVITE', + 'From: ;alg=ES256;ppt=shaken', + 'P-Caller-UUID: 0', + 'P-Callee-UUID: [% incoming_peer_stir_scenarios_test.testuser1003.uui %]', + 'P-Asserted-Identity: ;verstat=TN-Validation-Passed', + 'P-Called-Party-ID: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-LB-Uptime: \d+' + - 'P-Asserted-Identity: ;verstat=TN-Validation-Passed' + - 'P-Caller-UUID: 0' + - 'P-NGCP-Caller-Info: ;ip=[% scenarios.0.ip %];port=[% scenarios.0.port %]' + - 'P-NGCP-Callee-Info: ;ip=127.0.0.1;port=5060;primary=[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + - 'P-D-Uri: sip:lb@127.0.0.1;lr;socket=sip:127.0.0.1:5060' + - 'Content-Type: application/sdp' + - 'Contact: ' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Server: Sipwise NGCP Proxy', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:testuser1003@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-LB-Uptime: \d+', + 'P-Asserted-Identity: ;verstat=TN-Validation-Passed', + 'P-Caller-UUID: 0', + 'P-NGCP-Caller-Info: ;ip=[% scenarios.0.ip %];port=[% scenarios.0.port %]', + 'P-NGCP-Callee-Info: ;ip=127.0.0.1;port=5060;primary=[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]', + 'P-D-Uri: sip:lb@127.0.0.1;lr;socket=sip:127.0.0.1:5060', + 'Content-Type: application/sdp', + 'Contact: ', + 'Content-Length:\s+\d+', + ] diff --git a/scenarios/incoming_peer_stir/0008_test.yml.tt2 b/scenarios/incoming_peer_stir/0008_test.yml.tt2 new file mode 100644 index 00000000..8a914f9e --- /dev/null +++ b/scenarios/incoming_peer_stir/0008_test.yml.tt2 @@ -0,0 +1,23 @@ +# INVITE_OFFLINE scenario +flow: + - start|DEFAULT_ONREPLY: + - start|REPLY_ROUTE_NAT: + - start|ROUTE_ENTRY: + - return|ROUTE_ENTRY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_PREPARE_UA: + - return|ROUTE_PREPARE_UA: + - start|REPLY_ROUTE_NAT_CONTINUE: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - '^SIP/2.0 180 Ringing' + - 'CSeq: 1 INVITE' +sip_out: + - [ + '^SIP/2.0 180 Ringing', + 'CSeq: 1 INVITE', + ] diff --git a/scenarios/incoming_peer_stir/0010_test.yml.tt2 b/scenarios/incoming_peer_stir/0010_test.yml.tt2 new file mode 100644 index 00000000..2c405f98 --- /dev/null +++ b/scenarios/incoming_peer_stir/0010_test.yml.tt2 @@ -0,0 +1,39 @@ +flow: + - start|DEFAULT_ONREPLY: + - start|REPLY_ROUTE_NAT: + - start|ROUTE_ENTRY: + - return|ROUTE_ENTRY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_PREPARE_UA: + - return|ROUTE_PREPARE_UA: + - start|REPLY_ROUTE_RTPENGINE: + - return|REPLY_ROUTE_RTPENGINE: + - start|REPLY_ROUTE_NAT_CONTINUE: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - start|dialog:start: + - return|dialog:start: + $avp(lua_dlg_profile): [ + "incoming", + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - return|dialog:start: +sip_in: + - '^SIP/2.0 200 OK' + - 'CSeq: 1 INVITE' + - 'From: concurrent_max[*]): [1] + - start|ROUTE_STIR_CHECK: + $xavp(callee_real_prefs[0]=>stir_check[*]): [1] + $x_fd: incoming-peer-stir.host0.peer.scenarios.test + - start|ROUTE_ACC_FAILURE: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_ACC_CALLEE: + - return|ROUTE_ACC_FAILURE: + - start|ROUTE_EARLY_REJECT: + - start|ROUTE_ADD_CALLINFO_REPLY: + - 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_REPLY: + - start|ROUTE_LOCAL_REPLY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|dialog:failed: + - return|dialog:failed: + - return|dialog:failed: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + $avp(lua_dlg_profile): None +sip_in: + - '^INVITE sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@' + - 'Contact: sip:[% scenarios.1.username %]@' + - 'CSeq: 1 INVITE' + - 'Max-Forwards: 69' + - 'Content-Type: application/sdp' + - '_:NOT:_Identity: [^;]+;info=;alg=ES256;ppt=shaken' + - 'P-Asserted-Identity: ' +sip_out: + - [ + '^SIP/2.0 100 Trying', + 'CSeq: 1 INVITE', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + ] diff --git a/scenarios/incoming_peer_stir/0018_test.yml.tt2 b/scenarios/incoming_peer_stir/0018_test.yml.tt2 new file mode 100644 index 00000000..f9304df8 --- /dev/null +++ b/scenarios/incoming_peer_stir/0018_test.yml.tt2 @@ -0,0 +1,20 @@ +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_LOCAL: + - return|ROUTE_LOCAL: +sip_in: + - 'ACK sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@incoming-peer-stir.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' +sip_out: [] diff --git a/scenarios/incoming_peer_stir/0019_test.yml.tt2 b/scenarios/incoming_peer_stir/0019_test.yml.tt2 new file mode 100644 index 00000000..afe757b3 --- /dev/null +++ b/scenarios/incoming_peer_stir/0019_test.yml.tt2 @@ -0,0 +1,114 @@ +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_PSTN_SELECT_INBOUND_PEER: + - return|ROUTE_PSTN_SELECT_INBOUND_PEER: + - start|ROUTE_CLEAR_PEER_IN_PREF: + - return|ROUTE_CLEAR_PEER_IN_PREF: + - start|ROUTE_LOAD_PEER_IN_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - return|ROUTE_LOAD_PEER_IN_PREF: + $avp(lua_dlg_profile): ["peer:[% peer_00_host0.id %]", "total"] + $avp(from_pstn): [1] + - return|ROUTE_FIND_CALLER: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_FORWARDER_CLI: + - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_CLIR: + - return|ROUTE_CLIR: + - start|ROUTE_CALLER_BLOCK_CLI: + - return|ROUTE_CALLER_BLOCK_CLI: + - start|ROUTE_FIND_CALLEE: + - start|ROUTE_CLEAR_CALLEE_PREF: + - return|ROUTE_CLEAR_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - start|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLEE_DIALOG: + $avp(lua_dlg_profile): [ + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + $xavp(caller_peer_prefs[0]=>concurrent_max[*]): [1] + - start|ROUTE_STIR_CHECK: + $xavp(callee_real_prefs[0]=>stir_check[*]): [1] + $x_fd: incoming-peer-stir.host0.peer.scenarios.test + - start|ROUTE_ACC_FAILURE: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_ACC_CALLEE: + - return|ROUTE_ACC_FAILURE: + - start|ROUTE_EARLY_REJECT: + - start|ROUTE_ADD_CALLINFO_REPLY: + - 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_REPLY: + - start|ROUTE_LOCAL_REPLY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|dialog:failed: + - return|dialog:failed: + - return|dialog:failed: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + $avp(lua_dlg_profile): None +sip_in: + - '^INVITE sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@' + - 'Contact: sip:[% scenarios.2.username %]@' + - 'CSeq: 1 INVITE' + - 'Max-Forwards: 69' + - 'Content-Type: application/sdp' + - '_:NOT:_Identity: [^;]+;info=;alg=ES256;ppt=shaken' + - 'P-Asserted-Identity: ' +sip_out: + - [ + '^SIP/2.0 100 Trying', + 'CSeq: 1 INVITE', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + ] diff --git a/scenarios/incoming_peer_stir/0020_test.yml.tt2 b/scenarios/incoming_peer_stir/0020_test.yml.tt2 new file mode 100644 index 00000000..988ebaa7 --- /dev/null +++ b/scenarios/incoming_peer_stir/0020_test.yml.tt2 @@ -0,0 +1,20 @@ +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_LOCAL: + - return|ROUTE_LOCAL: +sip_in: + - 'ACK sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@incoming-peer-stir.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' +sip_out: [] diff --git a/scenarios/incoming_peer_stir/0021_test.yml.tt2 b/scenarios/incoming_peer_stir/0021_test.yml.tt2 new file mode 100644 index 00000000..fc9a042b --- /dev/null +++ b/scenarios/incoming_peer_stir/0021_test.yml.tt2 @@ -0,0 +1,114 @@ +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_PSTN_SELECT_INBOUND_PEER: + - return|ROUTE_PSTN_SELECT_INBOUND_PEER: + - start|ROUTE_CLEAR_PEER_IN_PREF: + - return|ROUTE_CLEAR_PEER_IN_PREF: + - start|ROUTE_LOAD_PEER_IN_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - return|ROUTE_LOAD_PEER_IN_PREF: + $avp(lua_dlg_profile): ["peer:[% peer_00_host0.id %]", "total"] + $avp(from_pstn): [1] + - return|ROUTE_FIND_CALLER: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_FORWARDER_CLI: + - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_CLIR: + - return|ROUTE_CLIR: + - start|ROUTE_CALLER_BLOCK_CLI: + - return|ROUTE_CALLER_BLOCK_CLI: + - start|ROUTE_FIND_CALLEE: + - start|ROUTE_CLEAR_CALLEE_PREF: + - return|ROUTE_CLEAR_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - start|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLEE_DIALOG: + $avp(lua_dlg_profile): [ + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + $xavp(caller_peer_prefs[0]=>concurrent_max[*]): [1] + - start|ROUTE_STIR_CHECK: + $xavp(callee_real_prefs[0]=>stir_check[*]): [1] + $x_fd: incoming-peer-stir.host0.peer.scenarios.test + - start|ROUTE_ACC_FAILURE: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_ACC_CALLEE: + - return|ROUTE_ACC_FAILURE: + - start|ROUTE_EARLY_REJECT: + - start|ROUTE_ADD_CALLINFO_REPLY: + - 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_REPLY: + - start|ROUTE_LOCAL_REPLY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|dialog:failed: + - return|dialog:failed: + - return|dialog:failed: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + $avp(lua_dlg_profile): None +sip_in: + - '^INVITE sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@' + - 'Contact: sip:[% scenarios.3.username %]@' + - 'CSeq: 1 INVITE' + - 'Max-Forwards: 69' + - 'Content-Type: application/sdp' + - 'Identity: [^;]+;info=;alg=ES256;ppt=shaken' + - 'P-Asserted-Identity: ' +sip_out: + - [ + '^SIP/2.0 100 Trying', + 'CSeq: 1 INVITE', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + ] diff --git a/scenarios/incoming_peer_stir/0022_test.yml.tt2 b/scenarios/incoming_peer_stir/0022_test.yml.tt2 new file mode 100644 index 00000000..4d2877df --- /dev/null +++ b/scenarios/incoming_peer_stir/0022_test.yml.tt2 @@ -0,0 +1,20 @@ +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_LOCAL: + - return|ROUTE_LOCAL: +sip_in: + - 'ACK sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@incoming-peer-stir.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' +sip_out: [] diff --git a/scenarios/incoming_peer_stir/0023_test.yml.tt2 b/scenarios/incoming_peer_stir/0023_test.yml.tt2 new file mode 100644 index 00000000..8e7f1c21 --- /dev/null +++ b/scenarios/incoming_peer_stir/0023_test.yml.tt2 @@ -0,0 +1,114 @@ +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_PSTN_SELECT_INBOUND_PEER: + - return|ROUTE_PSTN_SELECT_INBOUND_PEER: + - start|ROUTE_CLEAR_PEER_IN_PREF: + - return|ROUTE_CLEAR_PEER_IN_PREF: + - start|ROUTE_LOAD_PEER_IN_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - return|ROUTE_LOAD_PEER_IN_PREF: + $avp(lua_dlg_profile): ["peer:[% peer_00_host0.id %]", "total"] + $avp(from_pstn): [1] + - return|ROUTE_FIND_CALLER: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_CALLER_CLI: + - return|ROUTE_GET_CALLER_CLI: + - start|ROUTE_GET_FORWARDER_CLI: + - return|ROUTE_GET_FORWARDER_CLI: + - start|ROUTE_CLIR: + - return|ROUTE_CLIR: + - start|ROUTE_CALLER_BLOCK_CLI: + - return|ROUTE_CALLER_BLOCK_CLI: + - start|ROUTE_FIND_CALLEE: + - start|ROUTE_CLEAR_CALLEE_PREF: + - return|ROUTE_CLEAR_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_PREF: + - start|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - return|ROUTE_LOAD_CALLEE_CONTRACT_PREF: + - start|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_SET_CALLEE_DIALOG: + $avp(lua_dlg_profile): [ + "totalaccount:[% customer_test.id %]", + "totaluser:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "account:[% customer_test.id %]", + "user:[% incoming_peer_stir.scenarios.test.testuser1003.uuid %]", + "peer:[% peer_00_host0.id %]", + "total" + ] + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + $xavp(caller_peer_prefs[0]=>concurrent_max[*]): [1] + - start|ROUTE_STIR_CHECK: + $xavp(callee_real_prefs[0]=>stir_check[*]): [1] + $x_fd: incoming-peer-stir.host0.peer.scenarios.test + - start|ROUTE_ACC_FAILURE: + - start|ROUTE_ACC_CALLER: + - start|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLER_CALL_COUNTERS: + - return|ROUTE_ACC_CALLER: + - start|ROUTE_ACC_CALLEE: + - start|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_SET_ACC_CALLEE_CALL_COUNTERS: + - return|ROUTE_ACC_CALLEE: + - return|ROUTE_ACC_FAILURE: + - start|ROUTE_EARLY_REJECT: + - start|ROUTE_ADD_CALLINFO_REPLY: + - 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_REPLY: + - start|ROUTE_LOCAL_REPLY: + - start|ROUTE_APPLY_HEADER_RULES: + - return|ROUTE_APPLY_HEADER_RULES: + - start|dialog:failed: + - return|dialog:failed: + - return|dialog:failed: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + $avp(lua_dlg_profile): None +sip_in: + - '^INVITE sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@' + - 'Contact: sip:[% scenarios.4.username %]@' + - 'CSeq: 1 INVITE' + - 'Max-Forwards: 69' + - 'Content-Type: application/sdp' + - 'Identity: [^;]+;info=;alg=whatever;ppt=shaken' + - 'P-Asserted-Identity: ' +sip_out: + - [ + '^SIP/2.0 100 Trying', + 'CSeq: 1 INVITE', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + ] diff --git a/scenarios/incoming_peer_stir/0024_test.yml.tt2 b/scenarios/incoming_peer_stir/0024_test.yml.tt2 new file mode 100644 index 00000000..58c47c44 --- /dev/null +++ b/scenarios/incoming_peer_stir/0024_test.yml.tt2 @@ -0,0 +1,20 @@ +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_LOCAL: + - return|ROUTE_LOCAL: +sip_in: + - 'ACK sip:[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]@incoming-peer-stir.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' +sip_out: [] diff --git a/scenarios/incoming_peer_stir/cdr_test.yml.tt2 b/scenarios/incoming_peer_stir/cdr_test.yml.tt2 new file mode 100644 index 00000000..4d827ccd --- /dev/null +++ b/scenarios/incoming_peer_stir/cdr_test.yml.tt2 @@ -0,0 +1,47 @@ +--- +cdr: + - source_user: '[% scenarios.0.username %]' + source_domain: '[% scenarios.0.ip %]' + source_cli: '[% scenarios.0.username %]' + destination_user: 'testuser1003' + destination_domain: 'incoming-peer-stir.scenarios.test' + destination_user_dialed: '[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' + - source_user: '[% scenarios.1.username %]' + source_domain: '[% scenarios.1.ip %]' + source_cli: '[% scenarios.1.username %]' + destination_user: 'testuser1003' + destination_domain: 'incoming-peer-stir.scenarios.test' + destination_user_dialed: '[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'other' + call_code: '428' + - source_user: '[% scenarios.2.username %]' + source_domain: '[% scenarios.2.ip %]' + source_cli: '[% scenarios.2.username %]' + destination_user: 'testuser1003' + destination_domain: 'incoming-peer-stir.scenarios.test' + destination_user_dialed: '[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'other' + call_code: '428' + - source_user: '[% scenarios.3.username %]' + source_domain: '[% scenarios.3.ip %]' + source_cli: '[% scenarios.3.username %]' + destination_user: 'testuser1003' + destination_domain: 'incoming-peer-stir.scenarios.test' + destination_user_dialed: '[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'other' + call_code: '436' + - source_user: '[% scenarios.4.username %]' + source_domain: '[% scenarios.4.ip %]' + source_cli: '[% scenarios.4.username %]' + destination_user: 'testuser1003' + destination_domain: 'incoming-peer-stir.scenarios.test' + destination_user_dialed: '[% incoming_peer_stir_scenarios_test.testuser1003.phone_number %]' + call_type: 'call' + call_status: 'other' + call_code: '438' diff --git a/scenarios/incoming_peer_stir/media181sec.pcap b/scenarios/incoming_peer_stir/media181sec.pcap new file mode 120000 index 00000000..d95ed875 --- /dev/null +++ b/scenarios/incoming_peer_stir/media181sec.pcap @@ -0,0 +1 @@ +../media181sec.pcap \ No newline at end of file diff --git a/scenarios/incoming_peer_stir/peer.yml b/scenarios/incoming_peer_stir/peer.yml new file mode 100644 index 00000000..5fba13ff --- /dev/null +++ b/scenarios/incoming_peer_stir/peer.yml @@ -0,0 +1,33 @@ +--- +peer_incoming_peer_stir: + contact: + company: peer_incoming_peer_stir + email: peer_incoming_peer_stir@host0.not + contract: + billing_profile_id: 1 + status: active + type: sippeering + groups: + - name: peer_incoming_peer_stir_group + priority: 1 + description: + rules: + - group_id: peer_incoming_peer_stir_group + callee_prefix: "" + callee_pattern: '' + caller_pattern: '^sip:.+@incoming-peer-stir.scenarios.test' + description: "" + inboundrules: + - group_id: peer_incoming_peer_stir_group + field: "ruri_uri" + pattern: '.*' + priority: 50 + enabled: 1 + hosts: + - group_id: peer_incoming_peer_stir_group + name: peer_incoming_peer_stir_host0 + ip: 127.0.2.1 + port: 51602 + host: + transport: 1 + weight: 1 diff --git a/scenarios/incoming_peer_stir/prefs.json.tt2 b/scenarios/incoming_peer_stir/prefs.json.tt2 new file mode 100644 index 00000000..ccfdbcae --- /dev/null +++ b/scenarios/incoming_peer_stir/prefs.json.tt2 @@ -0,0 +1,8 @@ +{ + "@incoming-peer-stir.scenarios.test": { + "stir_check": true + }, + "peer_incoming_peer_stir_host0": { + "concurrent_max": 1 + } +} diff --git a/scenarios/incoming_peer_stir/scenario.yml b/scenarios/incoming_peer_stir/scenario.yml new file mode 100644 index 00000000..541dd6c1 --- /dev/null +++ b/scenarios/incoming_peer_stir/scenario.yml @@ -0,0 +1,78 @@ +--- +test_uuid: incoming_peer_stir +kamailio: + proxy: + debugger: + - name: secsipid + level: 3 +domains: + incoming-peer-stir.scenarios.test: + reseller_id: 1 +customers: + 'customer.test': + contacts: + - email: "customer.test@spce.test" + reseller_id: 1 + details: + status: 'active' + type: 'sipaccount' + billing_profile_id: 1 + reseller_id: 1 +subscribers: + incoming-peer-stir.scenarios.test: + testuser1003: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1003 +scenarios: + - ip: 127.0.2.1 + username: 004321001 + domain: invite-peerout-stir.scenarios.test + peer_host: peer_incoming_peer_stir_host0 + responders: + - ip: 127.1.0.1 + username: testuser1003 + domain: incoming-peer-stir.scenarios.test + register: 'yes' + - ip: 127.0.2.2 + username: 004321002 + domain: incoming-peer-stir.host0.peer.scenarios.test + peer_host: peer_incoming_peer_stir_host0 + responders: + - ip: 127.1.0.2 + username: testuser1003 + domain: incoming-peer-stir.scenarios.test + register: 'no' + active: 'no' + - ip: 127.0.2.3 + username: 004321003 + domain: incoming-peer-stir.host0.peer.scenarios.test + peer_host: peer_incoming_peer_stir_host0 + responders: + - ip: 127.1.0.3 + username: testuser1003 + domain: incoming-peer-stir.scenarios.test + register: 'no' + active: 'no' + - ip: 127.0.2.4 + username: 004321004 + domain: incoming-peer-stir.host0.peer.scenarios.test + peer_host: peer_incoming_peer_stir_host0 + responders: + - ip: 127.1.0.4 + username: testuser1003 + domain: incoming-peer-stir.scenarios.test + register: 'no' + active: 'no' + - ip: 127.0.2.5 + username: 004321005 + domain: incoming-peer-stir.host0.peer.scenarios.test + peer_host: peer_incoming_peer_stir_host0 + responders: + - ip: 127.1.0.5 + username: testuser1003 + domain: incoming-peer-stir.scenarios.test + register: 'no' + active: 'no' diff --git a/scenarios/incoming_peer_stir/sipp_scenario00.xml b/scenarios/incoming_peer_stir/sipp_scenario00.xml new file mode 100644 index 00000000..89fa48f9 --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario00.xml @@ -0,0 +1,85 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 1 INVITE + Identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2Zha2UudXJsL3B1Yi5rZXkifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyI0MzExMDAzIl19LCJpYXQiOjE2MjIxOTU2MzAsIm9yaWciOnsidG4iOiIwMDQzMjEwMDEifSwib3JpZ2lkIjoiZTFhMTdiYmEtZTFjNS00MGEyLTljMDItMTRiZWIzODY4ZjAwIn0.u4q2URmDnODO5OvbXoqsqSoCHJzdcv4WZLrdxeI7GdU17aGEr6Dxpwh2LCGgGlX5SR9Gh343iXbnmdqusJQ59g;info=;alg=ES256;ppt=shaken + P-Asserted-Identity: + Contact: sip:[field0 file="caller.csv" line=0]@[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] + [routes] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + ;tag=[pid]SIPpTag00[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id] + CSeq: 2 BYE + Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port] + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + diff --git a/scenarios/incoming_peer_stir/sipp_scenario01.xml b/scenarios/incoming_peer_stir/sipp_scenario01.xml new file mode 100644 index 00000000..93af0062 --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario01.xml @@ -0,0 +1,52 @@ + + + + + ;tag=[pid]SIPpTag01[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=1]%///[call_id] + CSeq: 1 INVITE + P-Asserted-Identity: + Contact: sip:[field0 file="caller.csv" line=1]@[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]SIPpTag01[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=1]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv" line=1]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + diff --git a/scenarios/incoming_peer_stir/sipp_scenario02.xml b/scenarios/incoming_peer_stir/sipp_scenario02.xml new file mode 100644 index 00000000..b1798ad9 --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario02.xml @@ -0,0 +1,53 @@ + + + + + ;tag=[pid]SIPpTag02[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=2]%///[call_id] + CSeq: 1 INVITE + Identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2Zha2UudXJsL3B1Yi5rZXkifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyI0MzExMDAzIl19LCJpYXQiOjE2MjIxOTU2MzAsIm9yaWciOnsidG4iOiIwMDQzMjEwMDEifSwib3JpZ2lkIjoiZTFhMTdiYmEtZTFjNS00MGEyLTljMDItMTRiZWIzODY4ZjAwIn0.u4q2URmDnODO5OvbXoqsqSoCHJzdcv4WZLrdxeI7GdU17aGEr6Dxpwh2LCGgGlX5SR9Gh343iXbnmdqusJQ59g;info=;alg=ES256;ppt=whatever + P-Asserted-Identity: + Contact: sip:[field0 file="caller.csv" line=2]@[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]SIPpTag02[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=2]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv" line=2]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + diff --git a/scenarios/incoming_peer_stir/sipp_scenario03.xml b/scenarios/incoming_peer_stir/sipp_scenario03.xml new file mode 100644 index 00000000..fdaf7a24 --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario03.xml @@ -0,0 +1,53 @@ + + + + + ;tag=[pid]SIPpTag03[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 1 INVITE + Identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2Zha2UudXJsL3B1Yi5rZXkifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyI0MzExMDAzIl19LCJpYXQiOjE2MjIxOTU2MzAsIm9yaWciOnsidG4iOiIwMDQzMjEwMDEifSwib3JpZ2lkIjoiZTFhMTdiYmEtZTFjNS00MGEyLTljMDItMTRiZWIzODY4ZjAwIn0.u4q2URmDnODO5OvbXoqsqSoCHJzdcv4WZLrdxeI7GdU17aGEr6Dxpwh2LCGgGlX5SR9GhKKKKKKKKKKKK;info=;alg=ES256;ppt=shaken + P-Asserted-Identity: + Contact: sip:[field0 file="caller.csv" line=3]@[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]SIPpTag03[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv" line=3]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + diff --git a/scenarios/incoming_peer_stir/sipp_scenario04.xml b/scenarios/incoming_peer_stir/sipp_scenario04.xml new file mode 100644 index 00000000..c5ff741f --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario04.xml @@ -0,0 +1,53 @@ + + + + + ;tag=[pid]SIPpTag04[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=4]%///[call_id] + CSeq: 1 INVITE + Identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2Zha2UudXJsL3B1Yi5rZXkifQ.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyI0MzExMDAzIl19LCJpYXQiOjE2MjIxOTU2MzAsIm9yaWciOnsidG4iOiIwMDQzMjEwMDEifSwib3JpZ2lkIjoiZTFhMTdiYmEtZTFjNS00MGEyLTljMDItMTRiZWIzODY4ZjAwIn0.u4q2URmDnODO5OvbXoqsqSoCHJzdcv4WZLrdxeI7GdU17aGEr6Dxpwh2LCGgGlX5SR9Gh343iXbnmdqusJQ59g;info=;alg=whatever;ppt=shaken + P-Asserted-Identity: + Contact: sip:[field0 file="caller.csv" line=4]@[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]SIPpTag04[call_number] + To: [peer_tag_param] + Call-ID: NGCP%[field4 file="callee.csv" line=4]%///[call_id] + CSeq: 1 ACK + Contact: sip:[field0 file="caller.csv" line=4]@[local_ip]:[local_port] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + diff --git a/scenarios/incoming_peer_stir/sipp_scenario_responder00.xml b/scenarios/incoming_peer_stir/sipp_scenario_responder00.xml new file mode 100644 index 00000000..da77f415 --- /dev/null +++ b/scenarios/incoming_peer_stir/sipp_scenario_responder00.xml @@ -0,0 +1,78 @@ + + + + + + + + + + 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-peerout-stir.scenarios.test.pubkey b/scenarios/invite-peerout-stir.scenarios.test.pubkey new file mode 100644 index 00000000..a33c2bbd --- /dev/null +++ b/scenarios/invite-peerout-stir.scenarios.test.pubkey @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+sGr3KgBC6sKrM0AeHboLuoxScvZ +lecYmNNCaKjF4SS+IkksYdcTlF/cq1JxZb6AwIaBHlT2FqzGi0ydERMBHw== +-----END PUBLIC KEY-----