TT#81700 bin/generate_test_tt2.py: improvements

* bin/create_subscribers.pl: add customers field
  so we can list them

- spaces in Content-Length
- remove XML content
- sip-if-match value is dynamic
- detect ids in more internal headers
- customers id can now be detected

Change-Id: Ib75c48a8954d848add95dd50d77cc6ffc94df210
mr11.2
Victor Seva 3 years ago
parent 267d4a891c
commit 607a58e3cb

@ -153,6 +153,7 @@ sub manage_domains
sub manage_customers
{
my $data = shift;
$ids->{customers} = ();
foreach my $customer (sort keys %{$data->{customers}})
{
my $customer_data = $data->{customers}->{$customer};
@ -165,8 +166,9 @@ sub manage_customers
$customer_data->{customer_id} = $api->create_customer($customer_data->{details});
print "customer [$customer]: created [$customer_data->{customer_id}]\n";
}
my $key = $customer =~ tr/\./_/r;
my $key = $customer =~ tr/\-\./_/r;
$ids->{$key}->{id} = $customer_data->{customer_id};
push(@{$ids->{customers}}, $key);
}
return;
}
@ -176,8 +178,7 @@ sub create_subscriber
my ($username, $domain , $data , $s) = @_;
my $pbx_groups = $data->{pbx_groups};
my $key = $username =~ tr/\./_/r;
my $key_dom = $domain =~ tr/\./_/r;
$key_dom = $key_dom =~ tr/\-/_/r;
my $key_dom = $domain =~ tr/\-\./_/r;
$s->{pbx_group_ids} = [];
$s->{username} = $username;

