[asterisk-commits] res pjsip: Add test for Endpoint IP Access Controls feature (testsuite[master])

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu May 19 09:53:56 CDT 2016


Anonymous Coward #1000019 has submitted this change and it was merged.

Change subject: res_pjsip: Add test for Endpoint IP Access Controls feature
......................................................................


res_pjsip: Add test for Endpoint IP Access Controls feature

This patch adds a test to verify proper behavior of ACL and Named ACL
usage by the res_pjsip.

ASTERISK-25900

Change-Id: Ie95e035a960c497b8497021205401b1df589eae9
---
A tests/channels/pjsip/acl_call/configs/ast1/acl.conf
A tests/channels/pjsip/acl_call/configs/ast1/extconfig.conf
A tests/channels/pjsip/acl_call/configs/ast1/extensions.conf
A tests/channels/pjsip/acl_call/configs/ast1/modules.conf.inc
A tests/channels/pjsip/acl_call/configs/ast1/pjsip.conf
A tests/channels/pjsip/acl_call/configs/ast1/res_config_sqlite3.conf
A tests/channels/pjsip/acl_call/realtime.sqlite3
A tests/channels/pjsip/acl_call/run-test
A tests/channels/pjsip/acl_call/sipp/testsip1-failure.xml
A tests/channels/pjsip/acl_call/sipp/testsip1-success.xml
A tests/channels/pjsip/acl_call/sipp/testsip2-failure.xml
A tests/channels/pjsip/acl_call/sipp/testsip2-success.xml
A tests/channels/pjsip/acl_call/sipp/testsip3-failure.xml
A tests/channels/pjsip/acl_call/sipp/testsip3-success.xml
A tests/channels/pjsip/acl_call/sipp/testsip4-failure.xml
A tests/channels/pjsip/acl_call/sipp/testsip5-failure.xml
A tests/channels/pjsip/acl_call/sipp/testsip5-success.xml
A tests/channels/pjsip/acl_call/test-config.yaml
M tests/channels/pjsip/tests.yaml
19 files changed, 1,093 insertions(+), 0 deletions(-)

Approvals:
  Anonymous Coward #1000019: Verified
  Joshua Colp: Looks good to me, approved



