MT#17333 add lnp scenarios group

* add suport for lnp.yml
* update README

Change-Id: I6460a9a52f8d4645fb9411d0570fd3383b8e6918
changes/59/5659/8
Victor Seva 9 years ago
parent 22080eb8e8
commit 1d9026e0f9

@ -12,6 +12,10 @@ Usage:
------
# cd /usr/share/kamailio-config-tests
We support groups of scenarios. Each group can have different configs, see
$BASE_DIR/$GROUP/config.yml. The default GROUP is 'scenarios'. Set GROUP to
scenarios_XXX in order to run/test that group.
If you are using the git version and not in /usr/share/kamailio-config-tests
you need to set BASE_DIR environment variable accordingly:
# export BASE_DIR=`pwd`

@ -130,6 +130,11 @@ function create_voip_prefs
ngcp-sercmd proxy lcr.reload
fi
if [ -f "${SCEN_CHECK_DIR}/lnp.yml" ]; then
echo "$(date) - Creating lnp carrier/number"
"${BIN_DIR}/create_lnp.pl" "${SCEN_CHECK_DIR}/lnp.yml"
fi
if [ -f "${SCEN_CHECK_DIR}/prefs.json" ]; then
echo "$(date) - Setting preferences"
"${BIN_DIR}/set_preferences.pl" "${SCEN_CHECK_DIR}/prefs.json"
@ -146,6 +151,11 @@ function delete_voip
"${BIN_DIR}/create_peers.pl" -delete "${SCEN_CHECK_DIR}/peer.yml"
fi
if [ -f "${SCEN_CHECK_DIR}/lnp.yml" ]; then
echo "$(date) - Deleting lnp carrier/number"
"${BIN_DIR}/create_lnp.pl" -delete "${SCEN_CHECK_DIR}/lnp.yml"
fi
if [ -f "${SCEN_CHECK_DIR}/ncos.yml" ]; then
echo "$(date) - Deleting ncos levels"
"${BIN_DIR}/create_ncos.pl" -delete "${SCEN_CHECK_DIR}/ncos.yml"

@ -105,6 +105,7 @@ else
my $group_yml_file = $base_dir."/".$group."/config.yml";
if ( -e $group_yml_file )
{
print "load $group_yml_file config file\n";
my $group_yml = LoadFile($group_yml_file) or
die "File $group_yml_file could not be read";
my $hm = Hash::Merge->new('RIGHT_PRECEDENT');

@ -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);
}

1
debian/install vendored

@ -4,3 +4,4 @@ get_results.sh /usr/share/kamailio-config-tests/
lib/ /usr/share/kamailio-config-tests/
run_tests.sh /usr/share/kamailio-config-tests/
scenarios/ /usr/share/kamailio-config-tests/
scenarios_lnp /usr/share/kamailio-config-tests/

@ -617,3 +617,52 @@ sub delete_ncospattern {
return $self->_delete($urldata);
}
sub check_lnpcarrier_exists {
my $self = shift;
my $data = shift;
my $urldata = "/api/lnpcarriers/";
my $collection_id = 'ngcp:lnpcarriers';
return $self->_exists($data, $urldata, $collection_id);
}
sub create_lnpcarrier {
my $self = shift;
my $data = shift;
my $urldata = '/api/lnpcarriers/';
return $self->_create($data, $urldata);
}
sub delete_lnpcarrier {
my $self = shift;
my $id = shift;
my $urldata = "/api/lnpcarriers/${id}";
return $self->_delete($urldata);
}
sub check_lnpnumber_exists {
my $self = shift;
my $data = shift;
my $urldata = "/api/lnpnumbers/";
my $collection_id = 'ngcp:lnpnumbers';
return $self->_exists($data, $urldata, $collection_id);
}
sub create_lnpnumber {
my $self = shift;
my $data = shift;
my $urldata = '/api/lnpnumbers/';
return $self->_create($data, $urldata);
}
sub delete_lnpnumber {
my $self = shift;
my $id = shift;
my $urldata = "/api/lnpnumbers/${id}";
return $self->_delete($urldata);
}

@ -48,7 +48,7 @@ function cfg_debug_off
{
if [ -z "$SKIP" ]; then
echo "$(date) - Setting config debug off"
"${BIN_DIR}/config_debug.pl" off ${DOMAIN}
"${BIN_DIR}/config_debug.pl" -g "${GROUP}" off ${DOMAIN}
if ! ngcpcfg apply "config debug off via kamailio-config-tests" ; then
echo "$(date) - ngcpcfg apply returned $?"
error_flag=4
@ -86,7 +86,7 @@ mkdir -p "${MLOG_DIR}" "${LOG_DIR}"
if [ -z $SKIP ]; then
echo "$(date) - Setting config debug on"
"${BIN_DIR}/config_debug.pl" on ${DOMAIN}
"${BIN_DIR}/config_debug.pl" -g "${GROUP}" on ${DOMAIN}
if [ "${PROFILE}" == "PRO" ]; then
( timeout 60 "${BIN_DIR}/pid_watcher.py" )&
fi

@ -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…
Cancel
Save