@ -77,8 +77,8 @@ def load_json(filepath):
def is_zero(matchobj):
if matchobj.group(1) == "0":
return ": 0"
return r": \d+"
return r":\s+0"
return r":\s+\d+"
class Generator:
@ -143,6 +143,12 @@ class Generator:
r"alias=[% {}.{} %]\1".format(tt, field),
)
)
rules.append(
(
r"P-First-Calle(e|r)-(U|N)PN: {}".format(subs[field]),
r"P-First-Calle\1-\2PN: [% {}.{} %]".format(tt, field),
)
)
def sdp_rule(val, tt):
rules.append(
@ -247,6 +253,14 @@ class Generator:
sip_rule(subs, f"{id_dom}.{key}", "phone_number")
if "pbx_extension" in subs:
sip_rule(subs, f"{id_dom}.{key}", "pbx_extension")
rules.append(
(
r"^(P-.+-PBX-Ext): (.+)",
r"\1: [% {} %]".format(
f"{id_dom}.{key}.pbx_extension"
),
)
)
if "pbx_phone_number" in subs:
sip_rule(subs, f"{id_dom}.{key}", "pbx_phone_number")
if "alias_numbers" in subs:
@ -280,10 +294,19 @@ class Generator:
if hdr is None:
rules.append((r"^a=rtcp:\d+", r"a=rtcp:\\d+"))
rules.append((r"^m=audio \d+ (.+)", r"m=audio \\d+ \1"))
rules.append(
(r"<\\\?xml version=\"[^\"]+\"\\\?><dialog-info .+", "")
)
elif hdr in ["from", "to"]:
rules.append((r";tag=[^;>]+", r";tag=[\\w-]+"))
elif hdr in ["www-authenticate", "proxy-authenticate"]:
elif hdr in [
"www-authenticate",
"authorization",
"proxy-authenticate",
"proxy-authorization",
]:
rules.append((r"nonce=\"[^\"]+", 'nonce="[^"]+'))
rules.append((r"response=\"[^\"]+", 'response="[^"]+'))
elif hdr in ["server", "user-agent"]:
rules.append(
(
@ -302,10 +325,13 @@ class Generator:
elif hdr == "contact":
rules.append((r"expires=[1-9]\d*", r"expires=\\d+"))
rules.append((r";ngcpct=[^;>]+", r";ngcpct=[^;]+"))
rules.append((r";alias=[^;>]+", r";alias=[^;]+"))
elif hdr == "cseq":
rules.append((r":\s+\d+", r": \\d+"))
elif hdr == "subscription-state":
rules.append((r";expires=[1-9]\d*", r";expires=\\d+"))
elif hdr == "sip-if-match":
rules.append((r": (.+)", ":"))
return rules
def subst_common(self, line: str, hdr: str) -> str:
@ -398,8 +424,22 @@ class CFGTGenerator(Generator):
def add_ngcp_info(subs, tt):
rules.append(
(
r"^P-Calle(r|e)-UUID: {}".format(subs["uuid"]),
r"P-Calle\1-UUID: [% {0}.uuid %]".format(tt),
r"^P(-Prev)?-Calle(r|e)-UUID: {}".format(subs["uuid"]),
r"P\1-Calle\2-UUID: [% {0}.uuid %]".format(tt),
)
)
def add_customer_info(cust, tt):
rules.append(
(
r"(a|b)_park_domain={}([^\d])?".format(cust["id"]),
r"\1_park_domain=[% {0}.id %]\2".format(tt),
)
)
rules.append(
(
r"^P-([^:]+): {}$".format(cust["id"]),
r"P-\1: [% {0}.id %]".format(tt),
)
)
@ -410,7 +450,10 @@ class CFGTGenerator(Generator):
for key in ids[id_dom]:
subs = ids[id_dom][key]
add_ngcp_info(subs, f"{id_dom}.{key}")
if "customers" in ids.keys():
for customer_key in ids["customers"]:
customer = ids[customer_key]
add_customer_info(customer, f"{customer_key}")
return rules
def generate_common_rules(self, hdr: str) -> list:

@ -5,31 +5,31 @@ messages:
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="auth-fail.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 401 Unauthorized'
- 'From: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="auth-fail.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 401 Unauthorized'
- 'From: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="auth-fail.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 401 Unauthorized'
- 'From: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="auth-fail.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 403 Try again later'
- 'From: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@auth-fail.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,13 +4,13 @@ messages:
- 'To: <sip:[% incoming_foreign_dom_scenarios_test.testuser1003.phone_number %]@incoming-foreign-dom.scenarios.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 101 Connecting'
- 'From: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_foreign_dom_scenarios_test.testuser1003.phone_number %]@incoming-foreign-dom.scenarios.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -18,7 +18,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_foreign_dom_scenarios_test.testuser1003.phone_number %]@incoming-foreign-dom.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes>'
@ -28,7 +28,7 @@ messages:
- 'To: <sip:[% incoming_foreign_dom_scenarios_test.testuser1003.phone_number %]@incoming-foreign-dom.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -48,4 +48,4 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_foreign_dom_scenarios_test.testuser1003.phone_number %]@incoming-foreign-dom.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -28,7 +28,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@incoming-foreign-dom.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=sip:[% server_ip %]:5060>'
@ -38,4 +38,4 @@ messages:
- 'To: <sip:[% scenarios.0.responders.0.username %]@incoming-foreign-dom.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@incoming-foreign-dom.external.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,7 +4,7 @@ messages:
- 'To: <sip:[% incoming_hih_scenarios_test.testuser1003.phone_number %]@incoming-hih.scenarios.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -12,7 +12,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-hih.host0.peer.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_hih_scenarios_test.testuser1003.phone_number %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+>'
@ -22,7 +22,7 @@ messages:
- 'To: <sip:[% incoming_hih_scenarios_test.testuser1003.phone_number %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -42,4 +42,4 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-hih.host0.peer.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_hih_scenarios_test.testuser1003.phone_number %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -11,7 +11,7 @@ messages:
- 'History-Info: <sip:\+[% incoming_hih_scenarios_test.testuser1002.phone_number %]@incoming-hih.scenarios.test:5060;user=phone;cause=302>;index=1.1.1'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@incoming-hih.scenarios.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -31,7 +31,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.1.username %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=sip:[% server_ip %]:5060>'
@ -41,4 +41,4 @@ messages:
- 'To: <sip:[% scenarios.0.responders.1.username %]@incoming-hih.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@incoming-hih.scenarios.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,7 +4,7 @@ messages:
- 'To: <sip:[% incoming_peer_scenarios_lnp_test.testuser1001.phone_number %]@incoming-peer.scenarios-lnp.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -12,7 +12,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@127.0.2.1>;tag=[\w-]+'
- 'To: <sip:[% incoming_peer_scenarios_lnp_test.testuser1001.phone_number %]@incoming-peer.scenarios-lnp.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+>'
@ -22,7 +22,7 @@ messages:
- 'To: <sip:[% incoming_peer_scenarios_lnp_test.testuser1001.phone_number %]@incoming-peer.scenarios-lnp.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -41,4 +41,4 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@127.0.2.1>;tag=[\w-]+'
- 'To: <sip:[% incoming_peer_scenarios_lnp_test.testuser1001.phone_number %]@incoming-peer.scenarios-lnp.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@127.0.2.1>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -27,7 +27,7 @@ messages:
- 'From: <sip:[% scenarios.0.username %]@incoming-peer.scenarios-lnp.test>;tag=[\w-]+'
- 'To: <sip:[% extra_info.phone_numbers.1 %]@[% scenarios.0.ip %]>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes>'
@ -37,4 +37,4 @@ messages:
- 'To: <sip:[% extra_info.phone_numbers.1 %]@[% scenarios.0.ip %]>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% scenarios.0.username %]@127.0.2.1>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -24,7 +24,7 @@ sip_in:
- 'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ CANCEL'
- 'Contact: <sip:127.0.0.1:5080;transport=udp>'
- 'P-LB-Uptime: \d+'
- 'P-LB-Uptime:\s+\d+'
- 'P-Asserted-Identity: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>'
- 'P-Caller-UUID: [% incoming_shared_line_scenarios_pbx_test.testuser1003.uuid %]'
- 'P-Callee-UUID: [% incoming_shared_line_scenarios_pbx_test.testuser1002.uuid %]'
@ -35,7 +35,7 @@ sip_in:
- 'P-NGCP-Presence-Callee: sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test'
- 'P-D-Uri: sip:lb@127.0.0.1;lr;received=sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];socket=sip:[% server_ip %]:5060'
- 'Reason: SIP;cause=200;text="Call completed elsewhere"'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
sip_out:
- [
'SIP/2.0 100 Trying',
@ -43,14 +43,14 @@ sip_out:
'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+',
'CSeq: \d+ CANCEL',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]
- [
'CANCEL sip:[% scenarios.2.responders.0.username %]@[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %] SIP/2.0',
'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+',
'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>',
'CSeq: \d+ CANCEL',
'Content-Length: 0',
'Content-Length:\s+0',
'Reason: SIP;cause=200;text="Call completed elsewhere"',
]
- [
@ -59,5 +59,5 @@ sip_out:
'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+',
'CSeq: \d+ CANCEL',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]

@ -6,4 +6,4 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ OPTIONS'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -6,4 +6,4 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ OPTIONS'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,20 +4,20 @@ messages:
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 407 Proxy Authentication Required'
- 'From: <sip:[% scenarios.2.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Proxy-Authenticate: Digest realm="incoming-shared-line.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 100 Trying'
- 'From: <sip:[% scenarios.2.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -26,7 +26,7 @@ messages:
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Allow: INVITE, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-Asserted-Identity: "[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]" <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 180 Ringing'
@ -37,7 +37,7 @@ messages:
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Allow: INVITE, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-Asserted-Identity: "[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]" <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
@ -49,7 +49,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'Allow: INVITE, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'P-Asserted-Identity: "[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]" <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
@ -69,5 +69,5 @@ messages:
- 'From: <sip:[% scenarios.2.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-Asserted-Identity: "[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]" <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1002.pbx_extension %]@incoming-shared-line.scenarios-pbx.test>'

@ -5,7 +5,7 @@ messages:
- 'CSeq: \d+ SUBSCRIBE'
- 'Proxy-Authenticate: Digest realm="incoming-shared-line.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 202 Accepted'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -15,7 +15,7 @@ messages:
- 'Event: call-info'
- 'Allow-Events: call-info, line-seize'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'NOTIFY sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=udp:[% server_ip %]:5060>'
@ -23,7 +23,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -35,7 +35,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=1;appearance-state=active;appearance-uri="<sip:[% scenarios.2.username %]@incoming-shared-line.scenarios-pbx.test>",<sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -47,7 +47,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -59,7 +59,7 @@ messages:
- 'CSeq: \d+ SUBSCRIBE'
- 'Proxy-Authenticate: Digest realm="incoming-shared-line.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 202 Accepted'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -69,7 +69,7 @@ messages:
- 'Event: call-info'
- 'Allow-Events: call-info, line-seize'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'NOTIFY sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=udp:[% server_ip %]:5060>'
@ -77,7 +77,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'

@ -5,7 +5,7 @@ messages:
- 'CSeq: \d+ SUBSCRIBE'
- 'Proxy-Authenticate: Digest realm="incoming-shared-line.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 202 Accepted'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -15,7 +15,7 @@ messages:
- 'Event: call-info'
- 'Allow-Events: call-info, line-seize'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'NOTIFY sip:[% scenarios.1.responders.0.username %]@[% scenarios.1.responders.0.ip %]:[% scenarios.1.responders.0.port %] SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=udp:[% server_ip %]:5060>'
@ -23,7 +23,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -35,7 +35,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=1;appearance-state=active;appearance-uri="<sip:[% scenarios.2.username %]@incoming-shared-line.scenarios-pbx.test>",<sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -47,7 +47,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'
@ -59,7 +59,7 @@ messages:
- 'CSeq: \d+ SUBSCRIBE'
- 'Proxy-Authenticate: Digest realm="incoming-shared-line.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 202 Accepted'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -69,7 +69,7 @@ messages:
- 'Event: call-info'
- 'Allow-Events: call-info, line-seize'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'NOTIFY sip:[% scenarios.1.responders.0.username %]@[% scenarios.1.responders.0.ip %]:[% scenarios.1.responders.0.port %] SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=udp:[% server_ip %]:5060>'
@ -77,7 +77,7 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'From: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ NOTIFY'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'User-Agent: Sipwise NGCP Proxy'
- 'Call-Info: <sip:incoming-shared-line.scenarios-pbx.test>;appearance-index=\*;appearance-state=idle'
- 'Event: call-info'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -24,9 +24,9 @@ messages:
- 'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>'
- 'CSeq: \d+ CANCEL'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'ACK sip:[% scenarios.2.responders.0.username %]@[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %] SIP/2.0'
- 'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -27,7 +27,7 @@ messages:
- 'From: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.2.responders.1.ip %]:[% scenarios.2.responders.1.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=sip:[% server_ip %]:5060>'
@ -37,4 +37,4 @@ messages:
- 'To: <sip:[% scenarios.0.username %]@incoming-shared-line.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% incoming_shared_line_scenarios_pbx_test.testuser1003.pbx_phone_number %]@incoming-shared-line.scenarios-pbx.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -27,15 +27,15 @@ sip_in:
- 'From: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>'
- 'CSeq: \d+ REGISTER'
- 'Authorization: Digest username="[% scenarios.0.responders.0.username %]",realm="invite-alias.scenarios-pbx.test",uri="sip:[% server_ip %]:5060",nonce="YkVQ2mJFT66j3lIeqArEM17Epo4eoSyC",response="9521fb6a40314ab7ea438d73e2f7dfae",algorithm=MD5'
- 'Authorization: Digest username="[% scenarios.0.responders.0.username %]",realm="invite-alias.scenarios-pbx.test",uri="sip:[% server_ip %]:5060",nonce="[^"]+",response="[^"]+",algorithm=MD5'
- 'Contact: sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-NGCP-Src-Ip: [% scenarios.0.ip %]'
- 'P-NGCP-Src-Port: [% scenarios.0.responders.0.port %]'
- 'P-NGCP-Src-Proto: udp'
- 'P-NGCP-Src-Af: 4'
- 'P-Sock-Info: udp:[% server_ip %]:5060'
- 'P-LB-Uptime: \d+'
- 'P-LB-Uptime:\s+\d+'
- 'P-NGCP-Src-Nat: 1'
- 'Path: <sip:lb@127.0.0.1;lr;received=sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];socket=sip:[% server_ip %]:5060>'
sip_out:
@ -48,7 +48,7 @@ sip_out:
'P-NGCP-Auth-IP: [% scenarios.0.ip %]',
'P-NGCP-Auth-UA: <null>',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]
- [
'SIP/2.0 200 OK',
@ -63,5 +63,5 @@ sip_out:
'P-Caller-UUID: [% invite_alias_scenarios_pbx_test.testuser1003.uuid %]',
'Contact: <sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %]>;expires=\d+;received="sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %]"',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]

@ -27,15 +27,15 @@ sip_in:
- 'From: <sip:[% scenarios.0.username %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% invite_alias_scenarios_pbx_test.testuser1003.alias_numbers.0.phone_number %]@invite-alias.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'Contact: <sip:[% scenarios.0.username %]@[% scenarios.0.ip %]:[% scenarios.0.port %];alias=10.20.29.2~51602~1>'
- 'Contact: <sip:[% scenarios.0.username %]@[% scenarios.0.ip %]:[% scenarios.0.port %];alias=[^;]+>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'P-NGCP-Src-Ip: [% scenarios.0.ip %]'
- 'P-NGCP-Src-Port: [% scenarios.0.port %]'
- 'P-NGCP-Src-Proto: udp'
- 'P-NGCP-Src-Af: 4'
- 'P-Sock-Info: udp:[% server_ip %]:5060'
- 'P-LB-Uptime: \d+'
- 'P-LB-Uptime:\s+\d+'
- 'P-NGCP-Src-Nat: 1'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% scenarios.0.ip %]'
@ -55,7 +55,7 @@ sip_out:
'P-NGCP-Auth-IP: [% scenarios.0.ip %]',
'P-NGCP-Auth-UA: <null>',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]
- [
'SIP/2.0 407 Proxy Authentication Required',
@ -67,5 +67,5 @@ sip_out:
'P-NGCP-Auth-UA: <null>',
'Proxy-Authenticate: Digest realm="invite-alias.scenarios-pbx.test", nonce="[^"]+"',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]

