The main designation of this scenario is to check out, whether calling side which uses tel scheme for From/To/Diversion/PAI headers, gets them fixed properly to SIP URI. Particularity of this scenario is, that A side gets redirected with 302 Temporarily Moved. Other than that we check out, whether Proxy doesn't admit usage of double Diversion headers present at the same message, when a new INVITE has been generated by Proxy after receiving the 302. Change-Id: I0bc82c8ea29915e9a2a3f13b90458b0b89dbc861mr9.5.1
parent
90a6e1cda2
commit
8a3b2b431d
@ -0,0 +1,53 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_ENTRY:
|
||||
- return|ROUTE_ENTRY:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_CHECK_TEL_URI:
|
||||
$x_hdr(From): <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=\w+
|
||||
$x_hdr(Diversion): <tel:\+43111222333>;reason=unconditional;privacy=off;counter=1
|
||||
$x_hdr(P-Asserted-Identity): <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>
|
||||
$x_tu: tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]
|
||||
- exit|ROUTE_CHECK_TEL_URI:
|
||||
$x_hdr(From): <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test;user=phone>;tag=\w+
|
||||
$x_hdr(Diversion): <sip:\+43111222333@invite-redirect-tel-uri.scenarios.test;user=phone>;reason=unconditional;privacy=off;counter=1
|
||||
$x_hdr(P-Asserted-Identity): <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test;user=phone>
|
||||
$x_tu: sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test
|
||||
- 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 sip:[% scenarios.0.responders.0.username %]@'
|
||||
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
|
||||
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
|
||||
- 'Diversion: <tel:\+43111222333'
|
||||
- 'P-Asserted-Identity: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>'
|
||||
- 'CSeq: \d+ INVITE'
|
||||
- 'Contact: sip:[% scenarios.0.username %]@'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: \d+ INVITE',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
|
||||
]
|
||||
- [
|
||||
'^SIP/2.0 407 Proxy Authentication Required',
|
||||
'CSeq: \d+ INVITE',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+'
|
||||
]
|
||||
@ -0,0 +1,10 @@
|
||||
flow:
|
||||
- start|sl:filtered-ack:
|
||||
sip_in:
|
||||
- '^ACK sip:[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test SIP/2.0'
|
||||
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
|
||||
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
|
||||
- 'CSeq: \d+ ACK'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
sip_out: []
|
||||
@ -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:
|
||||
$x_hdr(From): <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=\w+
|
||||
$x_hdr(Diversion): <tel:\+43111222333>;reason=unconditional;privacy=off;counter=1
|
||||
$x_hdr(P-Asserted-Identity): <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>
|
||||
$x_tu: tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]
|
||||
- exit|ROUTE_CHECK_TEL_URI:
|
||||
$x_hdr(From): <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test;user=phone>;tag=\w+
|
||||
$x_hdr(Diversion): <sip:\+43111222333@invite-redirect-tel-uri.scenarios.test;user=phone>;reason=unconditional;privacy=off;counter=1
|
||||
$x_hdr(P-Asserted-Identity): <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test;user=phone>
|
||||
$x_tu: sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test
|
||||
- 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_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:
|
||||
- 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_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:
|
||||
- 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:
|
||||
- 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:+590590779990@sip.dauphintelecom.com
|
||||
# From: <tel:+33967451213>;tag=<something>
|
||||
# To: <tel:+59099909590779990>
|
||||
# Diversion: <tel:+33148381230>;reason=<something>;privacy=<something>;counter=<something>
|
||||
# P-Asserted-Identity: tel:+33967451213 <-- no angles around tel value
|
||||
- '^INVITE sip:[% scenarios.0.responders.0.username %]@'
|
||||
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
|
||||
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
|
||||
- 'Diversion: <tel:\+43111222333'
|
||||
- 'P-Asserted-Identity: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>'
|
||||
- 'CSeq: \d+ INVITE'
|
||||
- 'Contact: sip:[% scenarios.0.username %]@'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
# PAI has no angles around tel value
|
||||
sip_out:
|
||||
# From: <tel:+33967451213>;tag=<something>
|
||||
# To: <tel:+59099909590779990>
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
- [
|
||||
'SIP/2.0 101 Connecting',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
# INVITE sip:590590779990@74.116.94.226:5060
|
||||
# From: <sip:0967451213@gp.dauphintelecom.com;user=phone>;tag=<something>
|
||||
# To: <sip:590590779990@74.116.94.226:5060>
|
||||
# Diversion: <sip:+33148381230@sip.dauphintelecom.com;user=phone>
|
||||
- [
|
||||
'^INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.ip %]',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'_:NOT:_Diversion: \w+',
|
||||
'P-Asserted-Identity: <sip:4311000@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Contact: sip:[% scenarios.0.username %]@',
|
||||
'Content-Type: application/sdp'
|
||||
]
|
||||
@ -0,0 +1,35 @@
|
||||
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:
|
||||
# this part of the scenario is less interesting for us, so just make sure INVITE passes through from B2B
|
||||
- '^INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.ip %]'
|
||||
- 'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
|
||||
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'CSeq: \d+ INVITE'
|
||||
sip_out:
|
||||
- [
|
||||
'SIP/2.0 100 Trying',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Server: Sipwise NGCP Proxy',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.ip %]',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ INVITE'
|
||||
]
|
||||
@ -0,0 +1,174 @@
|
||||
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_LOCAL:
|
||||
- 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_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_SET_HIH_CF:
|
||||
- return|ROUTE_SET_HIH_CF:
|
||||
- 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:
|
||||
- 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_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:
|
||||
- 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:
|
||||
$avp(forwarder_domain_userprov): ['invite-redirect-tel-uri.scenarios.test']
|
||||
- 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:
|
||||
$var(ccli_domain): invite-redirect-tel-uri.scenarios.test
|
||||
$var(diversion_uri): sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test
|
||||
- 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|ROUTE_DROP:
|
||||
- start|ROUTE_RUNTIME:
|
||||
- return|ROUTE_RUNTIME:
|
||||
- exit|ROUTE_DROP:
|
||||
- start|DEFAULT_SEND:
|
||||
- exit|DEFAULT_SEND:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|ROUTE_EXIT:
|
||||
- start|ROUTE_RUNTIME:
|
||||
- return|ROUTE_RUNTIME:
|
||||
- exit|ROUTE_EXIT:
|
||||
- exit|ROUTE_EXIT:
|
||||
sip_in:
|
||||
# From: <sip:0967451213@gp.dauphintelecom.com;user=phone>;tag=<something>
|
||||
# To: <sip:590590779990@74.116.94.226:5060>
|
||||
# Diversion: <sip:590590779990@74.116.94.226:5060;rinstance=d99c86941fbe0e10;user=phone>
|
||||
- '^SIP/2.0 302 Moved Temporarily'
|
||||
- 'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'Contact: <sip:[% scenarios.0.responders.1.username %]@'
|
||||
- 'Diversion: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
# particular case when customer adds one more Diversion into the call
|
||||
sip_out:
|
||||
- [
|
||||
'^ACK sip:[% scenarios.0.responders.0.username %]@',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ ACK',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
- [
|
||||
# we make sure that Diversion has domain part
|
||||
# we make sure that From/To/Diversion/PAI headers have SIP scheme
|
||||
'^INVITE sip:[% scenarios.0.responders.1.username %]@[% scenarios.0.ip %]',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Contact: sip:[% scenarios.0.username %]@',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Type: application/sdp',
|
||||
'P-Asserted-Identity: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'Diversion: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'P-App-Name: sbc'
|
||||
]
|
||||
@ -0,0 +1,35 @@
|
||||
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:
|
||||
# this part of the scenario is less interesting for us, so just make sure INVITE passes through from B2B
|
||||
- '^INVITE sip:[% scenarios.0.responders.1.username %]@'
|
||||
- 'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
|
||||
- 'To: <sip:[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test>'
|
||||
- 'CSeq: \d+ INVITE'
|
||||
sip_out:
|
||||
- [
|
||||
'SIP/2.0 100 Trying',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test>',
|
||||
'CSeq: \d+ INVITE',
|
||||
'Server: Sipwise NGCP Proxy',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:[% scenarios.0.responders.1.username %]@',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test>',
|
||||
'CSeq: \d+ INVITE'
|
||||
]
|
||||
@ -0,0 +1,26 @@
|
||||
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: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
|
||||
- 'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'CSeq: \d+ INVITE'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 180 Ringing',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+',
|
||||
'CSeq: \d+ INVITE'
|
||||
]
|
||||
@ -0,0 +1,30 @@
|
||||
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:
|
||||
- return|dialog:start:
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
|
||||
- 'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'CSeq: 2 INVITE'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+',
|
||||
'CSeq: \d+ INVITE'
|
||||
]
|
||||
@ -0,0 +1,43 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_ENTRY:
|
||||
- return|ROUTE_ENTRY:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_CHECK_TEL_URI:
|
||||
- exit|ROUTE_CHECK_TEL_URI:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|ROUTE_PREPARE_UA:
|
||||
- return|ROUTE_PREPARE_UA:
|
||||
- start|ROUTE_RESTORE_CLUSTERSET:
|
||||
- return|ROUTE_RESTORE_CLUSTERSET:
|
||||
- start|ROUTE_WITHINDLG_RTPENGINE:
|
||||
- return|ROUTE_WITHINDLG_RTPENGINE:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|DEFAULT_SEND:
|
||||
- exit|DEFAULT_SEND:
|
||||
- exit|DEFAULT_SEND:
|
||||
- start|ROUTE_EXIT:
|
||||
- start|ROUTE_RUNTIME:
|
||||
- return|ROUTE_RUNTIME:
|
||||
- exit|ROUTE_EXIT:
|
||||
sip_in:
|
||||
- '^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
|
||||
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+'
|
||||
- 'Contact: sip:[% scenarios.0.username %]@'
|
||||
- 'CSeq: \d+ ACK'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
sip_out:
|
||||
- [
|
||||
'^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test',
|
||||
'CSeq: \d+ ACK',
|
||||
'Max-Forwards: 68',
|
||||
'Contact: sip:[% scenarios.0.username %]@',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
@ -0,0 +1,51 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_ENTRY:
|
||||
- return|ROUTE_ENTRY:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_CHECK_TEL_URI:
|
||||
- exit|ROUTE_CHECK_TEL_URI:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|dialog:end:
|
||||
- return|dialog:end:
|
||||
- return|dialog:end:
|
||||
- start|ROUTE_STOP_RTPPROXY:
|
||||
- start|ROUTE_RESTORE_CLUSTERSET:
|
||||
- return|ROUTE_RESTORE_CLUSTERSET:
|
||||
- return|ROUTE_STOP_RTPPROXY:
|
||||
- start|ROUTE_PREPARE_UA:
|
||||
- return|ROUTE_PREPARE_UA:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|DEFAULT_SEND:
|
||||
- exit|DEFAULT_SEND:
|
||||
- exit|DEFAULT_SEND:
|
||||
- start|ROUTE_EXIT:
|
||||
- start|ROUTE_RUNTIME:
|
||||
- return|ROUTE_RUNTIME:
|
||||
- exit|ROUTE_EXIT:
|
||||
sip_in:
|
||||
- '^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
|
||||
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+'
|
||||
- 'CSeq: \d+ BYE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+',
|
||||
'CSeq: \d+ BYE',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
- [
|
||||
'^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'CSeq: \d+ BYE',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+',
|
||||
'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
]
|
||||
@ -0,0 +1,28 @@
|
||||
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 200 OK'
|
||||
- 'From: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
|
||||
- 'To: <sip:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]@invite-redirect-tel-uri.scenarios.test'
|
||||
- 'CSeq: \d+ BYE'
|
||||
- 'Content-Length: 0'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+',
|
||||
'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+',
|
||||
'CSeq: \d+ BYE',
|
||||
'Content-Length: 0'
|
||||
]
|
||||
@ -0,0 +1,19 @@
|
||||
cdr:
|
||||
- source_user: '\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]'
|
||||
source_domain: 'invite-redirect-tel-uri.scenarios.test'
|
||||
source_cli: '[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]'
|
||||
destination_user: '[% scenarios.0.responders.0.username %]'
|
||||
destination_domain: 'invite-redirect-tel-uri.scenarios.test'
|
||||
destination_user_dialed: '[% scenarios.0.responders.0.username %]'
|
||||
call_type: 'call'
|
||||
call_status: 'ok'
|
||||
call_code: '200'
|
||||
- source_user: '[% scenarios.0.responders.0.username %]'
|
||||
source_domain: 'invite-redirect-tel-uri.scenarios.test'
|
||||
source_cli: '[% invite_redirect_tel_uri_scenarios_test.testuser1003.phone_number %]'
|
||||
destination_user: '[% scenarios.0.responders.1.username %]'
|
||||
destination_domain: 'invite-redirect-tel-uri.scenarios.test'
|
||||
destination_user_dialed: '[% scenarios.0.responders.1.username %]'
|
||||
call_type: 'cfb'
|
||||
call_status: 'ok'
|
||||
call_code: '200'
|
||||
@ -0,0 +1 @@
|
||||
../media181sec.pcap
|
||||
@ -0,0 +1,10 @@
|
||||
{
|
||||
"[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test": {
|
||||
"outbound_diversion": "uprn",
|
||||
"outbound_history_info": "uprn"
|
||||
},
|
||||
"[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test": {
|
||||
"outbound_diversion": "uprn",
|
||||
"outbound_history_info": "uprn"
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
---
|
||||
test_uuid: invite_redirect_tel_uri
|
||||
domains:
|
||||
invite-redirect-tel-uri.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:
|
||||
invite-redirect-tel-uri.scenarios.test:
|
||||
testuser1000:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1000
|
||||
testuser1001:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1001
|
||||
testuser1002:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1002
|
||||
scenarios:
|
||||
- ip: 127.126.0.1
|
||||
username: testuser1000
|
||||
domain: invite-redirect-tel-uri.scenarios.test
|
||||
responders:
|
||||
- ip: 127.1.0.1
|
||||
username: testuser1001
|
||||
domain: invite-redirect-tel-uri.scenarios.test
|
||||
register: 'yes'
|
||||
- ip: 127.1.0.2
|
||||
username: testuser1002
|
||||
domain: invite-redirect-tel-uri.scenarios.test
|
||||
register: 'yes'
|
||||
- ip: 127.1.0.3
|
||||
username: testuser1000
|
||||
domain: invite-redirect-tel-uri.scenarios.test
|
||||
active: 'no'
|
||||
register: 'no'
|
||||
@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<!-- with wierd P-Asserted-Identity which lacks angles (customer scenario) -->
|
||||
<!-- with Diversion present from the very beginning (customer scenario) -->
|
||||
<!-- Diversion value is hardcoded because in customer's case it's something unrelated to call -->
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAC Caller">
|
||||
<send start_rtd="1" start_rtd="2">
|
||||
<![CDATA[
|
||||
|
||||
INVITE sip:[field0 file="callee.csv" line=0]@[field3 file="callee.csv" line=0] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <tel:+[field1 file="callee.csv" line=2]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <tel:+[field1 file="callee.csv" line=0]>
|
||||
Diversion: <tel:+43111222333>;reason=unconditional;privacy=off;counter=1
|
||||
P-Asserted-Identity: <tel:+[field1 file="callee.csv" line=2]>
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 1 INVITE
|
||||
Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Type: application/sdp
|
||||
Content-Length: [len]
|
||||
|
||||
v=0
|
||||
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
|
||||
s=-
|
||||
c=IN IP[media_ip_type] [media_ip]
|
||||
t=0 0
|
||||
m=audio [media_port] RTP/AVP 8
|
||||
a=rtpmap:8 PCMA/8000
|
||||
a=ptime:50
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" rtd="1" optional="true"/>
|
||||
<recv response="407" rtd="2" auth="true"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
ACK sip:[field0 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]:[remote_port] SIP/2.0
|
||||
[last_Via:]
|
||||
From: <tel:+[field1 file="callee.csv" line=2]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <tel:+[field1 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>[peer_tag_param]
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 1 ACK
|
||||
Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<pause milliseconds="500"/>
|
||||
|
||||
<send start_rtd="3">
|
||||
<![CDATA[
|
||||
|
||||
INVITE sip:[field0 file="callee.csv" line=0]@[field3 file="callee.csv" line=0] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <tel:+[field1 file="callee.csv" line=2]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <tel:+[field1 file="callee.csv" line=0]>
|
||||
Diversion: <tel:+43111222333>;reason=unconditional;privacy=off;counter=1
|
||||
P-Asserted-Identity: <tel:+[field1 file="callee.csv" line=2]>
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 2 INVITE
|
||||
Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
[field1 file="caller.csv"]
|
||||
Content-Type: application/sdp
|
||||
Content-Length: [len]
|
||||
|
||||
v=0
|
||||
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
|
||||
s=-
|
||||
c=IN IP[media_ip_type] [media_ip]
|
||||
t=0 0
|
||||
m=audio [media_port] RTP/AVP 8
|
||||
a=rtpmap:8 PCMA/8000
|
||||
a=ptime:50
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true"/>
|
||||
<recv response="180" optional="true"/>
|
||||
<recv response="200" rrs="true" rtd="3"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
ACK [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <tel:+[field1 file="callee.csv" line=2]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <tel:+[field1 file="callee.csv" line=0]>[peer_tag_param]
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
[routes]
|
||||
CSeq: 2 ACK
|
||||
Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<pause milliseconds="500"/>
|
||||
<nop>
|
||||
<action>
|
||||
<exec play_pcap_audio="media181sec.pcap"/>
|
||||
</action>
|
||||
</nop>
|
||||
|
||||
<pause milliseconds="1000"/>
|
||||
|
||||
<send start_rtd="4">
|
||||
<![CDATA[
|
||||
|
||||
BYE [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <tel:+[field1 file="callee.csv" line=2]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <tel:+[field1 file="callee.csv" line=0]>[peer_tag_param]
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 3 BYE
|
||||
[routes]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true"/>
|
||||
<recv response="200" crlf="true" rtd="4"/>
|
||||
|
||||
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200, 500, 1000"/>
|
||||
|
||||
<!-- <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -->
|
||||
|
||||
</scenario>
|
||||
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAS Responder">
|
||||
|
||||
<recv request="INVITE" rtd="true"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
SIP/2.0 302 Moved Temporarily
|
||||
[last_Via:]
|
||||
[last_From:]
|
||||
[last_To:];tag=[pid]SIPpTag00[call_number]
|
||||
[last_Call-ID:]
|
||||
[last_CSeq:]
|
||||
Contact: <sip:[field0 file="callee.csv" line=1]@[field3 file="callee.csv" line=1];transport=[transport]>
|
||||
Diversion: <sip:[field1 file="callee.csv" line=0]@[field3 file="callee.csv" line=1];transport=[transport]>
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv request="ACK"/>
|
||||
|
||||
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
|
||||
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
|
||||
|
||||
</scenario>
|
||||
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAS Responder">
|
||||
|
||||
<recv request="INVITE" rtd="true"/>
|
||||
|
||||
<pause milliseconds="100"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
SIP/2.0 100 Trying
|
||||
[last_Via:]
|
||||
[last_From:]
|
||||
[last_To:];user=phone
|
||||
[last_Call-ID:]
|
||||
[last_CSeq:]
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
SIP/2.0 180 Ringing
|
||||
[last_Via:]
|
||||
[last_From:]
|
||||
[last_To:];tag=[pid]SIPpTag01[call_number]
|
||||
[last_Call-ID:]
|
||||
[last_CSeq:]
|
||||
Contact: <sip:[local_ip]:[local_port];transport=[transport]>
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<pause milliseconds="500"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
SIP/2.0 200 OK
|
||||
[last_Via:]
|
||||
[last_From:]
|
||||
[last_To:];tag=[pid]SIPpTag01[call_number]
|
||||
[last_Call-ID:]
|
||||
[last_CSeq:]
|
||||
[last_Record-Route:]
|
||||
[last_Route:]
|
||||
Contact: <sip:[local_ip]:[local_port];transport=[transport]>
|
||||
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
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv request="ACK"/>
|
||||
<recv request="BYE"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
SIP/2.0 200 OK
|
||||
[last_Via:]
|
||||
[last_From:]
|
||||
[last_To:]
|
||||
[last_Call-ID:]
|
||||
[last_CSeq:]
|
||||
Contact: <sip:[local_ip]:[local_port];transport=[transport]>
|
||||
Content-Length: [len]
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
|
||||
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
|
||||
|
||||
</scenario>
|
||||
Loading…
Reference in new issue