diff --git a/tests/channels/pjsip/acl_call/configs/ast1/acl.conf b/tests/channels/pjsip/acl_call/configs/ast1/acl.conf
new file mode 100644
index 0000000..ee04b56
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/acl.conf
@@ -0,0 +1,15 @@
+[testacl1] ; Allow 127.0.0.1 only
+deny = 0.0.0.0/0.0.0.0
+permit = 127.0.0.1
+
+[testacl2] ; Disallow 127.0.0.1 only
+permit = 0.0.0.0/0.0.0.0
+deny = 127.0.0.1
+
+[testacl3] ; Disallow 127.0.0.3 only
+permit = 0.0.0.0/0.0.0.0
+deny = 127.0.0.3
+
+[testacl4] ; Disallow 127.0.0.4 only
+permit = 0.0.0.0/0.0.0.0
+deny = 127.0.0.4
diff --git a/tests/channels/pjsip/acl_call/configs/ast1/extconfig.conf b/tests/channels/pjsip/acl_call/configs/ast1/extconfig.conf
new file mode 100644
index 0000000..25f8b11
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/extconfig.conf
@@ -0,0 +1,2 @@
+[settings]
+acls => sqlite3,asterisk,acltable
diff --git a/tests/channels/pjsip/acl_call/configs/ast1/extensions.conf b/tests/channels/pjsip/acl_call/configs/ast1/extensions.conf
new file mode 100644
index 0000000..61c769c
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/extensions.conf
@@ -0,0 +1,4 @@
+[test_context]
+exten => s,1,Answer()
+exten => s,n,Playtones(400,100) ; Play a tone for one tenth of a second, just to have the call last some amount of time.
+exten => s,n,Hangup()
diff --git a/tests/channels/pjsip/acl_call/configs/ast1/modules.conf.inc b/tests/channels/pjsip/acl_call/configs/ast1/modules.conf.inc
new file mode 100644
index 0000000..161ad33
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/modules.conf.inc
@@ -0,0 +1 @@
+preload => res_config_sqlite3.so
diff --git a/tests/channels/pjsip/acl_call/configs/ast1/pjsip.conf b/tests/channels/pjsip/acl_call/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..a6e24bc
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/pjsip.conf
@@ -0,0 +1,32 @@
+[local]
+type=transport
+protocol=udp
+bind=0.0.0.0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+[endpoint_t](!)
+type=endpoint
+transport=local
+context=test_context
+direct_media=no
+disallow=all
+allow=ulaw
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+[testsip1](endpoint_t) ; Allow calls only from the locally defined ACL (denies all except 127.0.0.1)
+deny=0.0.0.0/0.0.0.0
+permit=127.0.0.1
+
+[testsip2](endpoint_t) ; Same as testsip1, only defined via named ACL subsystem
+acl=testacl1
+
+[testsip3](endpoint_t) ; Multiple ACLs defined via named ACL subsystem. Collectively only 127.0.0.2 is acceptable
+acl=testacl2,testacl3,testacl4
+
+[testsip4](endpoint_t) ; An invalid ACL (not contained in the configuration or in realtime). No allowable addresses
+acl=undefinedacl
+
+[testsip5](endpoint_t) ; 3 ACLs stored on the realtime backend. Collectively only 127.0.0.3 is acceptable
+acl=rtacl1,rtacl2,rtacl3
diff --git a/tests/channels/pjsip/acl_call/configs/ast1/res_config_sqlite3.conf b/tests/channels/pjsip/acl_call/configs/ast1/res_config_sqlite3.conf
new file mode 100644
index 0000000..76bf398
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/configs/ast1/res_config_sqlite3.conf
@@ -0,0 +1,2 @@
+[asterisk]
+dbfile => /tmp/realtime.sqlite3
diff --git a/tests/channels/pjsip/acl_call/realtime.sqlite3 b/tests/channels/pjsip/acl_call/realtime.sqlite3
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/realtime.sqlite3
diff --git a/tests/channels/pjsip/acl_call/run-test b/tests/channels/pjsip/acl_call/run-test
new file mode 100644
index 0000000..afbabb0
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/run-test
@@ -0,0 +1,146 @@
+#!/usr/bin/env python
+
+import sys
+import logging
+import logging.config
+import os
+import shutil
+from twisted.internet import reactor
+
+sys.path.append("lib/python")
+
+from asterisk.sipp import SIPpTest
+
+SIPP_SCENARIOS = [
+    # test1 - No named ACL, calling available only to 127.0.0.1
+    {
+        'scenario' : 'testsip1-success.xml',
+        '-i' : '127.0.0.1',
+        '-p' : '5061'
+    },
+    {
+        'scenario' : 'testsip1-failure.xml',
+        '-i' : '127.0.0.2',
+        '-p' : '5062'
+    },
+    {
+        'scenario' : 'testsip1-failure.xml',
+        '-i' : '127.0.0.3',
+        '-p' : '5063'
+    },
+    {
+        'scenario' : 'testsip1-failure.xml',
+        '-i' : '127.0.0.4',
+        '-p' : '5064'
+    },
+
+    # test2 - Same permissible addresses as test1, but while using a named ACL from the local configuration
+    {
+        'scenario' : 'testsip2-success.xml',
+        '-i' : '127.0.0.1',
+        '-p' : '5065'
+    },
+    {
+        'scenario' : 'testsip2-failure.xml',
+        '-i' : '127.0.0.2',
+        '-p' : '5066'
+    },
+    {
+        'scenario' : 'testsip2-failure.xml',
+        '-i' : '127.0.0.3',
+        '-p' : '5067'
+    },
+    {
+        'scenario' : 'testsip2-failure.xml',
+        '-i' : '127.0.0.4',
+        '-p' : '5068'
+    },
+
+    # test3 - Multiple named ACL rules from local configuration. Only 127.0.0.2 should be allowed to call
+    {
+        'scenario' : 'testsip3-failure.xml',
+        '-i' : '127.0.0.1',
+        '-p' : '5069'
+    },
+    {
+        'scenario' : 'testsip3-success.xml',
+        '-i' : '127.0.0.2',
+        '-p' : '5070'
+    },
+    {
+        'scenario' : 'testsip3-failure.xml',
+        '-i' : '127.0.0.3',
+        '-p' : '5071'
+    },
+    {
+        'scenario' : 'testsip3-failure.xml',
+        '-i' : '127.0.0.4',
+        '-p' : '5072'
+    },
+
+    # test4 - An undefined rule is used. All addresses should be rejected from calling
+    {
+        'scenario' : 'testsip4-failure.xml',
+        '-i' : '127.0.0.1',
+        '-p' : '5073'
+    },
+    {
+        'scenario' : 'testsip4-failure.xml',
+        '-i' : '127.0.0.2',
+        '-p' : '5074'
+    },
+    {
+        'scenario' : 'testsip4-failure.xml',
+        '-i' : '127.0.0.3',
+        '-p' : '5075'
+    },
+    {
+        'scenario' : 'testsip4-failure.xml',
+        '-i' : '127.0.0.4',
+        '-p' : '5076'
+    },
+
+    # test5 - A set of 3 named ACLs stored in realtime is used. Collectively only 127.0.0.3 should be allowed to call
+    {
+        'scenario' : 'testsip5-failure.xml',
+        '-i' : '127.0.0.1',
+        '-p' : '5077'
+    },
+    {
+        'scenario' : 'testsip5-failure.xml',
+        '-i' : '127.0.0.2',
+        '-p' : '5078'
+    },
+    {
+        'scenario' : 'testsip5-success.xml',
+        '-i' : '127.0.0.3',
+        '-p' : '5079'
+    },
+    {
+        'scenario' : 'testsip5-failure.xml',
+        '-i' : '127.0.0.4',
+        '-p' : '5080'
+    },
+]
+
+def main():
+    WORKING_DIR = "channels/pjsip/acl_call"
+    TEST_DIR = os.path.dirname(os.path.realpath(__file__))
+    DB_PATH = TEST_DIR + "/realtime.sqlite3"
+    TMP_DB_PATH = "/tmp/realtime.sqlite3"
+    shutil.copyfile(DB_PATH, TMP_DB_PATH)
+    test = SIPpTest(WORKING_DIR, TEST_DIR, SIPP_SCENARIOS)
+    reactor.run()
+    os.remove(TMP_DB_PATH)
+
+    if test.passed:
+        return 0
+
+    return 1
+
+if __name__ == "__main__":
+    sys.exit(main() or 0)
+
+
+# vim:sw=4:ts=4:expandtab:textwidth=79
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip1-failure.xml b/tests/channels/pjsip/acl_call/sipp/testsip1-failure.xml
new file mode 100644
index 0000000..4bb8104
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip1-failure.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip1.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip1 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip1 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip1. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip1 <sip:testsip1@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip1@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="403">
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip1 <sip:testsip1@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip1@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip1-success.xml b/tests/channels/pjsip/acl_call/sipp/testsip1-success.xml
new file mode 100644
index 0000000..f02628a
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip1-success.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip1.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip1 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip1 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip1. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip1 <sip:testsip1@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip1@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="180" optional="true">
+  </recv>
+
+  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
+  <!-- are saved and used for following messages sent. Useful to test   -->
+  <!-- against stateful SIP proxies/B2BUAs.                             -->
+  <recv response="200" rtd="true">
+  </recv>
+
+  <!-- Packet lost can be simulated in any send/recv message by         -->
+  <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip1 <sip:testsip1@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip1@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- This delay can be customized by the -d command-line option       -->
+  <!-- or by adding a 'milliseconds = "value"' option here.             -->
+  <pause/>
+
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip1 <sip:testsip1@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:testsip1@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip2-failure.xml b/tests/channels/pjsip/acl_call/sipp/testsip2-failure.xml
new file mode 100644
index 0000000..f10dfd2
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip2-failure.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip2.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip2 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip2 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip2. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip2 <sip:testsip2@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip2@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="403">
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip2 <sip:testsip2@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip2@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip2-success.xml b/tests/channels/pjsip/acl_call/sipp/testsip2-success.xml
new file mode 100644
index 0000000..4dd8820
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip2-success.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip2.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip2 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip2 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip2. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip2 <sip:testsip2@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip2@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="180" optional="true">
+  </recv>
+
+  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
+  <!-- are saved and used for following messages sent. Useful to test   -->
+  <!-- against stateful SIP proxies/B2BUAs.                             -->
+  <recv response="200" rtd="true">
+  </recv>
+
+  <!-- Packet lost can be simulated in any send/recv message by         -->
+  <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip2 <sip:testsip2@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip2@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- This delay can be customized by the -d command-line option       -->
+  <!-- or by adding a 'milliseconds = "value"' option here.             -->
+  <pause/>
+
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip2 <sip:testsip2@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:testsip2@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip3-failure.xml b/tests/channels/pjsip/acl_call/sipp/testsip3-failure.xml
new file mode 100644
index 0000000..f3541dc
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip3-failure.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip3.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip3 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip3 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip3. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip3 <sip:testsip3@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip3@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="403">
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip3 <sip:testsip3@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip3@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip3-success.xml b/tests/channels/pjsip/acl_call/sipp/testsip3-success.xml
new file mode 100644
index 0000000..bca8345
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip3-success.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip3.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip3 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip3 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip3. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip3 <sip:testsip3@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip3@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="180" optional="true">
+  </recv>
+
+  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
+  <!-- are saved and used for following messages sent. Useful to test   -->
+  <!-- against stateful SIP proxies/B2BUAs.                             -->
+  <recv response="200" rtd="true">
+  </recv>
+
+  <!-- Packet lost can be simulated in any send/recv message by         -->
+  <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip3 <sip:testsip3@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip3@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- This delay can be customized by the -d command-line option       -->
+  <!-- or by adding a 'milliseconds = "value"' option here.             -->
+  <pause/>
+
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip3 <sip:testsip3@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:testsip3@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip4-failure.xml b/tests/channels/pjsip/acl_call/sipp/testsip4-failure.xml
new file mode 100644
index 0000000..3efa4f7
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip4-failure.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip4.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip4 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip4 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip4. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip4 <sip:testsip4@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip4@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="403">
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip4 <sip:testsip4@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip4@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip5-failure.xml b/tests/channels/pjsip/acl_call/sipp/testsip5-failure.xml
new file mode 100644
index 0000000..8340fc0
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip5-failure.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip5.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip5 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip5 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip5. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip5 <sip:testsip5@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip5@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="403">
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip5 <sip:testsip5@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip5@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/sipp/testsip5-success.xml b/tests/channels/pjsip/acl_call/sipp/testsip5-success.xml
new file mode 100644
index 0000000..915bd31
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/sipp/testsip5-success.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "testsip5.dtd">
+
+<!-- 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 2 of the -->
+<!-- License, or (at your option) any later version.                    -->
+<!--                                                                    -->
+<!-- This program 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, write to the                      -->
+<!-- Free Software Foundation, Inc.,                                    -->
+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
+<!--                                                                    -->
+<!--                 Testsip5 default 'uac' scenario.                       -->
+<!--                                                                    -->
+
+<scenario name="Basic Sipstone UAC">
+  <!-- In client mode (testsip5 placing calls), the Call-ID MUST be         -->
+  <!-- generated by testsip5. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip5 <sip:testsip5@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:testsip5@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      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 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv response="100"
+        optional="true">
+  </recv>
+
+  <recv response="180" optional="true">
+  </recv>
+
+  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
+  <!-- are saved and used for following messages sent. Useful to test   -->
+  <!-- against stateful SIP proxies/B2BUAs.                             -->
+  <recv response="200" rtd="true">
+  </recv>
+
+  <!-- Packet lost can be simulated in any send/recv message by         -->
+  <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
+  <send>
+    <![CDATA[
+
+      ACK sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip5 <sip:testsip5@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:testsip5@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <!-- This delay can be customized by the -d command-line option       -->
+  <!-- or by adding a 'milliseconds = "value"' option here.             -->
+  <pause/>
+
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:s@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: testsip5 <sip:testsip5@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:s@[remote_ip]:[remote_port]>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:testsip5@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+  <!-- definition of the response time repartition table (unit is ms)   -->
+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+  <!-- definition of the call length repartition table (unit is ms)     -->
+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
diff --git a/tests/channels/pjsip/acl_call/test-config.yaml b/tests/channels/pjsip/acl_call/test-config.yaml
new file mode 100644
index 0000000..265a3a8
--- /dev/null
+++ b/tests/channels/pjsip/acl_call/test-config.yaml
@@ -0,0 +1,18 @@
+testinfo:
+    summary: 'Test res_pjsip usage of endpoint ACLs'
+    description: |
+        This tests SIP calls originating from different addresses against
+        PJSIP endpoints with varying means of specifying Access Control Lists.
+        This test is used to verify proper behavior of ACL and Named ACL
+        usage by the res_pjsip.
+
+properties:
+    minversion: '13.10.0'
+    dependencies:
+        - python : 'twisted'
+        - python : 'starpy'
+        - app : 'sipp'
+        - asterisk : 'res_pjsip'
+    tags:
+        - pjsip
+        - ACL
diff --git a/tests/channels/pjsip/tests.yaml b/tests/channels/pjsip/tests.yaml
index b44fafb..050c204 100644
--- a/tests/channels/pjsip/tests.yaml
+++ b/tests/channels/pjsip/tests.yaml
@@ -22,6 +22,7 @@
     - dir: 'transfers'
     - dir: 'video_calls'
     - test: 'accountcode'
+    - test: 'acl_call'
     - test: 'auth_security_events'
     - test: 'call_pickup'
     - test: 'dtmf_incompatible'

-- 
To view, visit https://gerrit.asterisk.org/2818
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie95e035a960c497b8497021205401b1df589eae9
Gerrit-PatchSet: 1
Gerrit-Project: testsuite
Gerrit-Branch: master
Gerrit-Owner: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Matt Jordan <mjordan at digium.com>



More information about the asterisk-commits mailing list