@ -19,7 +19,7 @@ sip_in:
- 'From: <sip:[% invite_alias_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'P-LB-Uptime: \d+'
- 'P-LB-Uptime:\s+\d+'
- 'P-Asserted-Identity: <sip:[% invite_alias_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias.scenarios-pbx.test>'
- 'P-Caller-UUID: [% invite_alias_scenarios_pbx_test.testuser1002.uuid %]'
- 'P-Callee-UUID: [% invite_alias_scenarios_pbx_test.testuser1003.uuid %]'
@ -30,7 +30,7 @@ sip_in:
- 'P-NGCP-Presence-Callee: sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test'
- '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'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:127.0.0.1:5080;transport=udp>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -50,7 +50,7 @@ sip_out:
'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>',
'CSeq: \d+ INVITE',
'Server: Sipwise NGCP Proxy',
'Content-Length: 0',
'Content-Length:\s+0',
]
- [
'INVITE sip:[% scenarios.0.responders.0.username %]@[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %] SIP/2.0',
@ -58,7 +58,7 @@ sip_out:
'From: <sip:[% invite_alias_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+',
'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>',
'CSeq: \d+ INVITE',
'P-LB-Uptime: \d+',
'P-LB-Uptime:\s+\d+',
'P-Asserted-Identity: <sip:[% invite_alias_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias.scenarios-pbx.test>',
'P-Caller-UUID: [% invite_alias_scenarios_pbx_test.testuser1002.uuid %]',
'P-Callee-UUID: [% invite_alias_scenarios_pbx_test.testuser1003.uuid %]',
@ -67,7 +67,7 @@ sip_out:
'P-NGCP-Callee-Info: <sip:[% invite_alias_scenarios_pbx_test.testuser1003.alias_numbers.0.phone_number %]@invite-alias.scenarios-pbx.test>;ip=[% scenarios.0.responders.0.ip %];port=[% scenarios.0.responders.0.port %];primary=[% invite_alias_scenarios_pbx_test.testuser1003.pbx_phone_number %];alias=[% invite_alias_scenarios_pbx_test.testuser1003.alias_numbers.0.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',
'Content-Length: \d+',
'Content-Length:\s+\d+',
'Contact: <sip:127.0.0.1:5080;transport=udp>',
'v=0',
'o=user1 \d+ \d+ IN IP4 [% server_ip %]',

@ -18,7 +18,7 @@ sip_in:
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Contact: <sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-NGCP-Src-Ip: [% scenarios.0.ip %]'
- 'P-NGCP-Src-Port: [% scenarios.0.responders.0.port %]'
- 'P-NGCP-Src-Proto: udp'
@ -30,7 +30,7 @@ sip_out:
'To: <sip:[% scenarios.0.responders.0.username %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+',
'CSeq: \d+ BYE',
'Contact: <sip:[% scenarios.0.responders.0.ip %]:[% scenarios.0.responders.0.port %];transport=UDP>',
'Content-Length: 0',
'Content-Length:\s+0',
'P-NGCP-Src-Ip: [% scenarios.0.ip %]',
'P-NGCP-Src-Port: [% scenarios.0.responders.0.port %]',
'P-NGCP-Src-Proto: udp',

@ -22,7 +22,7 @@ sip_in:
- 'From: <sip:[% invite_alias_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% invite_alias_scenarios_pbx_test.testuser1003.alias_numbers.0.phone_number %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
sip_out:
- [
'SIP/2.0 200 OK',
@ -32,7 +32,7 @@ sip_out:
'From: <sip:[% scenarios.0.username %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+',
'To: <sip:[% invite_alias_scenarios_pbx_test.testuser1003.alias_numbers.0.phone_number %]@invite-alias.scenarios-pbx.test>;tag=[\w-]+',
'CSeq: \d+ BYE',
'Content-Length: 0',
'Content-Length:\s+0',
'P-COLP-Identity: "[% invite_alias_scenarios_pbx_test.testuser1003.pbx_extension %]" <sip:[% invite_alias_scenarios_pbx_test.testuser1003.pbx_extension %]@invite-alias.scenarios-pbx.test>',
'P-Out-Socket: udp:[% server_ip %]:5060',
]

@ -5,11 +5,11 @@ messages:
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="invite-alias-devid.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 200 OK'
- 'From: <sip:[% scenarios.0.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: "TestBria" <sip:[% scenarios.0.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'Contact: <sip:[% scenarios.0.username %]@10.20.29.2:6666;ob>;expires=\d+;received="sip:[% scenarios.0.ip %]:[% scenarios.0.port %]";\+sip.instance="<urn:uuid:C3DD6013-20E8-40E3-8EA2-5849B02ED0C4>";reg-id=1'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -5,11 +5,11 @@ messages:
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="invite-alias-devid.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 200 OK'
- 'From: <sip:[% scenarios.1.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: "TestBria" <sip:[% scenarios.1.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'Contact: <sip:[% scenarios.1.devid %]@10.20.29.2:6666;ob>;expires=\d+;received="sip:[% scenarios.1.ip %]:[% scenarios.1.port %]";\+sip.instance="<urn:uuid:C3DD6013-20E8-40E3-8EA2-5849B02ED0C4>";reg-id=1'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,20 +4,20 @@ messages:
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 407 Proxy Authentication Required'
- 'From: <sip:[% scenarios.2.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Proxy-Authenticate: Digest realm="invite-alias-devid.scenarios-pbx.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 100 Trying'
- 'From: <sip:[% scenarios.2.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -25,7 +25,7 @@ messages:
- 'From: <sip:[% scenarios.2.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-Asserted-Identity: "[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]" <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]@invite-alias-devid.scenarios-pbx.test>'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
@ -36,7 +36,7 @@ messages:
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'P-Asserted-Identity: "[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]" <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]@invite-alias-devid.scenarios-pbx.test>'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
@ -56,5 +56,5 @@ messages:
- 'From: <sip:[% scenarios.2.username %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'P-Asserted-Identity: "[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]" <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1003.pbx_extension %]@invite-alias-devid.scenarios-pbx.test>'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias-devid.scenarios-pbx.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -27,7 +27,7 @@ messages:
- 'From: <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=sip:[% server_ip %]:5060>'
@ -37,4 +37,4 @@ messages:
- 'To: <sip:[% scenarios.2.devid %]@invite-alias-devid.scenarios-pbx.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% invite_alias_devid_scenarios_pbx_test.testuser1002.phone_number %]@invite-alias-devid.scenarios-pbx.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

