* add suport for lnp.yml * update README Change-Id: I6460a9a52f8d4645fb9411d0570fd3383b8e6918changes/59/5659/8
parent
22080eb8e8
commit
1d9026e0f9
@ -0,0 +1,137 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright: 2016 Sipwise Development Team <support@sipwise.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This package is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# On Debian systems, the complete text of the GNU General
|
||||
# Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
||||
#
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use English;
|
||||
use YAML;
|
||||
use Getopt::Long;
|
||||
use Cwd 'abs_path';
|
||||
use Config::Tiny;
|
||||
use Sipwise::API qw(all);
|
||||
use Data::Dumper;
|
||||
|
||||
my $config = Config::Tiny->read('/etc/default/ngcp-api');
|
||||
my $opts;
|
||||
if ($config) {
|
||||
$opts = {};
|
||||
$opts->{host} = $config->{_}->{NGCP_API_IP};
|
||||
$opts->{port} = $config->{_}->{NGCP_API_PORT};
|
||||
$opts->{sslverify} = $config->{_}->{NGCP_API_SSLVERIFY};
|
||||
}
|
||||
my $api = Sipwise::API->new($opts);
|
||||
$opts = $api->opts;
|
||||
|
||||
sub usage {
|
||||
return "Usage:\n$PROGRAM_NAME lnp.yml\n".
|
||||
"Options:\n".
|
||||
" -delete remove lnp\n".
|
||||
" -d debug\n".
|
||||
" -h this help\n";
|
||||
}
|
||||
my $help = 0;
|
||||
my $del;
|
||||
GetOptions(
|
||||
"h|help" => \$help,
|
||||
"d|debug" => \$opts->{verbose},
|
||||
"delete" => \$del
|
||||
) or die("Error in command line arguments\n".usage());
|
||||
|
||||
die(usage()) unless (!$help);
|
||||
die("Error: wrong number of arguments\n".usage()) unless ($#ARGV == 0);
|
||||
|
||||
sub manage_lnp
|
||||
{
|
||||
my $data = shift;
|
||||
my $param = {
|
||||
name => $data->{name}
|
||||
};
|
||||
my $id = $api->check_lnpcarrier_exists($param);
|
||||
if($id) {
|
||||
$data->{id} = $id;
|
||||
print "ncos [$data->{name}] already there [$id]\n";
|
||||
} else {
|
||||
$data->{id} = $api->create_lnpcarrier($data);
|
||||
print "ncos [$data->{name}]: created [$data->{id}]\n";
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub manage_lnpnumbers
|
||||
{
|
||||
my $data = shift;
|
||||
my $lnp_id = shift;
|
||||
|
||||
foreach my $number (@{$data}) {
|
||||
$number->{carrier_id} = $lnp_id;
|
||||
my $id = $api->check_lnpnumber_exists($number);
|
||||
if($id) {
|
||||
print "lnnumber [$number->{number}] already there [$id]\n";
|
||||
} else {
|
||||
$number->{id} = $api->create_lnpnumber($number);
|
||||
print "lnpnumber [$number->{number}]: created [$number->{id}]\n";
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub do_delete
|
||||
{
|
||||
my ($data) = @_;
|
||||
foreach (keys %{$data})
|
||||
{
|
||||
my $lnp = $data->{$_}->{data};
|
||||
my $param = {
|
||||
name => $lnp->{name}
|
||||
};
|
||||
my $id = $api->check_lnpcarrier_exists($param);
|
||||
if($id) {
|
||||
if($api->delete_lnpcarrier($id)) {
|
||||
print "lnp: deleted [$lnp->{name}]\n";
|
||||
} else {
|
||||
die("Error: lnp: can't delete [$lnp->{name}]");
|
||||
}
|
||||
} else {
|
||||
print "lnp: already gone [$lnp->{name}]\n";
|
||||
}
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
sub do_create
|
||||
{
|
||||
my ($data) = @_;
|
||||
foreach (keys %{$data})
|
||||
{
|
||||
my $lnp = $data->{$_}->{data};
|
||||
manage_lnp($lnp);
|
||||
manage_lnpnumbers($data->{$_}->{numbers}, $lnp->{id});
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
my $r = YAML::LoadFile(abs_path($ARGV[0]));
|
||||
if ($del) {
|
||||
do_delete($r);
|
||||
}
|
||||
else {
|
||||
do_create($r);
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
kamailio:
|
||||
proxy:
|
||||
lnp:
|
||||
api:
|
||||
keepalive_interval: 3
|
||||
port: 8991
|
||||
request_timeout: 1000
|
||||
server: localhost
|
||||
enabled: yes
|
||||
type: local
|
@ -0,0 +1,103 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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_CLEAR_PEER_IN_PREF:
|
||||
- return|ROUTE_CLEAR_PEER_IN_PREF:
|
||||
- start|ROUTE_LOAD_PEER_IN_PREF:
|
||||
- return|ROUTE_LOAD_PEER_IN_PREF:
|
||||
- return|ROUTE_FIND_CALLER:
|
||||
- start|ROUTE_GET_CALLER_CLI:
|
||||
- return|ROUTE_GET_CALLER_CLI:
|
||||
- start|ROUTE_GET_CALLER_CLI:
|
||||
- return|ROUTE_GET_CALLER_CLI:
|
||||
- start|ROUTE_GET_FORWARDER_CLI:
|
||||
- return|ROUTE_GET_FORWARDER_CLI:
|
||||
- start|ROUTE_FIND_CALLEE:
|
||||
- start|ROUTE_CLIR:
|
||||
- return|ROUTE_CLIR:
|
||||
- start|ROUTE_CLEAR_CALLEE_PREF:
|
||||
- return|ROUTE_CLEAR_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_LOAD_CALLEE_PREF:
|
||||
- start|ROUTE_LOAD_CALLEE_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLEE_CONTRACT_PREF:
|
||||
- start|ROUTE_SET_CALLEE_DIALOG:
|
||||
- return|ROUTE_SET_CALLEE_DIALOG:
|
||||
- start|ROUTE_BLOCK_IN:
|
||||
- return|ROUTE_BLOCK_IN:
|
||||
- return|ROUTE_LOAD_CALLEE_PREF:
|
||||
$xavp(caller_peer_prefs[0]=>concurrent_max[*]): [1]
|
||||
- start|ROUTE_CHECK_PBX:
|
||||
- return|ROUTE_CHECK_PBX:
|
||||
- start|ROUTE_INVITE_TO_INT:
|
||||
- start|ROUTE_LOAD_CF_MAP:
|
||||
- return|ROUTE_LOAD_CF_MAP:
|
||||
- start|ROUTE_CHECK_CF_PERIOD:
|
||||
- return|ROUTE_CHECK_CF_PERIOD:
|
||||
- start|ROUTE_ACC_CF:
|
||||
- start|ROUTE_ACC_CALLER:
|
||||
- return|ROUTE_ACC_CALLER:
|
||||
- start|ROUTE_ACC_CALLEE:
|
||||
- return|ROUTE_ACC_CALLEE:
|
||||
- return|ROUTE_ACC_CF:
|
||||
- start|ROUTE_EXECUTE_CF_LOOP:
|
||||
- start|ROUTE_SET_CALLER_DIALOG:
|
||||
- return|ROUTE_SET_CALLER_DIALOG:
|
||||
- start|BRANCH_ROUTE_FWD_LOOP:
|
||||
- start|ROUTE_ADD_CALLINFO:
|
||||
- return|ROUTE_ADD_CALLINFO:
|
||||
- return|BRANCH_ROUTE_FWD_LOOP:
|
||||
- return|BRANCH_ROUTE_FWD_LOOP:
|
||||
- exit|ROUTE_EXECUTE_CF_LOOP:
|
||||
sip_in:
|
||||
- '^INVITE sip:4311001@'
|
||||
- 'Contact: sip:004321001@'
|
||||
- 'CSeq: 1 INVITE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:4311003@',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@',
|
||||
'Contact: sip:004321001@',
|
||||
'Content-Type: application/sdp',
|
||||
'P-HIH-Cause: 302',
|
||||
'P-From-Peer: 1',
|
||||
'P-Caller-UUID: \w+',
|
||||
'P-First-Caller-UPN: 004321001',
|
||||
'P-First-Caller-NPN: 004321001',
|
||||
'P-Acc-Caller-User: testuser1001',
|
||||
'P-CF-Depth: 1',
|
||||
'P-Orig-Callee-Dialed: 4311001',
|
||||
'P-App-Param: ;profile=ngcp_cf',
|
||||
'P-App-Name: sbc'
|
||||
]
|
@ -0,0 +1,141 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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:
|
||||
- return|ROUTE_FIND_CALLER:
|
||||
- start|ROUTE_LOAD_CALLER_PREF:
|
||||
- start|ROUTE_CLEAR_CALLER_PREF:
|
||||
- return|ROUTE_CLEAR_CALLER_PREF:
|
||||
- start|ROUTE_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_PREF:
|
||||
- start|ROUTE_GET_FORWARDER_CLI:
|
||||
- return|ROUTE_GET_FORWARDER_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_CLIR:
|
||||
- return|ROUTE_CLIR:
|
||||
- start|ROUTE_CLEAR_CALLEE_PREF:
|
||||
- return|ROUTE_CLEAR_CALLEE_PREF:
|
||||
- start|ROUTE_LNP:
|
||||
$avp(callee_cli): ['4311003']
|
||||
$xavp(caller_real_prefs[0]=>lnp_to_rn): None
|
||||
- start|ROUTE_LNP_SET_URI:
|
||||
$var(lnp_dst): 4318881003
|
||||
- start|ROUTE_LNP_SET_PARAMS:
|
||||
$xavp(caller_real_prefs[0]=>lnp_add_npdi): None
|
||||
- return|ROUTE_LNP_SET_PARAMS:
|
||||
$var(lnp_npdi): 0
|
||||
- return|ROUTE_LNP_SET_URI:
|
||||
- return|ROUTE_LNP:
|
||||
- start|ROUTE_FIND_CALLEE_POST:
|
||||
- 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_INVITE_TO_EXT:
|
||||
- start|ROUTE_PSTN:
|
||||
- start|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- return|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- start|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- return|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- start|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- return|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- start|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- return|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|ROUTE_SET_CALLER_DIALOG:
|
||||
- return|ROUTE_SET_CALLER_DIALOG:
|
||||
- start|ROUTE_ACC_CALLER:
|
||||
- return|ROUTE_ACC_CALLER:
|
||||
- start|ROUTE_ACC_CALLEE:
|
||||
- return|ROUTE_ACC_CALLEE:
|
||||
- start|BRANCH_ROUTE_SBC:
|
||||
- start|ROUTE_BRANCH_ACC_RTP:
|
||||
- return|ROUTE_BRANCH_ACC_RTP:
|
||||
- start|ROUTE_SET_RUSER:
|
||||
- return|ROUTE_SET_RUSER:
|
||||
- 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:
|
||||
- return|ROUTE_SET_CALLER_CLI:
|
||||
- start|ROUTE_SET_CALLEE:
|
||||
- return|ROUTE_SET_CALLEE:
|
||||
- start|ROUTE_ADD_CALLINFO:
|
||||
- return|ROUTE_ADD_CALLINFO:
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
# branch ?
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^INVITE sip:4311003@'
|
||||
- 'P-HIH-Cause: 302'
|
||||
- 'P-From-Peer: 1'
|
||||
- 'P-Caller-UUID: \w+'
|
||||
- 'P-First-Caller-UPN: 004321001'
|
||||
- 'P-First-Caller-NPN: 004321001'
|
||||
- 'P-Acc-Caller-User: testuser1001'
|
||||
- 'P-CF-Depth: 1'
|
||||
- 'P-Orig-Callee-Dialed: 4311001'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 10 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:4318881003@',
|
||||
'CSeq: 10 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'Contact: <sip:127.0.0.1:5080(;transport=udp)?>',
|
||||
'To: <sip:4311001@',
|
||||
'Content-Type: application/sdp',
|
||||
'P-CF-Depth: 1',
|
||||
'P-Callee-Account-ID: \d+',
|
||||
'P-Callee-UUID: 0',
|
||||
'P-Asserted-Identity: <sip:004321001@',
|
||||
'P-Called-Party-ID: <sip:4318881003@',
|
||||
'P-App-Param: ;aleg_sst_enable=no;sst_enable=no',
|
||||
'P-App-Name: sbc'
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 180 Ringing'
|
||||
- 'CSeq: 10 INVITE'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 180 Ringing',
|
||||
'CSeq: 10 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@',
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 10 INVITE'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 10 INVITE',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@',
|
||||
]
|
@ -0,0 +1,21 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- return|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^ACK sip:(4318881003@)?127.0.0.1:5080(;transport=udp)? SIP/2.0'
|
||||
- 'CSeq: 10 ACK'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^ACK sip:(4318881003@)?127.0.0.1:5080(;transport=udp)? SIP/2.0',
|
||||
'CSeq: 10 ACK',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,40 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- 'start|dialog:end':
|
||||
- 'return|dialog:end':
|
||||
- 'return|dialog:end':
|
||||
- start|ROUTE_STOP_RTPPROXY:
|
||||
- return|ROUTE_STOP_RTPPROXY:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'Contact: sip:004321001@'
|
||||
- 'CSeq: 2 BYE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 2 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'Contact: sip:004321001@',
|
||||
'CSeq: 2 BYE',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,58 @@
|
||||
flow:
|
||||
[% IF PRO %]
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|ROUTE_STOP_RTPPROXY:
|
||||
- start|ROUTE_RESTORE_CLUSTERSET:
|
||||
- return|ROUTE_RESTORE_CLUSTERSET:
|
||||
- return|ROUTE_STOP_RTPPROXY:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
[% ELSE %]
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
[% END %]
|
||||
sip_in:
|
||||
[% IF PRO %]
|
||||
- '^BYE sip:(4318881003@)?127.0.0.1:5080(;transport=udp)? SIP/2.0'
|
||||
- 'CSeq: 11 BYE'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
[% ELSE %]
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 11 BYE'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
[% END %]
|
||||
sip_out:
|
||||
[% IF PRO %]
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 11 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^BYE sip:(4318881003@)?127.0.0.1:5080(;transport=udp)? SIP/2.0',
|
||||
'CSeq: 11 BYE',
|
||||
'Max-Forwards: 70',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
[% ELSE %]
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 11 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
[% END %]
|
@ -0,0 +1,25 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
[% IF PRO -%]
|
||||
- 'CSeq: 11 BYE'
|
||||
[% ELSE -%]
|
||||
- 'CSeq: 2 BYE'
|
||||
[% END -%]
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:004321001@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
[% IF PRO -%]
|
||||
'CSeq: 11 BYE',
|
||||
[% ELSE -%]
|
||||
'CSeq: 2 BYE',
|
||||
[% END -%]
|
||||
'Content-Length: 0',
|
||||
'From: <sip:004321001@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
testuser1001@spce.test:
|
||||
cfu:
|
||||
destinations:
|
||||
- destination: sip:4311003@spce.test
|
||||
priority: 0
|
||||
timeout: 2
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
lnp_test_00:
|
||||
data:
|
||||
name: lnp_test_00
|
||||
prefix: test
|
||||
numbers:
|
||||
- number: '4311003'
|
||||
routing_number: '4318881003'
|
@ -0,0 +1,34 @@
|
||||
---
|
||||
peer_00:
|
||||
contact:
|
||||
company: peer_00
|
||||
email: peer_00@host0.not
|
||||
contract:
|
||||
billing_profile_id: 1
|
||||
status: active
|
||||
type: sippeering
|
||||
groups:
|
||||
- name: peer_00_group
|
||||
priority: 1
|
||||
description:
|
||||
rules:
|
||||
- group_id: peer_00_group
|
||||
callee_prefix: ""
|
||||
callee_pattern: ""
|
||||
caller_pattern: "^sip:.+@spce.test"
|
||||
description: ""
|
||||
hosts:
|
||||
- group_id: peer_00_group
|
||||
name: peer_00_host0
|
||||
ip: 127.0.2.1
|
||||
port: 50602
|
||||
host:
|
||||
transport: 1
|
||||
weight: 1
|
||||
- group_id: peer_00_group
|
||||
name: peer_00_host1
|
||||
ip: 127.1.0.1
|
||||
port: 50602
|
||||
host:
|
||||
transport: 1
|
||||
weight: 2
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"peer_00_host0": {
|
||||
"lnp_add_npdi": true,
|
||||
"lnp_to_rn": true,
|
||||
"concurrent_max": 1
|
||||
},
|
||||
"testuser1001@spce.test": {
|
||||
"lock": 5
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
test_uuid: incoming_peer
|
||||
domains:
|
||||
'spce.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:
|
||||
spce.test:
|
||||
testuser1001:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1001
|
||||
scenarios:
|
||||
- ip: 127.0.2.1
|
||||
username: 004321001
|
||||
domain: 127.0.2.1
|
||||
responders:
|
||||
- ip: 127.1.0.1
|
||||
number: 4311001
|
||||
username: 4311001
|
||||
domain: spce.test
|
||||
peer_host: peer_00_host1
|
||||
register: no
|
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAC Caller">
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
INVITE sip:[field1 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: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field1 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 1 INVITE
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Type: application/sdp
|
||||
Content-Length: [len]
|
||||
|
||||
v=0
|
||||
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
|
||||
s=-
|
||||
c=IN IP[media_ip_type] [media_ip]
|
||||
t=0 0
|
||||
m=audio [media_port] RTP/AVP 8
|
||||
a=rtpmap:8 PCMA/8000
|
||||
a=ptime:50
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="180" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="183" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200" rrs="true">
|
||||
</recv>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
ACK [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[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]
|
||||
[routes]
|
||||
CSeq: 1 ACK
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<pause milliseconds="500"/>
|
||||
<nop>
|
||||
<action>
|
||||
<exec play_pcap_audio="scenarios/media181sec.pcap"/>
|
||||
</action>
|
||||
</nop>
|
||||
|
||||
<pause milliseconds="1000"/>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
BYE [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[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: 2 BYE
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
[routes]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200">
|
||||
</recv>
|
||||
|
||||
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200, 500, 1000"/>
|
||||
</scenario>
|
||||
|
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAS Responder">
|
||||
|
||||
<recv request="INVITE" crlf="true" rtd="true">
|
||||
</recv>
|
||||
|
||||
<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"
|
||||
crlf="true">
|
||||
</recv>
|
||||
|
||||
<recv request="BYE">
|
||||
</recv>
|
||||
|
||||
<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>
|
||||
|
@ -0,0 +1,35 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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:
|
||||
- exit|ROUTE_AUTH:
|
||||
sip_in:
|
||||
- '^INVITE sip:4311001@'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'To: <sip:4311001@'
|
||||
- 'CSeq: 1 INVITE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^SIP/2.0 407 Proxy Authentication Required',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,149 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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:
|
||||
- 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_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_PREF:
|
||||
- start|ROUTE_GET_CALLER_CLI:
|
||||
- return|ROUTE_GET_CALLER_CLI:
|
||||
- start|ROUTE_GET_FORWARDER_CLI:
|
||||
- return|ROUTE_GET_FORWARDER_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_CLIR:
|
||||
- return|ROUTE_CLIR:
|
||||
- start|ROUTE_CLEAR_CALLEE_PREF:
|
||||
- return|ROUTE_CLEAR_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_LOAD_CALLEE_PREF:
|
||||
- start|ROUTE_LOAD_CALLEE_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLEE_CONTRACT_PREF:
|
||||
- start|ROUTE_SET_CALLEE_DIALOG:
|
||||
- return|ROUTE_SET_CALLEE_DIALOG:
|
||||
- start|ROUTE_BLOCK_IN:
|
||||
- return|ROUTE_BLOCK_IN:
|
||||
- return|ROUTE_LOAD_CALLEE_PREF:
|
||||
- start|ROUTE_CHECK_PBX:
|
||||
- return|ROUTE_CHECK_PBX:
|
||||
- start|ROUTE_INVITE_TO_INT:
|
||||
- start|ROUTE_LNP:
|
||||
$avp(callee_cli): ['4311001']
|
||||
$xavp(caller_real_prefs[0]=>lnp_to_rn): None
|
||||
- start|ROUTE_LNP_SET_URI:
|
||||
$var(lnp_dst): 4318881001
|
||||
- start|ROUTE_LNP_SET_PARAMS:
|
||||
$xavp(caller_real_prefs[0]=>lnp_add_npdi): None
|
||||
- return|ROUTE_LNP_SET_PARAMS:
|
||||
$var(lnp_npdi): 0
|
||||
- return|ROUTE_LNP_SET_URI:
|
||||
- return|ROUTE_LNP:
|
||||
- start|ROUTE_CHECK_PBX:
|
||||
- return|ROUTE_CHECK_PBX:
|
||||
- start|ROUTE_INVITE_TO_EXT:
|
||||
- start|ROUTE_PSTN:
|
||||
- start|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- return|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- start|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- return|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|ROUTE_SET_CALLER_DIALOG:
|
||||
- return|ROUTE_SET_CALLER_DIALOG:
|
||||
- start|ROUTE_ACC_CALLER:
|
||||
- return|ROUTE_ACC_CALLER:
|
||||
- start|ROUTE_ACC_CALLEE:
|
||||
- return|ROUTE_ACC_CALLEE:
|
||||
- start|BRANCH_ROUTE_SBC:
|
||||
- start|ROUTE_BRANCH_ACC_RTP:
|
||||
- return|ROUTE_BRANCH_ACC_RTP:
|
||||
- start|ROUTE_SET_RUSER:
|
||||
- return|ROUTE_SET_RUSER:
|
||||
- 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:
|
||||
- return|ROUTE_SET_CALLER_CLI:
|
||||
- start|ROUTE_SET_CALLEE:
|
||||
- return|ROUTE_SET_CALLEE:
|
||||
- start|ROUTE_ADD_CALLINFO:
|
||||
- return|ROUTE_ADD_CALLINFO:
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^INVITE sip:4311001@'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
- 'Proxy-Authorization: Digest username="testuser1002"'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^SIP/2.0 101 Connecting',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:4318881001@',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:4311001@',
|
||||
'Content-Type: application/sdp',
|
||||
'P-Caller-UUID: \w+',
|
||||
'P-Callee-UUID: \w+',
|
||||
'P-Asserted-Identity: <sip:4311002@',
|
||||
'P-Called-Party-ID: <sip:4318881001@',
|
||||
'P-App-Param: ;aleg_sst_enable=no;sst_enable=no',
|
||||
'P-App-Name: sbc'
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 180 Ringing'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 180 Ringing',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@',
|
||||
]
|
@ -0,0 +1,18 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- 'start|dialog:start':
|
||||
- 'return|dialog:start':
|
||||
# branch ??
|
||||
- 'return|dialog:start':
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@',
|
||||
]
|
@ -0,0 +1,28 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- return|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 2 ACK'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:testuser1002@'
|
||||
- 'To: <sip:4311001@'
|
||||
|
||||
sip_out:
|
||||
- [
|
||||
'^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'Contact: sip:testuser1002@',
|
||||
'CSeq: 2 ACK',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,42 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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_OUTBOUND:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 3 BYE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:testuser1002@'
|
||||
- 'To: <sip:4311001@'
|
||||
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 3 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
||||
- [
|
||||
'^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'Contact: sip:testuser1002@',
|
||||
'CSeq: 3 BYE',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,17 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 3 BYE'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:4311001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 3 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:4311001@'
|
||||
]
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
lnp_test_00:
|
||||
data:
|
||||
name: lnp_test_00
|
||||
prefix: test
|
||||
numbers:
|
||||
- number: '4311001'
|
||||
routing_number: '4318881001'
|
@ -0,0 +1,27 @@
|
||||
---
|
||||
peer_00:
|
||||
contact:
|
||||
company: peer_00
|
||||
email: peer_00@host0.not
|
||||
contract:
|
||||
billing_profile_id: 1
|
||||
status: active
|
||||
type: sippeering
|
||||
groups:
|
||||
- name: peer_00_group
|
||||
priority: 1
|
||||
description:
|
||||
rules:
|
||||
- group_id: peer_00_group
|
||||
callee_prefix: ""
|
||||
callee_pattern: ""
|
||||
caller_pattern: "^sip:.+@spce.test"
|
||||
description: ""
|
||||
hosts:
|
||||
- group_id: peer_00_group
|
||||
name: peer_00_host0
|
||||
ip: 127.0.2.1
|
||||
port: 50602
|
||||
host:
|
||||
transport: 1
|
||||
weight: 1
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"@spce.test": {
|
||||
"lnp_for_local_sub": true
|
||||
},
|
||||
"peer_00_host0": {
|
||||
"concurrent_max": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
test_uuid: invite
|
||||
domains:
|
||||
'spce.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:
|
||||
spce.test:
|
||||
testuser1001:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1001
|
||||
testuser1002:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1002
|
||||
alias_numbers:
|
||||
- cc: 34
|
||||
ac: 96
|
||||
sn: 5711941
|
||||
scenarios:
|
||||
- ip: 127.126.0.1
|
||||
username: testuser1002
|
||||
domain: spce.test
|
||||
responders:
|
||||
- ip: 127.0.2.1
|
||||
number: 4311001
|
||||
username: testuser1001
|
||||
domain: spce.test
|
||||
peer_host: peer_00_host0
|
||||
register: no
|
@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAC Caller">
|
||||
<send start_rtd="1" start_rtd="2">
|
||||
<![CDATA[
|
||||
|
||||
INVITE sip:[field1 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: <sip:[field0 file="caller.csv"]@[field2 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field1 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>
|
||||
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>
|
||||
|
||||
<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: <sip:[field0 file="caller.csv"]@[field2 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[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:[field1 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: <sip:[field0 file="caller.csv"]@[field2 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field1 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>
|
||||
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>
|
||||
|
||||
<recv response="180" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="183" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200" rrs="true" rtd="3">
|
||||
</recv>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
ACK [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <sip:[field0 file="caller.csv"]@[field2 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[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]
|
||||
[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="scenarios/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: <sip:[field0 file="caller.csv"]@[field2 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[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: 3 BYE
|
||||
Contact: sip:[field0 file="caller.csv"]@[local_ip]:[local_port]
|
||||
[routes]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200" crlf="true" rtd="4">
|
||||
</recv>
|
||||
|
||||
<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,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAS Responder">
|
||||
|
||||
<recv request="INVITE" crlf="true" rtd="true">
|
||||
</recv>
|
||||
|
||||
<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"
|
||||
crlf="true">
|
||||
</recv>
|
||||
|
||||
<recv request="BYE">
|
||||
</recv>
|
||||
|
||||
<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>
|
||||
|
@ -0,0 +1,35 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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:
|
||||
- exit|ROUTE_AUTH:
|
||||
sip_in:
|
||||
- '^INVITE sip:004321001@'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'To: <sip:004321001@'
|
||||
- 'CSeq: 1 INVITE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
||||
- [
|
||||
'^SIP/2.0 407 Proxy Authentication Required',
|
||||
'CSeq: 1 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
@ -0,0 +1,141 @@
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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:
|
||||
- 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_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_CONTRACT_PREF:
|
||||
- return|ROUTE_LOAD_CALLER_PREF:
|
||||
- start|ROUTE_GET_CALLER_CLI:
|
||||
- return|ROUTE_GET_CALLER_CLI:
|
||||
- start|ROUTE_GET_FORWARDER_CLI:
|
||||
- return|ROUTE_GET_FORWARDER_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_CLIR:
|
||||
- return|ROUTE_CLIR:
|
||||
- start|ROUTE_CLEAR_CALLEE_PREF:
|
||||
- return|ROUTE_CLEAR_CALLEE_PREF:
|
||||
$xavp(callee_real_prefs[0]=>lnp_for_local_sub): None
|
||||
- start|ROUTE_LNP:
|
||||
$avp(callee_cli): ['004321001']
|
||||
$xavp(caller_real_prefs[0]=>lnp_to_rn): None
|
||||
- start|ROUTE_LNP_SET_URI:
|
||||
$var(lnp_dst): 004328881001
|
||||
- start|ROUTE_LNP_SET_PARAMS:
|
||||
$xavp(caller_real_prefs[0]=>lnp_add_npdi): 1
|
||||
- return|ROUTE_LNP_SET_PARAMS:
|
||||
$var(lnp_npdi): 1
|
||||
- return|ROUTE_LNP_SET_URI:
|
||||
- return|ROUTE_LNP:
|
||||
- start|ROUTE_FIND_CALLEE_POST:
|
||||
- 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_INVITE_TO_EXT:
|
||||
- start|ROUTE_PSTN:
|
||||
- start|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- return|ROUTE_CLEAR_PEER_OUT_PREF:
|
||||
- start|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- return|ROUTE_LOAD_PEER_OUT_PREF:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- start|ROUTE_SET_CALLER_DIALOG:
|
||||
- return|ROUTE_SET_CALLER_DIALOG:
|
||||
- start|ROUTE_ACC_CALLER:
|
||||
- return|ROUTE_ACC_CALLER:
|
||||
- start|ROUTE_ACC_CALLEE:
|
||||
- return|ROUTE_ACC_CALLEE:
|
||||
- start|BRANCH_ROUTE_SBC:
|
||||
- start|ROUTE_BRANCH_ACC_RTP:
|
||||
- return|ROUTE_BRANCH_ACC_RTP:
|
||||
- start|ROUTE_SET_RUSER:
|
||||
- return|ROUTE_SET_RUSER:
|
||||
- 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:
|
||||
- return|ROUTE_SET_CALLER_CLI:
|
||||
- start|ROUTE_SET_CALLEE:
|
||||
- return|ROUTE_SET_CALLEE:
|
||||
- start|ROUTE_ADD_CALLINFO:
|
||||
- return|ROUTE_ADD_CALLINFO:
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
# branch ??
|
||||
- return|BRANCH_ROUTE_SBC:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^INVITE sip:004321001@'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Type: application/sdp'
|
||||
- 'Proxy-Authorization: Digest username="testuser1002"'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
||||
- [
|
||||
'^SIP/2.0 101 Connecting',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
||||
- [
|
||||
'^INVITE sip:004328881001;npdi@',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:004321001@',
|
||||
'Content-Type: application/sdp',
|
||||
'P-Caller-UUID: \w+',
|
||||
'P-Callee-UUID: \w+',
|
||||
'P-Asserted-Identity: <sip:4311002@',
|
||||
'P-Called-Party-ID: <sip:004328881001;npdi@',
|
||||
'P-App-Param: ;aleg_sst_enable=no;sst_enable=no',
|
||||
'P-App-Name: sbc'
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 180 Ringing'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:004321001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 180 Ringing',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@',
|
||||
]
|
@ -0,0 +1,18 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- 'start|dialog:start':
|
||||
- 'return|dialog:start':
|
||||
# branch ??
|
||||
- 'return|dialog:start':
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 2 INVITE'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:004321001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 2 INVITE',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@',
|
||||
]
|
@ -0,0 +1,29 @@
|
||||
# INVITE_OFFLINE scenario
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- start|ROUTE_PRX_REQUEST:
|
||||
- start|ROUTE_INITVARS:
|
||||
- return|ROUTE_INITVARS:
|
||||
- start|ROUTE_OUTBOUND:
|
||||
- return|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 2 ACK'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:testuser1002@'
|
||||
- 'To: <sip:004321001@'
|
||||
|
||||
sip_out:
|
||||
- [
|
||||
'^ACK sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'Contact: sip:testuser1002@',
|
||||
'CSeq: 2 ACK',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
@ -0,0 +1,43 @@
|
||||
# INVITE_OFFLINE scenario
|
||||
flow:
|
||||
- start|DEFAULT_ROUTE:
|
||||
- start|ROUTE_NET_INFO:
|
||||
- return|ROUTE_NET_INFO:
|
||||
- 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_OUTBOUND:
|
||||
- exit|ROUTE_OUTBOUND:
|
||||
sip_in:
|
||||
- '^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0'
|
||||
- 'Contact: sip:testuser1002@'
|
||||
- 'CSeq: 3 BYE'
|
||||
- 'Max-Forwards: 69'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:testuser1002@'
|
||||
- 'To: <sip:004321001@'
|
||||
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 100 Trying',
|
||||
'CSeq: 3 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
||||
- [
|
||||
'^BYE sip:127.0.0.1:5080(;prxroute=1)? SIP/2.0',
|
||||
'Contact: sip:testuser1002@',
|
||||
'CSeq: 3 BYE',
|
||||
'Max-Forwards: 68',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:4311002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
@ -0,0 +1,17 @@
|
||||
flow:
|
||||
- start|REPLY_ROUTE_NAT:
|
||||
- exit|REPLY_ROUTE_NAT:
|
||||
sip_in:
|
||||
- '^SIP/2.0 200 OK'
|
||||
- 'CSeq: 3 BYE'
|
||||
- 'Content-Length: 0'
|
||||
- 'From: <sip:4311002@'
|
||||
- 'To: <sip:004321001@'
|
||||
sip_out:
|
||||
- [
|
||||
'^SIP/2.0 200 OK',
|
||||
'CSeq: 3 BYE',
|
||||
'Content-Length: 0',
|
||||
'From: <sip:testuser1002@',
|
||||
'To: <sip:004321001@'
|
||||
]
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
lnp_test_00:
|
||||
data:
|
||||
name: lnp_test_00
|
||||
prefix: test
|
||||
numbers:
|
||||
- number: '004321001'
|
||||
routing_number: '004328881001'
|
@ -0,0 +1,27 @@
|
||||
---
|
||||
peer_00:
|
||||
contact:
|
||||
company: peer_00
|
||||
email: peer_00@host0.not
|
||||
contract:
|
||||
billing_profile_id: 1
|
||||
status: active
|
||||
type: sippeering
|
||||
groups:
|
||||
- name: peer_00_group
|
||||
priority: 1
|
||||
description:
|
||||
rules:
|
||||
- group_id: peer_00_group
|
||||
callee_prefix: ""
|
||||
callee_pattern: ""
|
||||
caller_pattern: "^sip:.+@spce.test"
|
||||
description: ""
|
||||
hosts:
|
||||
- group_id: peer_00_group
|
||||
name: peer_00_host0
|
||||
ip: 127.0.2.1
|
||||
port: 50602
|
||||
host:
|
||||
transport: 1
|
||||
weight: 1
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"testuser1002@spce.test": {
|
||||
"lnp_add_npdi": true
|
||||
},
|
||||
"peer_00_host0": {
|
||||
"concurrent_max": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
test_uuid: invite_peerout
|
||||
domains:
|
||||
'spce.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:
|
||||
spce.test:
|
||||
testuser1002:
|
||||
customer: 'customer.test'
|
||||
password: testuser
|
||||
cc: 43
|
||||
ac: 1
|
||||
sn: 1002
|
||||
scenarios:
|
||||
- ip: 127.126.0.1
|
||||
username: testuser1002
|
||||
domain: spce.test
|
||||
responders:
|
||||
- ip: 127.0.2.1
|
||||
number: 004321001
|
||||
username: 004321001
|
||||
domain: spce.test
|
||||
peer_host: peer_00_host0
|
||||
register: no
|
@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<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: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field0 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 1 INVITE
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Type: application/sdp
|
||||
Content-Length: [len]
|
||||
|
||||
v=0
|
||||
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
|
||||
s=-
|
||||
c=IN IP[media_ip_type] [media_ip]
|
||||
t=0 0
|
||||
m=audio [media_port] RTP/AVP 8
|
||||
a=rtpmap:8 PCMA/8000
|
||||
a=ptime:50
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" rtd="1" optional="true">
|
||||
</recv>
|
||||
|
||||
<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: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field0 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" line=0]@[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: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field0 file="callee.csv" line=0]@[field3 file="callee.csv" line=0]>
|
||||
Call-ID: NGCP%[field4 file="callee.csv" line=0]%///[call_id]
|
||||
CSeq: 2 INVITE
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
[field1 file="caller.csv" line=0]
|
||||
Content-Type: application/sdp
|
||||
Content-Length: [len]
|
||||
|
||||
v=0
|
||||
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
|
||||
s=-
|
||||
c=IN IP[media_ip_type] [media_ip]
|
||||
t=0 0
|
||||
m=audio [media_port] RTP/AVP 8
|
||||
a=rtpmap:8 PCMA/8000
|
||||
a=ptime:50
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="180" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="183" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200" rrs="true" rtd="3">
|
||||
</recv>
|
||||
|
||||
<send>
|
||||
<![CDATA[
|
||||
|
||||
ACK [next_url] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field0 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]
|
||||
[routes]
|
||||
CSeq: 2 ACK
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<pause milliseconds="500"/>
|
||||
<nop>
|
||||
<action>
|
||||
<exec play_pcap_audio="scenarios/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: <sip:[field0 file="caller.csv" line=0]@[field2 file="caller.csv" line=0]>;tag=[pid]SIPpTag00[call_number]
|
||||
To: <sip:[field0 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: 3 BYE
|
||||
Contact: sip:[field0 file="caller.csv" line=0]@[local_ip]:[local_port]
|
||||
[routes]
|
||||
Max-Forwards: 70
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="200" crlf="true" rtd="4">
|
||||
</recv>
|
||||
|
||||
<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,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<scenario name="Sipwise NGCP Benchmark UAS Responder">
|
||||
|
||||
<recv request="INVITE" crlf="true" rtd="true">
|
||||
</recv>
|
||||
|
||||
<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"
|
||||
crlf="true">
|
||||
</recv>
|
||||
|
||||
<recv request="BYE">
|
||||
</recv>
|
||||
|
||||
<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>
|
||||
|
@ -0,0 +1 @@
|
||||
../scenarios/media181sec.pcap
|
@ -0,0 +1 @@
|
||||
../scenarios/templates/
|
Loading…
Reference in new issue