diff --git a/scenarios/invite_announce_before_call/0009_test.yml.tt2 b/scenarios/invite_announce_before_call/0009_test.yml.tt2 new file mode 100644 index 00000000..83287ae4 --- /dev/null +++ b/scenarios/invite_announce_before_call/0009_test.yml.tt2 @@ -0,0 +1,42 @@ +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_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - '^INVITE' + - 'Contact: ]+)?>' + - 'To: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Contact: ' + - 'Proxy-Authorization: Digest username="testuser1002",realm="invite-announce-before-call.scenarios.test",uri="sip:[% server_ip %]:5060",nonce=".+",response=".+",algorithm=MD5' + - 'Content-Type: application/sdp' + - 'P-NGCP-Src-Port: \d+' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + ] + - [ + 'SIP/2.0 101 Connecting', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + ] + - [ + 'INVITE sip:pre_announce@app.local SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-LB-Uptime: \d+', + 'P-App-Param: audio_id=;audio2_id=[% soundsets.invite_announce_before_call.announce_before_call_setup.id %];audio3_id=;reply_180=no', + 'P-App-Name: pre_announce', + ] diff --git a/scenarios/invite_announce_before_call/0012_test.yml.tt2 b/scenarios/invite_announce_before_call/0012_test.yml.tt2 new file mode 100644 index 00000000..8fd548fb --- /dev/null +++ b/scenarios/invite_announce_before_call/0012_test.yml.tt2 @@ -0,0 +1,35 @@ +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: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 183 Progress' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Contact: ' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 183 Progress', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-Out-Socket: udp:[% server_ip %]:5060', + ] diff --git a/scenarios/invite_announce_before_call/0013_test.yml.tt2 b/scenarios/invite_announce_before_call/0013_test.yml.tt2 new file mode 100644 index 00000000..254facdd --- /dev/null +++ b/scenarios/invite_announce_before_call/0013_test.yml.tt2 @@ -0,0 +1,133 @@ +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: + - start|FAILURE_ROUTE_PRE_ANNOUNCE: + - start|ROUTE_INITVARS: + - return|ROUTE_INITVARS: + - start|ROUTE_STOP_RTPPROXY_BRANCH: + - start|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_STOP_RTPPROXY_BRANCH: + - 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_CHECK_LOCATIONS: + - start|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - return|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - start|ROUTE_OUTBOUND: + - 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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - 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: + - 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_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: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + - exit|ROUTE_EXIT: +sip_in: + - '^SIP/2.0 301 Message Ended' + - 'From: ]+)?>', + 'Max-Forwards: 68', + 'Content-Type: application/sdp', + 'P-Caller-UUID: [% invite_announce_before_call_scenarios_test.testuser1002.uuid %]', + 'P-Callee-UUID: [% invite_announce_before_call_scenarios_test.testuser1003.uuid %]', + 'P-Asserted-Identity: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-LB-Uptime: \d+' + - 'P-Asserted-Identity: ' + - 'P-Caller-UUID: [% invite_announce_before_call_scenarios_test.testuser1002.uuid %]' + - 'P-NGCP-Caller-Info: ;ip=[% scenarios.0.ip %];port=[% scenarios.0.port %];primary=[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]' + - 'P-NGCP-Callee-Info: ;ip=[% scenarios.0.responders.0.ip %];port=[% scenarios.0.responders.0.port %];primary=[% invite_announce_before_call_scenarios_test.testuser1003.phone_number %]' + - 'P-D-Uri: sip:lb@127.0.0.1;lr;(received=sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];)?socket=sip:[% server_ip %]: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:[% scenarios.0.responders.0.username %]@[% 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: ', + 'P-Caller-UUID: [% invite_announce_before_call_scenarios_test.testuser1002.uuid %]', + 'P-NGCP-Caller-Info: ;ip=[% scenarios.0.ip %];port=[% scenarios.0.port %];primary=[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]', + 'P-NGCP-Callee-Info: ;ip=[% scenarios.0.responders.0.ip %];port=[% scenarios.0.responders.0.port %];primary=[% invite_announce_before_call_scenarios_test.testuser1003.phone_number %]', + 'P-D-Uri: sip:lb@127.0.0.1;lr;(received=sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];)?socket=sip:[% server_ip %]:5060', + 'Content-Type: application/sdp', + 'Contact: ', + 'Content-Length:\s+\d+', + ] diff --git a/scenarios/invite_announce_before_call/0018_test.yml.tt2 b/scenarios/invite_announce_before_call/0018_test.yml.tt2 new file mode 100644 index 00000000..4ad98795 --- /dev/null +++ b/scenarios/invite_announce_before_call/0018_test.yml.tt2 @@ -0,0 +1,22 @@ +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: 2 INVITE' +sip_out: + - [ + '^SIP/2.0 180 Ringing', + 'CSeq: 2 INVITE', + ] diff --git a/scenarios/invite_announce_before_call/0020_test.yml.tt2 b/scenarios/invite_announce_before_call/0020_test.yml.tt2 new file mode 100644 index 00000000..99945eac --- /dev/null +++ b/scenarios/invite_announce_before_call/0020_test.yml.tt2 @@ -0,0 +1,49 @@ +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|ROUTE_CHECK_TIMER_SUPP_REQ: + - return|ROUTE_CHECK_TIMER_SUPP_REQ: + - start|ROUTE_REMOVE_TIMER_SUPP_REQ: + - return|ROUTE_REMOVE_TIMER_SUPP_REQ: + - 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): [ + "accountout:[% customer_test.id %]", + "userout:[% invite_announce_before_call_scenarios_test.testuser1002.uuid %]", + "account:[% customer_test.id %]", + "user:[% invite_announce_before_call_scenarios_test.testuser1002.uuid %]", + "totalaccountout:[% customer_test.id %]", + "totaluserout:[% invite_announce_before_call_scenarios_test.testuser1002.uuid %]", + "totalaccount:[% customer_test.id %]", + "totaluser:[% invite_announce_before_call_scenarios_test.testuser1002.uuid %]", + "peer:appsrv", + "local", + "totalaccount:[% customer_test.id %]", + "totaluser:[% invite_announce_before_call_scenarios_test.testuser1003.uuid %]", + "total", + "account:[% customer_test.id %]", + "user:[% invite_announce_before_call_scenarios_test.testuser1003.uuid %]" + ] + - return|dialog:start: +sip_in: + - '^SIP/2.0 200 OK' + - 'CSeq: 2 INVITE' +sip_out: + - [ + '^SIP/2.0 200 OK', + 'CSeq: 2 INVITE', + 'From: ]+)?>' + - 'CSeq: 3 BYE' + - 'Max-Forwards: 69' + - 'Content-Length: 0' + - 'From: ]+)?>', + 'CSeq: 3 BYE', + 'Max-Forwards: 68', + 'Content-Length: 0', + 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authorization: Digest username="[% scenarios.1.username %]",realm="invite-announce-before-call.scenarios.test",uri="sip:[% server_ip %]:5060",nonce=".+",response=".+",algorithm=MD5' + - 'P-Early-Media: supported,gated' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' + - 'P-LB-Uptime: \d+' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + ] + - [ + 'SIP/2.0 101 Connecting', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-NGCP-Caller-Info: ;ip=10.20.29.2;port=51604;primary=4311000', + 'P-Caller-UUID: [% invite_announce_before_call_scenarios_test.testuser1002.uuid %]', + 'Server: Sipwise NGCP Proxy', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:pre_announce@app.local SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Early-Media: supported,gated', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-LB-Uptime: \d+', + 'P-App-Param: audio_id=;audio2_id=[% soundsets.invite_announce_before_call.announce_before_call_setup.id %];audio3_id=;reply_180=no', + 'P-App-Name: pre_announce', + ] diff --git a/scenarios/invite_announce_before_call/0030_test.yml.tt2 b/scenarios/invite_announce_before_call/0030_test.yml.tt2 new file mode 100644 index 00000000..d395fae1 --- /dev/null +++ b/scenarios/invite_announce_before_call/0030_test.yml.tt2 @@ -0,0 +1,33 @@ +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: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 183 Progress' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 183 Progress', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ INVITE', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-Early-Media: sendrecv', + ] diff --git a/scenarios/invite_announce_before_call/0031_test.yml.tt2 b/scenarios/invite_announce_before_call/0031_test.yml.tt2 new file mode 100644 index 00000000..d750c7ef --- /dev/null +++ b/scenarios/invite_announce_before_call/0031_test.yml.tt2 @@ -0,0 +1,128 @@ +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: + - start|FAILURE_ROUTE_PRE_ANNOUNCE: + - start|ROUTE_INITVARS: + - return|ROUTE_INITVARS: + - start|ROUTE_STOP_RTPPROXY_BRANCH: + - start|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_STOP_RTPPROXY_BRANCH: + - 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_CHECK_LOCATIONS: + - start|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - return|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - start|ROUTE_OUTBOUND: + - 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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - 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: + - 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_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: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 301 Message Ended' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length: 0' +sip_out: + - [ + 'ACK sip:pre_announce@app.local SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ ACK', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:[% scenarios.1.responders.0.username %]@10.20.29.2:51605 SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Early-Media: supported,gated', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-LB-Uptime: \d+', + 'P-App-Name: sbc', + ] diff --git a/scenarios/invite_announce_before_call/0033_test.yml.tt2 b/scenarios/invite_announce_before_call/0033_test.yml.tt2 new file mode 100644 index 00000000..1cfc7aad --- /dev/null +++ b/scenarios/invite_announce_before_call/0033_test.yml.tt2 @@ -0,0 +1,37 @@ +flow: + - start|DEFAULT_ROUTE: + - start|ROUTE_ENTRY: + - return|ROUTE_ENTRY: + - start|ROUTE_LEG_B: + - start|ROUTE_INITVARS: + - return|ROUTE_INITVARS: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - 'INVITE sip:[% scenarios.1.responders.0.username %]@[% scenarios.1.responders.0.ip %]:[% scenarios.1.responders.0.port %] SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-Early-Media: supported,gated' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Server: Sipwise NGCP Proxy', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:[% scenarios.1.responders.0.username %]@10.20.29.2:51605 SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Early-Media: supported,gated', + 'P-LB-Uptime: \d+', + ] diff --git a/scenarios/invite_announce_before_call/0035_test.yml.tt2 b/scenarios/invite_announce_before_call/0035_test.yml.tt2 new file mode 100644 index 00000000..80416710 --- /dev/null +++ b/scenarios/invite_announce_before_call/0035_test.yml.tt2 @@ -0,0 +1,27 @@ +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: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 180 Ringing' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 180 Ringing', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-Early-Media: sendrecv', + ] diff --git a/scenarios/invite_announce_before_call/0047_test.yml.tt2 b/scenarios/invite_announce_before_call/0047_test.yml.tt2 new file mode 100644 index 00000000..795af997 --- /dev/null +++ b/scenarios/invite_announce_before_call/0047_test.yml.tt2 @@ -0,0 +1,209 @@ +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: + - return|ROUTE_LOAD_CALLER_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - start|ROUTE_PARSE_P_EARLY_MEDIA: + - start|ROUTE_DISABLE_SEMS_EARLY_MEDIA: + - return|ROUTE_DISABLE_SEMS_EARLY_MEDIA: + - return|ROUTE_PARSE_P_EARLY_MEDIA: + $var(pem_flags): 9 + $var(sems_early_media_disabled): 1 + - 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_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_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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + - 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_CHECK_LOCATIONS: + - start|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - return|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - start|ROUTE_OUTBOUND: + - start|ROUTE_SET_CALLER_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - start|ROUTE_SET_CALLER_DIALOG_TOTAL: + - return|ROUTE_SET_CALLER_DIALOG_TOTAL: + - start|ROUTE_SET_CALLER_DIALOG_BASE: + - return|ROUTE_SET_CALLER_DIALOG_BASE: + - 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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - 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: + - 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_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: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - 'INVITE sip:[% scenarios.2.responders.0.username %]@invite-announce-before-call.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authorization: Digest username="[% scenarios.2.username %]",realm="invite-announce-before-call.scenarios.test",uri="sip:[% server_ip %]:5060",nonce=".+",response=".+",algorithm=MD5' + - 'P-Early-Media: supported,sendonly' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + ] + - [ + 'SIP/2.0 101 Connecting', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Server: Sipwise NGCP Proxy', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:[% scenarios.2.responders.0.username %]@', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Early-Media: supported,sendonly', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + ] + diff --git a/scenarios/invite_announce_before_call/0052_test.yml.tt2 b/scenarios/invite_announce_before_call/0052_test.yml.tt2 new file mode 100644 index 00000000..bd8b7d6c --- /dev/null +++ b/scenarios/invite_announce_before_call/0052_test.yml.tt2 @@ -0,0 +1,32 @@ +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' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Contact: ' + - 'Content-Length: 0' +sip_out: + - [ + 'SIP/2.0 180 Ringing', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'Content-Length: 0', + 'P-Early-Media: recvonly', + ] + diff --git a/scenarios/invite_announce_before_call/0063_test.yml.tt2 b/scenarios/invite_announce_before_call/0063_test.yml.tt2 new file mode 100644 index 00000000..4a3e87f4 --- /dev/null +++ b/scenarios/invite_announce_before_call/0063_test.yml.tt2 @@ -0,0 +1,158 @@ +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: + - return|ROUTE_LOAD_CALLER_PREF: + - start|ROUTE_DLG_MANAGE: + - return|ROUTE_DLG_MANAGE: + - start|ROUTE_PARSE_P_EARLY_MEDIA: + - return|ROUTE_PARSE_P_EARLY_MEDIA: + - 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_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_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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG: + - start|ROUTE_BLOCK_IN: + - return|ROUTE_BLOCK_IN: + - return|ROUTE_LOAD_CALLEE_PREF: + - 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_PRE_ANNOUNCE: + - start|ROUTE_LOAD_APPSRV: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_LOAD_APPSRV: + - start|ROUTE_OUTBOUND: + - start|ROUTE_SET_CALLER_DIALOG: + - start|ROUTE_CNT_DLG_CHECK: + - return|ROUTE_CNT_DLG_CHECK: + - start|ROUTE_SET_CALLER_DIALOG_TOTAL: + - return|ROUTE_SET_CALLER_DIALOG_TOTAL: + - start|ROUTE_SET_CALLER_DIALOG_BASE: + - return|ROUTE_SET_CALLER_DIALOG_BASE: + - return|ROUTE_SET_CALLER_DIALOG: + - start|BRANCH_ROUTE_NO_SBC: + - start|ROUTE_BRANCH_ACC_RTP: + - return|ROUTE_BRANCH_ACC_RTP: + - start|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_PREPARE_UA: + - return|ROUTE_PREPARE_UA: + - return|ROUTE_SET_BRANCH_HDRS: + - start|ROUTE_FILTER_PRACK: + - return|ROUTE_FILTER_PRACK: + - 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_NO_SBC: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: +sip_in: + - 'INVITE sip:[% scenarios.3.responders.0.username %]@invite-announce-before-call.scenarios.test SIP/2.0' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'Proxy-Authorization: Digest username="[% scenarios.3.username %]",realm="invite-announce-before-call.scenarios.test",uri="sip:[% server_ip %]:5060",nonce=".+",response=".+",algorithm=MD5' + - 'P-Early-Media: supported,recvonly' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 100 Trying', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + ] + - [ + 'SIP/2.0 101 Connecting', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Server: Sipwise NGCP Proxy', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:pre_announce@app.local SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'P-Early-Media: supported,recvonly', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-LB-Uptime: \d+', + 'P-App-Param: audio_id=;audio2_id=[% soundsets.invite_announce_before_call.announce_before_call_setup.id %];audio3_id=;reply_180=no', + 'P-App-Name: pre_announce', + ] diff --git a/scenarios/invite_announce_before_call/0064_test.yml.tt2 b/scenarios/invite_announce_before_call/0064_test.yml.tt2 new file mode 100644 index 00000000..221ba547 --- /dev/null +++ b/scenarios/invite_announce_before_call/0064_test.yml.tt2 @@ -0,0 +1,35 @@ +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: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 183 Progress' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Contact: ' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 183 Progress', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-Early-Media: sendonly', + ] diff --git a/scenarios/invite_announce_before_call/0065_test.yml.tt2 b/scenarios/invite_announce_before_call/0065_test.yml.tt2 new file mode 100644 index 00000000..94849398 --- /dev/null +++ b/scenarios/invite_announce_before_call/0065_test.yml.tt2 @@ -0,0 +1,127 @@ +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: + - start|FAILURE_ROUTE_PRE_ANNOUNCE: + - start|ROUTE_INITVARS: + - return|ROUTE_INITVARS: + - start|ROUTE_STOP_RTPPROXY_BRANCH: + - start|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_RESTORE_CLUSTERSET: + - return|ROUTE_STOP_RTPPROXY_BRANCH: + - 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_CHECK_LOCATIONS: + - start|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - return|ROUTE_LOOKUP_SUBSCRIBER_LOCATIONS: + - start|ROUTE_OUTBOUND: + - 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: + - start|ROUTE_SET_CALLEE_DIALOG_BASE: + - return|ROUTE_SET_CALLEE_DIALOG_BASE: + - start|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - return|ROUTE_SET_CALLEE_DIALOG_TOTAL: + - 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: + - 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_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: + - start|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - exit|DEFAULT_SEND: + - start|ROUTE_EXIT: + - start|ROUTE_RUNTIME: + - return|ROUTE_RUNTIME: + - exit|ROUTE_EXIT: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 301 Message Ended' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length: 0' +sip_out: + - [ + 'ACK sip:pre_announce@app.local SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ ACK', + 'Content-Length: 0', + ] + - [ + 'INVITE sip:[% scenarios.3.responders.0.username %]@10.20.29.2:51609 SIP/2.0', + 'From: ;tag=[\w-]+', + 'To: ', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'P-Early-Media: supported,recvonly', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + ] diff --git a/scenarios/invite_announce_before_call/0070_test.yml.tt2 b/scenarios/invite_announce_before_call/0070_test.yml.tt2 new file mode 100644 index 00000000..790a7a45 --- /dev/null +++ b/scenarios/invite_announce_before_call/0070_test.yml.tt2 @@ -0,0 +1,34 @@ +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: + - exit|ROUTE_EXIT: +sip_in: + - 'SIP/2.0 180 Ringing' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length:\s+\d+' +sip_out: + - [ + 'SIP/2.0 180 Ringing', + 'From: ;tag=[\w-]+', + 'To: ;tag=[\w-]+', + 'CSeq: \d+ INVITE', + 'Contact: ', + 'Content-Type: application/sdp', + 'Content-Length:\s+\d+', + 'P-Early-Media: sendonly', + ] diff --git a/scenarios/invite_announce_before_call/cdr_test.yml.tt2 b/scenarios/invite_announce_before_call/cdr_test.yml.tt2 new file mode 100644 index 00000000..2cddd811 --- /dev/null +++ b/scenarios/invite_announce_before_call/cdr_test.yml.tt2 @@ -0,0 +1,37 @@ +cdr: + - source_user: '[% scenarios.0.username %]' + source_domain: 'invite-announce-before-call.scenarios.test' + source_cli: '[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]' + destination_user: '[% scenarios.0.responders.0.username %]' + destination_domain: 'invite-announce-before-call.scenarios.test' + destination_user_dialed: '[% scenarios.0.responders.0.username %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' + - source_user: '[% scenarios.1.username %]' + source_domain: 'invite-announce-before-call.scenarios.test' + source_cli: '[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]' + destination_user: '[% scenarios.1.responders.0.username %]' + destination_domain: 'invite-announce-before-call.scenarios.test' + destination_user_dialed: '[% scenarios.1.responders.0.username %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' + - source_user: '[% scenarios.2.username %]' + source_domain: 'invite-announce-before-call.scenarios.test' + source_cli: '[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]' + destination_user: '[% scenarios.2.responders.0.username %]' + destination_domain: 'invite-announce-before-call.scenarios.test' + destination_user_dialed: '[% scenarios.2.responders.0.username %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' + - source_user: '[% scenarios.3.username %]' + source_domain: 'invite-announce-before-call.scenarios.test' + source_cli: '[% invite_announce_before_call_scenarios_test.testuser1002.phone_number %]' + destination_user: '[% scenarios.3.responders.0.username %]' + destination_domain: 'invite-announce-before-call.scenarios.test' + destination_user_dialed: '[% scenarios.3.responders.0.username %]' + call_type: 'call' + call_status: 'ok' + call_code: '200' \ No newline at end of file diff --git a/scenarios/invite_announce_before_call/media181sec.pcap b/scenarios/invite_announce_before_call/media181sec.pcap new file mode 120000 index 00000000..d95ed875 --- /dev/null +++ b/scenarios/invite_announce_before_call/media181sec.pcap @@ -0,0 +1 @@ +../media181sec.pcap \ No newline at end of file diff --git a/scenarios/invite_announce_before_call/prefs.json.tt2 b/scenarios/invite_announce_before_call/prefs.json.tt2 new file mode 100644 index 00000000..433fd732 --- /dev/null +++ b/scenarios/invite_announce_before_call/prefs.json.tt2 @@ -0,0 +1,18 @@ +{ + "@invite-announce-before-call.scenarios.test": { + "nat_sipping": "no", + "sound_set": "invite_announce_before_call" + }, + "[% scenarios.0.responders.0.username %]@invite-announce-before-call.scenarios.test": { + "play_announce_before_call_setup": true + }, + "[% scenarios.1.responders.0.username %]@invite-announce-before-call.scenarios.test": { + "play_announce_before_call_setup": true + }, + "[% scenarios.2.responders.0.username %]@invite-announce-before-call.scenarios.test": { + "play_announce_before_call_setup": true + }, + "[% scenarios.3.responders.0.username %]@invite-announce-before-call.scenarios.test": { + "play_announce_before_call_setup": true + } +} diff --git a/scenarios/invite_announce_before_call/scenario.yml b/scenarios/invite_announce_before_call/scenario.yml new file mode 100644 index 00000000..0fab440d --- /dev/null +++ b/scenarios/invite_announce_before_call/scenario.yml @@ -0,0 +1,84 @@ +--- +test_uuid: invite_announce_before_call +domains: + invite-announce-before-call.scenarios.test: + reseller_id: 1 +customers: + 'customer.test': + contacts: + - email: "customer.test@invite-announce-before-call.scenarios.test" + reseller_id: 1 + details: + status: 'active' + type: 'sipaccount' + billing_profile_id: 1 + reseller_id: 1 +subscribers: + invite-announce-before-call.scenarios.test: + testuser1003: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1003 + testuser1004: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1004 + testuser1005: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1005 + testuser1006: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1006 + testuser1002: + customer: 'customer.test' + password: testuser + cc: 43 + ac: 1 + sn: 1002 + alias_numbers: + - cc: 34 + ac: 96 + sn: 5711941 +scenarios: + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-announce-before-call.scenarios.test + responders: + - ip: 127.1.0.1 + username: testuser1003 + domain: invite-announce-before-call.scenarios.test + register: 'yes' + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-announce-before-call.scenarios.test + responders: + - ip: 127.1.0.1 + username: testuser1004 + domain: invite-announce-before-call.scenarios.test + register: 'yes' + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-announce-before-call.scenarios.test + responders: + - ip: 127.1.0.1 + username: testuser1005 + domain: invite-announce-before-call.scenarios.test + register: 'yes' + - ip: 127.126.0.1 + username: testuser1002 + domain: invite-announce-before-call.scenarios.test + responders: + - ip: 127.1.0.1 + username: testuser1006 + domain: invite-announce-before-call.scenarios.test + register: 'yes' diff --git a/scenarios/invite_announce_before_call/sipp_scenario00.xml b/scenarios/invite_announce_before_call/sipp_scenario00.xml new file mode 100644 index 00000000..571234b0 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario00.xml @@ -0,0 +1,146 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[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=0]%///[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=0]%///[call_id] + CSeq: 2 INVITE + Contact: + 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: + 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: 3 BYE + Contact: + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + diff --git a/scenarios/invite_announce_before_call/sipp_scenario00_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario00_test.yml.tt2 new file mode 100644 index 00000000..1b04db8a --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario00_test.yml.tt2 @@ -0,0 +1,77 @@ +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-announce-before-call.scenarios.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 183 Progress' + - '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=sems \d+ \d+ IN IP4 [% server_ip %]' + - 's=sems' + - '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 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Length: 0' + - '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+' + - '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 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' diff --git a/scenarios/invite_announce_before_call/sipp_scenario01.xml b/scenarios/invite_announce_before_call/sipp_scenario01.xml new file mode 100644 index 00000000..6e211846 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario01.xml @@ -0,0 +1,148 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=1]%///[call_id] + CSeq: 1 INVITE + Contact: + Max-Forwards: 70 + P-Early-Media: supported,gated + 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=1]%///[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=1]%///[call_id] + CSeq: 2 INVITE + Contact: + Max-Forwards: 70 + [field1 file="caller.csv"] + P-Early-Media: supported,gated + 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=1]%///[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=1]%///[call_id] + CSeq: 3 BYE + Contact: + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + diff --git a/scenarios/invite_announce_before_call/sipp_scenario01_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario01_test.yml.tt2 new file mode 100644 index 00000000..d24e6dfb --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario01_test.yml.tt2 @@ -0,0 +1,90 @@ +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-announce-before-call.scenarios.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 183 Progress' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Early-Media: sendrecv' + - 'Contact: ' + - 'v=0' + - 'o=sems \d+ \d+ IN IP4 [% server_ip %]' + - 's=sems' + - '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 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Early-Media: sendrecv' + - '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 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=sendrecv' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - '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/invite_announce_before_call/sipp_scenario02.xml b/scenarios/invite_announce_before_call/sipp_scenario02.xml new file mode 100644 index 00000000..5f56dd10 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario02.xml @@ -0,0 +1,148 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=2]%///[call_id] + CSeq: 1 INVITE + Contact: + Max-Forwards: 70 + P-Early-Media: supported,sendonly + 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=2]%///[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=2]%///[call_id] + CSeq: 2 INVITE + Contact: + Max-Forwards: 70 + [field1 file="caller.csv"] + P-Early-Media: supported,sendonly + 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=2]%///[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=2]%///[call_id] + CSeq: 3 BYE + Contact: + [routes] + Max-Forwards: 70 + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + diff --git a/scenarios/invite_announce_before_call/sipp_scenario02_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario02_test.yml.tt2 new file mode 100644 index 00000000..2f206299 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario02_test.yml.tt2 @@ -0,0 +1,58 @@ +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-announce-before-call.scenarios.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-Early-Media: recvonly' + - '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+' + - '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 200 OK' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'Content-Length: 0' diff --git a/scenarios/invite_announce_before_call/sipp_scenario03.xml b/scenarios/invite_announce_before_call/sipp_scenario03.xml new file mode 100644 index 00000000..ff6450df --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario03.xml @@ -0,0 +1,148 @@ + + + + + ;tag=[pid]SIPpTag00[call_number] + To: + Call-ID: NGCP%[field4 file="callee.csv" line=3]%///[call_id] + CSeq: 1 INVITE + Contact: + Max-Forwards: 70 + P-Early-Media: supported,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 + + ]]> + + + + + + + + + ;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"] + P-Early-Media: supported,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 + + ]]> + + + + + + + + + + + + + + + + ;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_announce_before_call/sipp_scenario03_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario03_test.yml.tt2 new file mode 100644 index 00000000..e778f6b2 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario03_test.yml.tt2 @@ -0,0 +1,90 @@ +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-announce-before-call.scenarios.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 183 Progress' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Early-Media: sendonly' + - 'Contact: ' + - 'v=0' + - 'o=sems \d+ \d+ IN IP4 [% server_ip %]' + - 's=sems' + - '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 180 Ringing' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ INVITE' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'P-Early-Media: sendonly' + - '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 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=sendrecv' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - '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/invite_announce_before_call/sipp_scenario_responder00.xml b/scenarios/invite_announce_before_call/sipp_scenario_responder00.xml new file mode 100644 index 00000000..da77f415 --- /dev/null +++ b/scenarios/invite_announce_before_call/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_announce_before_call/sipp_scenario_responder00_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario_responder00_test.yml.tt2 new file mode 100644 index 00000000..c65360fd --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder00_test.yml.tt2 @@ -0,0 +1,40 @@ +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: ' +- - 'BYE 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+ BYE' + - 'P-Asserted-Identity: ' + - 'Content-Length: 0' diff --git a/scenarios/invite_announce_before_call/sipp_scenario_responder01.xml b/scenarios/invite_announce_before_call/sipp_scenario_responder01.xml new file mode 100644 index 00000000..2ade03c5 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder01.xml @@ -0,0 +1,88 @@ + + + + + + + + + + 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/invite_announce_before_call/sipp_scenario_responder01_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario_responder01_test.yml.tt2 new file mode 100644 index 00000000..e31d8c8b --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder01_test.yml.tt2 @@ -0,0 +1,41 @@ +messages: +- - 'INVITE sip:[% scenarios.1.responders.0.username %]@[% scenarios.1.responders.0.ip %]:[% scenarios.1.responders.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-Early-Media: supported,gated' + - '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.1.responders.0.ip %]:[% scenarios.1.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' + - 'Contact: ' +- - 'BYE sip:[% scenarios.1.responders.0.ip %]:[% scenarios.1.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'P-Asserted-Identity: ' + - 'Content-Length: 0' diff --git a/scenarios/invite_announce_before_call/sipp_scenario_responder02.xml b/scenarios/invite_announce_before_call/sipp_scenario_responder02.xml new file mode 100644 index 00000000..da77f415 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder02.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_announce_before_call/sipp_scenario_responder02_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario_responder02_test.yml.tt2 new file mode 100644 index 00000000..e37a0dea --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder02_test.yml.tt2 @@ -0,0 +1,41 @@ +messages: +- - 'INVITE sip:[% scenarios.2.responders.0.username %]@[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-Early-Media: supported,sendonly' + - 'P-Asserted-Identity: ' + - 'Content-Type: application/sdp' + - 'Content-Length: \d+' + - 'Contact: ' + - 'v=0' + - 'o=user1 \d+ \d+ IN IP4 [% server_ip %]' + - 's=-' + - 'c=IN IP4 [% server_ip %]' + - 't=0 0' + - 'm=audio \d+ RTP/AVP 8' + - 'a=rtpmap:8 PCMA/8000' + - 'a=sendrecv' + - 'a=rtcp:\d+' + - 'a=ptime:50' +- - 'ACK sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ ACK' + - 'Content-Length: 0' + - 'Contact: ' +- - 'BYE sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ;tag=[\w-]+' + - 'CSeq: \d+ BYE' + - 'P-Asserted-Identity: ' + - 'Content-Length: 0' diff --git a/scenarios/invite_announce_before_call/sipp_scenario_responder03.xml b/scenarios/invite_announce_before_call/sipp_scenario_responder03.xml new file mode 100644 index 00000000..2ade03c5 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder03.xml @@ -0,0 +1,88 @@ + + + + + + + + + + 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/invite_announce_before_call/sipp_scenario_responder03_test.yml.tt2 b/scenarios/invite_announce_before_call/sipp_scenario_responder03_test.yml.tt2 new file mode 100644 index 00000000..06cc1e64 --- /dev/null +++ b/scenarios/invite_announce_before_call/sipp_scenario_responder03_test.yml.tt2 @@ -0,0 +1,41 @@ +messages: +- - 'INVITE sip:[% scenarios.3.responders.0.username %]@[% scenarios.3.responders.0.ip %]:[% scenarios.3.responders.0.port %] SIP/2.0' + - 'Record-Route: ' + - 'Record-Route: ' + - 'Record-Route: ' + - 'From: ;tag=[\w-]+' + - 'To: ' + - 'CSeq: \d+ INVITE' + - 'P-Early-Media: supported,recvonly' + - '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.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: 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: 0' diff --git a/scenarios/invite_announce_before_call/soundsets.yml b/scenarios/invite_announce_before_call/soundsets.yml new file mode 100644 index 00000000..07eb698f --- /dev/null +++ b/scenarios/invite_announce_before_call/soundsets.yml @@ -0,0 +1,8 @@ +--- +soundsets: + 'invite_announce_before_call': + reseller_id: 1 + sounds: + announce_before_call_setup: + filename: sounds/no_sh.wav + loopplay: 'false'