File diff suppressed because it is too large Load Diff

@ -0,0 +1,260 @@
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_CONSUME_CF_HDRS:
- start|ROUTE_RESTORE_DEVALIAS_HEADERS:
- return|ROUTE_RESTORE_DEVALIAS_HEADERS:
- return|ROUTE_CONSUME_CF_HDRS:
- return|ROUTE_FIND_CALLER:
- start|ROUTE_LOAD_CALLER_PREF:
- start|ROUTE_CLEAR_CALLER_PREF:
- return|ROUTE_CLEAR_CALLER_PREF:
- start|ROUTE_CHECK_UA:
- return|ROUTE_CHECK_UA:
- start|ROUTE_LOAD_CALLER_CONTRACT_PREF:
- return|ROUTE_LOAD_CALLER_CONTRACT_PREF:
- start|ROUTE_DLG_MANAGE:
- return|ROUTE_DLG_MANAGE:
- return|ROUTE_LOAD_CALLER_PREF:
- start|ROUTE_APPLY_HEADER_RULES:
- return|ROUTE_APPLY_HEADER_RULES:
- 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_CHECK_USERPROV_CLI:
- start|ROUTE_CHECK_CLI_ALLOWED:
- return|ROUTE_CHECK_CLI_ALLOWED:
- return|ROUTE_CHECK_USERPROV_CLI:
- start|ROUTE_FIND_CALLEE:
- start|ROUTE_DETECT_LOOP:
- return|ROUTE_DETECT_LOOP:
- 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_TOTAL:
- return|ROUTE_SET_CALLEE_DIALOG_TOTAL:
- start|ROUTE_SET_CALLEE_DIALOG_ACTIVE:
- return|ROUTE_SET_CALLEE_DIALOG_ACTIVE:
- 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:
- 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:
- 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_SCA_UPDATE:
- return|ROUTE_SCA_UPDATE:
- 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_TOTAL:
- return|ROUTE_SET_CALLEE_DIALOG_TOTAL:
- start|ROUTE_SET_CALLEE_DIALOG_ACTIVE:
- return|ROUTE_SET_CALLEE_DIALOG_ACTIVE:
- 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:[% invite_manager_2sec_scenarios_pbx_test.secretary1.pbx_phone_number %]@invite-manager-2sec.scenarios-pbx.test SIP/2.0'
- 'From: <sip:[% scenarios.1.username %]@invite-manager-2sec.scenarios-pbx.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>'
- 'CSeq: \d+ INVITE'
- 'P-HIH-Cause: 302'
- 'P-NGCP-Sems-Instance: sbc'
- 'P-Caller-UUID: [% invite_manager_2sec_scenarios_pbx_test.manager.uuid %]'
- 'P-MS-Forward-Active: 1'
- 'P-First-Caller-UPN: [% invite_manager_2sec_scenarios_pbx_test.manager.phone_number %]1003'
- 'P-First-Caller-NPN: [% invite_manager_2sec_scenarios_pbx_test.manager.phone_number %]1003'
- 'P-First-Caller-UPD: invite-manager-2sec.scenarios-pbx.test'
- 'P-First-Caller-NPD: invite-manager-2sec.scenarios-pbx.test'
- 'P-Acc-Caller-User: manager'
- 'P-Acc-Caller-Domain: invite-manager-2sec.scenarios-pbx.test'
- 'P-Acc-State: cfu'
- 'P-From-Peer: 0'
- 'P-First-V46-RTP: auto'
- 'P-First-RTP: ice_strip_candidates'
- 'P-First-RTP-Transport: transparent'
- 'P-First-Caller-CLIR: 0'
- 'P-CF-Depth: 1'
- 'P-First-Caller-UA-Mode: strip'
- 'P-First-Caller-Cloud-PBX: [% invite_manager_2sec_customerpbx_test.id %]'
- 'P-First-Caller-PBX-Ext: [% invite_manager_2sec_scenarios_pbx_test.testuser1003.pbx_extension %]'
- 'P-Callee-Account-ID: [% invite_manager_2sec_customerpbx_test.id %]'
- 'P-Orig-Callee-Dialed: manager'
- 'P-Prev-Caller-UUID: [% invite_manager_2sec_scenarios_pbx_test.testuser1003.uuid %]'
- 'P-First-Caller-RTP-Interface: ext'
- 'P-First-Caller-RTP-Interface-Source: default'
- 'P-NGCP-Presence-Caller: sip:[% scenarios.1.username %]@invite-manager-2sec.scenarios-pbx.test'
- 'P-NGCP-Caller-Info: <sip:[% scenarios.1.username %]@invite-manager-2sec.scenarios-pbx.test>;ip=[% scenarios.1.ip %];port=[% scenarios.1.port %];primary=[% invite_manager_2sec_scenarios_pbx_test.testuser1003.pbx_phone_number %]'
- 'P-NGCP-Forward-Info: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>;ip=127.0.0.1;port=5080;primary=[% invite_manager_2sec_scenarios_pbx_test.manager.phone_number %]'
- 'P-NGCP-Callee-Info: <sip:[% invite_manager_2sec_scenarios_pbx_test.secretary1.pbx_phone_number %]@invite-manager-2sec.scenarios-pbx.test>;ip=127.0.0.1;port=5080'
- 'Content-Type: application/sdp'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:127.0.0.1:5080;transport=udp>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% scenarios.0.ip %]'
- 's=-'
- 'c=IN IP4 [% scenarios.0.ip %]'
- 't=0 0'
- 'm=audio [% scenarios.1.mport %] RTP/AVP 8'
- 'a=rtpmap:8 PCMA/8000'
- 'a=sendrecv'
- 'a=ptime:50'
sip_out:
- [
'SIP/2.0 100 Trying',
'From: <sip:[% scenarios.1.username %]@invite-manager-2sec.scenarios-pbx.test>;tag=[\w-]+',
'To: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>',
'CSeq: \d+ INVITE',
'Server: Sipwise NGCP Proxy',
'Content-Length:\s+0',
]
- [
'INVITE sip:[% scenarios.1.responders.2.username %]@[% scenarios.1.responders.2.ip %]:[% scenarios.1.responders.2.port %] SIP/2.0',
'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+>',
'From: <sip:[% invite_manager_2sec_scenarios_pbx_test.testuser1003.pbx_phone_number %]@invite-manager-2sec.scenarios-pbx.test>;tag=[\w-]+',
'To: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>',
'CSeq: \d+ INVITE',
'P-Caller-UUID: [% invite_manager_2sec_scenarios_pbx_test.manager.uuid %]',
'P-CF-Depth: 1',
'P-NGCP-Caller-Info: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>;ip=127.0.0.1;port=5080;primary=[% invite_manager_2sec_scenarios_pbx_test.manager.phone_number %]',
'P-NGCP-Forward-Info: <sip:[% scenarios.0.responders.0.username %]@invite-manager-2sec.scenarios-pbx.test>;ip=127.0.0.1;port=5080;primary=[% invite_manager_2sec_scenarios_pbx_test.manager.phone_number %]',
'P-NGCP-Callee-Info: <sip:[% invite_manager_2sec_scenarios_pbx_test.secretary1.pbx_phone_number %]@invite-manager-2sec.scenarios-pbx.test>;ip=[% scenarios.1.responders.2.ip %];port=[% scenarios.1.responders.2.port %];primary=[% invite_manager_2sec_scenarios_pbx_test.secretary1.pbx_phone_number %]',
'Content-Type: application/sdp',
'Content-Length:\s+\d+',
'Contact: <sip:127.0.0.1:5080;transport=udp>',
'P-Asserted-Identity: <sip:[% invite_manager_2sec_scenarios_pbx_test.testuser1003.pbx_phone_number %]@invite-manager-2sec.scenarios-pbx.test>',
'P-Callee-UUID: [% invite_manager_2sec_scenarios_pbx_test.secretary1.uuid %]',
'P-NGCP-Rtpengine-Bleg: 1',
'P-Called-Party-ID: <sip:[% scenarios.1.responders.2.username %]@invite-manager-2sec.scenarios-pbx.test>',
'P-App-Param: ;calltimer=21600;aleg_sst_enable=no;sst_enable=no;hold_alter_b2b_bleg=no;hold_alter_b2b_aleg=no;fast_ack=no;a_park_domain=[% invite_manager_2sec_customerpbx_test.id %];b_park_domain=[% invite_manager_2sec_customerpbx_test.id %]',
'P-App-Name: sbc',
'P-NGCP-Presence-Callee: sip:[% scenarios.1.responders.2.username %]@invite-manager-2sec.scenarios-pbx.test',
'P-D-Uri: sip:lb@127.0.0.1;lr;received=sip:[% scenarios.1.responders.2.ip %]:[% scenarios.1.responders.2.port %];socket=sip:[% server_ip %]:5060',
'P-Proxy-Uri: sip:127.0.0.1:5062',
'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=rtcp-mux',
'a=ptime:50',
]

@ -0,0 +1,85 @@
---
customers:
- invite_manager_2sec_customerpbx_test
domains:
- invite_manager_2sec_scenarios_pbx_test
extra_info: {}
invite_manager_2sec_customerpbx_test:
id: '365'
invite_manager_2sec_scenarios_pbx_test:
manager:
ac: '1'
cc: '43'
pbx_extension: 1001
pbx_phone_number: '43110001001'
phone_number: '4311000'
sn: 1000
uuid: 24eebc4c-7262-4cb6-8b9b-b1599c2117f3
secretary1:
ac: '1'
cc: '43'
pbx_extension: 1002
pbx_phone_number: '43110001002'
phone_number: '4311001'
sn: 1001
uuid: 523c0503-beda-400c-941d-7007c880591f
secretary2:
ac: '1'
cc: '43'
pbx_extension: 1004
pbx_phone_number: '43110001004'
phone_number: '4311002'
sn: 1002
uuid: 37a0c876-4c61-4544-801a-709818fc6d6f
testuser1003:
ac: '1'
cc: '43'
pbx_extension: 1003
pbx_phone_number: '43110001003'
phone_number: '4311003'
sn: 1003
uuid: 48073a4f-042f-4e5f-a4c2-3072f4927311
scenarios:
- devid: secretary2
domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45003
port: 51602
responders:
- domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45006
port: 51603
proto: udp
register: yes
username: manager
username: secretary2
- devid: testuser1003
domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45009
port: 51604
responders:
- domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45012
port: 51605
proto: udp
register: yes
username: manager
- domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45015
port: 51606
proto: udp
register: yes
username: secretary2
- domain: invite-manager-2sec.scenarios-pbx.test
ip: 10.20.29.2
mport: 45018
port: 51607
proto: udp
register: yes
username: secretary1
username: testuser1003
server_ip: 192.168.2.75

@ -4,20 +4,20 @@ messages:
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 407 Proxy Authentication Required'
- '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'
- 'Proxy-Authenticate: Digest realm="invite-redirect-tel-uri.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 100 Trying'
- 'From: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]>;tag=[\w-]+'
- 'To: <tel:00[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+;vst=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -25,7 +25,7 @@ messages:
- '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'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+;vst=[^;]+>'
@ -35,7 +35,7 @@ messages:
- 'To: <tel:\+[% invite_redirect_tel_uri_scenarios_test.testuser1001.phone_number %]>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -55,4 +55,4 @@ messages:
- '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'
- 'Content-Length:\s+0'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -25,4 +25,4 @@ messages:
- '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>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -11,7 +11,7 @@ messages:
- 'History-Info: <sip:[% scenarios.0.responders.0.username %]@invite-redirect-tel-uri.scenarios.test:5060;user=phone\?Reason=SIP%3bcause%3d302>;index=1'
- 'History-Info: <sip:[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test:5060;user=phone;cause=302>;index=1.1'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -31,7 +31,7 @@ messages:
- '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>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes;socket=sip:[% server_ip %]:5060>'
@ -41,4 +41,4 @@ messages:
- 'To: <sip:[% scenarios.0.responders.1.username %]@invite-redirect-tel-uri.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% invite_redirect_tel_uri_scenarios_test.testuser1000.phone_number %]@invite-redirect-tel-uri.scenarios.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -5,11 +5,11 @@ messages:
- 'CSeq: \d+ REGISTER'
- 'WWW-Authenticate: Digest realm="invite-callforward.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 200 OK'
- 'From: <sip:[% scenarios.0.responders.0.username %]@invite-callforward.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-callforward.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ REGISTER'
- 'Contact: <sip:[% scenarios.0.responders.1.username %]@[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %]>;expires=\d+;received="sip:[% scenarios.0.responders.1.ip %]:[% scenarios.0.responders.1.port %]"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -4,20 +4,20 @@ messages:
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 407 Proxy Authentication Required'
- 'From: "[% invite_callforward_scenarios_test.testuser1002.alias_numbers.0.phone_number %]" <sip:[% scenarios.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Proxy-Authenticate: Digest realm="invite-allowedcli-match-alias.scenarios.test", nonce="[^"]+"'
- 'Server: Sipwise NGCP Proxy'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 100 Trying'
- 'From: "[% invite_callforward_scenarios_test.testuser1002.alias_numbers.0.phone_number %]" <sip:[% scenarios.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>'
- 'CSeq: \d+ INVITE'
- 'Server: Sipwise NGCP LB'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- - 'SIP/2.0 180 Ringing'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+>'
- 'Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=[^;]+;ngcplb=yes;nat=yes;socket=udp:[% server_ip %]:5060>'
@ -25,7 +25,7 @@ messages:
- 'From: "[% invite_callforward_scenarios_test.testuser1002.alias_numbers.0.phone_number %]" <sip:[% scenarios.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'SIP/2.0 200 OK'
- 'Record-Route: <sip:127.0.0.1:5062;lr=on;ftag=[^;]+;did=[^;]+;ice_caller=strip;ice_callee=strip;aset=\d+;rtpprx=yes;vsf=[^;]+>'
@ -35,7 +35,7 @@ messages:
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ INVITE'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -54,4 +54,4 @@ messages:
- 'From: "[% invite_callforward_scenarios_test.testuser1002.alias_numbers.0.phone_number %]" <sip:[% scenarios.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'To: <sip:[% scenarios.0.responders.0.username %]@invite-allowedcli-match-alias.scenarios.test>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -8,7 +8,7 @@ messages:
- 'CSeq: \d+ INVITE'
- 'P-Asserted-Identity: <sip:[% invite_callforward_scenarios_test.testuser1002.phone_number %]@invite-emergency.scenarios.test>'
- 'Content-Type: application/sdp'
- 'Content-Length: \d+'
- 'Content-Length:\s+\d+'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- 'v=0'
- 'o=user1 \d+ \d+ IN IP4 [% server_ip %]'
@ -27,7 +27,7 @@ messages:
- 'From: <sip:[% invite_callforward_scenarios_test.testuser1002.phone_number %]@invite-emergency.scenarios.test>;tag=[\w-]+'
- 'To: <sip:E1112@[% scenarios.2.responders.0.ip %]>;tag=[\w-]+'
- 'CSeq: \d+ ACK'
- 'Content-Length: 0'
- 'Content-Length:\s+0'
- 'Contact: <sip:ngcp-lb@[% server_ip %]:5060;ngcpct=[^;]+>'
- - 'BYE sip:[% scenarios.2.responders.0.ip %]:[% scenarios.2.responders.0.port %];transport=UDP SIP/2.0'
- 'Record-Route: <sip:[% server_ip %];r2=on;lr=on;ftag=[^;]+;ngcplb=yes>'
@ -37,4 +37,4 @@ messages:
- 'To: <sip:E1112@[% scenarios.2.responders.0.ip %]>;tag=[\w-]+'
- 'CSeq: \d+ BYE'
- 'P-Asserted-Identity: <sip:[% invite_callforward_scenarios_test.testuser1002.phone_number %]@invite-emergency.scenarios.test>'
- 'Content-Length: 0'
- 'Content-Length:\s+0'

@ -64,3 +64,17 @@ def test_primary_numbers(generate_test_tt2_file, caplog):
assert check_filecontent(TT2_FILE.format(scenario, id), res.out_file)
assert res.returncode == 0
def test_internal_headers(generate_test_tt2_file, caplog):
caplog.set_level(logging.DEBUG)
scenario = "invite_manager_2sec"
for id in ["0026"]:
res = generate_test_tt2_file(
"--type=cfgt",
IDS_FILE.format(scenario),
MSG_FILE.format(scenario, id),
)
assert check_filecontent(TT2_FILE.format(scenario, id), res.out_file)
assert res.returncode == 0

Loading…
Cancel
Save