[Asterisk-code-review] testsuite: add tests to ensure ice in ANSWER only if offered (testsuite[15])

Jenkins2 asteriskteam at digium.com
Tue Jul 24 10:47:58 CDT 2018


Jenkins2 has submitted this change and it was merged. ( https://gerrit.asterisk.org/9563 )

Change subject: testsuite: add tests to ensure ice in ANSWER only if offered
......................................................................

testsuite: add tests to ensure ice in ANSWER only if offered

Test that ICE is in the answer when endpoint is has ice enabled and
candidates are present in the offer, also test that if ice is
enabled and not offered, it is not present in the answer

ASTERISK-27957 #close

Change-Id: Ic4744c062e17862bf60eaa76f46af2ba2743e650
---
A tests/channels/pjsip/ice/ice_not_offered/configs/ast1/extensions.conf
A tests/channels/pjsip/ice/ice_not_offered/configs/ast1/pjsip.conf
A tests/channels/pjsip/ice/ice_not_offered/sipp/A_PARTY.xml
A tests/channels/pjsip/ice/ice_not_offered/test-config.yaml
A tests/channels/pjsip/ice/ice_offered/configs/ast1/extensions.conf
A tests/channels/pjsip/ice/ice_offered/configs/ast1/pjsip.conf
A tests/channels/pjsip/ice/ice_offered/sipp/A_PARTY.xml
A tests/channels/pjsip/ice/ice_offered/test-config.yaml
A tests/channels/pjsip/ice/tests.yaml
M tests/channels/pjsip/tests.yaml
10 files changed, 425 insertions(+), 0 deletions(-)

Approvals:
  Benjamin Keith Ford: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Jenkins2: Approved for Submit



diff --git a/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/extensions.conf b/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/extensions.conf
new file mode 100644
index 0000000..704532f
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/extensions.conf
@@ -0,0 +1,13 @@
+[general]
+static=yes
+writeprotect=yes
+autofallthrough=yes
+clearglobalvars=no
+priorityjumping=yes
+
+[globals]
+
+[default]
+exten => _X.,1,Answer()
+exten => _X.,2,Echo()
+exten => h,1,Hangup()
diff --git a/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/pjsip.conf b/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..3dce37a
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_not_offered/configs/ast1/pjsip.conf
@@ -0,0 +1,57 @@
+;--
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Non mapped elements start
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+[general]
+sipdebug = yes
+
+[PEER_A]
+port = 5061
+
+[sbc]
+port = 5700
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Non mapped elements end
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+--;
+
+
+[global]
+type = global
+debug = yes
+
+[transport-udp]
+type = transport
+protocol = udp
+bind = 0.0.0.0:5060
+
+[PEER_A]
+type = aor
+contact = sip:127.0.0.1:5061
+
+[PEER_A]
+type = identify
+endpoint = PEER_A
+match = 127.0.0.1
+
+[PEER_A]
+type = endpoint
+context = default
+allow = ulaw
+direct_media = no
+ice_support = yes
+aors = PEER_A
+
+[sbc]
+type = aor
+contact = sip:127.0.0.1:5700
+
+[sbc]
+type = endpoint
+context = callcontrol
+allow = ulaw
+direct_media = no
+aors = sbc
+
diff --git a/tests/channels/pjsip/ice/ice_not_offered/sipp/A_PARTY.xml b/tests/channels/pjsip/ice/ice_not_offered/sipp/A_PARTY.xml
new file mode 100644
index 0000000..660e342
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_not_offered/sipp/A_PARTY.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE scenario SYSTEM "sipp.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             -->
+<!--                                                                    -->
+<!--                 Sipp 'uac' scenario with pcap (rtp) play           -->
+<!--                                                                    -->
+<scenario name="CONTENT_TYPE_PARAMS">
+  <!-- In client mode (sipp placing calls), the Call-ID MUST be         -->
+  <!-- generated by sipp. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test at voxbone.com>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:sipp@[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[local_ip_type] [local_ip]
+      t=0 0
+      m=audio 9000 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" crlf="true">
+  <action>
+        <ereg regexp="a=ice-ufrag" search_in="body" check_it_inverse="true" assign_to="dummy" />
+  </action>
+  </recv>
+  <Reference variables="dummy" />
+
+
+  <!-- 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:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:sipp@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <pause milliseconds="1000"/>
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:sipp@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+</scenario>
+
+
diff --git a/tests/channels/pjsip/ice/ice_not_offered/test-config.yaml b/tests/channels/pjsip/ice/ice_not_offered/test-config.yaml
new file mode 100644
index 0000000..c9f66cc
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_not_offered/test-config.yaml
@@ -0,0 +1,27 @@
+testinfo:
+    summary: 'Test that if Asterisk does not put ice in the response if it is not requested'
+    description: |
+         'Endpôint A has ice enabled and sends an invite w/o ICE candidates in the SDP.  The
+           ANSWER from asterisk should not contain any ICE candidates'
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: 'sipp.SIPpTestCase'
+
+test-object-config:
+    memcheck-delay-stop: 7
+    fail-on-any: False
+    test-iterations:
+        -
+            scenarios:
+                - { 'key-args': {'scenario': 'A_PARTY.xml', '-i': '127.0.0.1', '-p': '5061', '-s': '3200000000'} }
+
+
+properties:
+    dependencies:
+        - sipp :
+             version : 'v3.0'
+        - asterisk : 'res_pjsip'
+    tags:
+        - pjsip
diff --git a/tests/channels/pjsip/ice/ice_offered/configs/ast1/extensions.conf b/tests/channels/pjsip/ice/ice_offered/configs/ast1/extensions.conf
new file mode 100644
index 0000000..704532f
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_offered/configs/ast1/extensions.conf
@@ -0,0 +1,13 @@
+[general]
+static=yes
+writeprotect=yes
+autofallthrough=yes
+clearglobalvars=no
+priorityjumping=yes
+
+[globals]
+
+[default]
+exten => _X.,1,Answer()
+exten => _X.,2,Echo()
+exten => h,1,Hangup()
diff --git a/tests/channels/pjsip/ice/ice_offered/configs/ast1/pjsip.conf b/tests/channels/pjsip/ice/ice_offered/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..3dce37a
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_offered/configs/ast1/pjsip.conf
@@ -0,0 +1,57 @@
+;--
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Non mapped elements start
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+[general]
+sipdebug = yes
+
+[PEER_A]
+port = 5061
+
+[sbc]
+port = 5700
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Non mapped elements end
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+--;
+
+
+[global]
+type = global
+debug = yes
+
+[transport-udp]
+type = transport
+protocol = udp
+bind = 0.0.0.0:5060
+
+[PEER_A]
+type = aor
+contact = sip:127.0.0.1:5061
+
+[PEER_A]
+type = identify
+endpoint = PEER_A
+match = 127.0.0.1
+
+[PEER_A]
+type = endpoint
+context = default
+allow = ulaw
+direct_media = no
+ice_support = yes
+aors = PEER_A
+
+[sbc]
+type = aor
+contact = sip:127.0.0.1:5700
+
+[sbc]
+type = endpoint
+context = callcontrol
+allow = ulaw
+direct_media = no
+aors = sbc
+
diff --git a/tests/channels/pjsip/ice/ice_offered/sipp/A_PARTY.xml b/tests/channels/pjsip/ice/ice_offered/sipp/A_PARTY.xml
new file mode 100644
index 0000000..976b592
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_offered/sipp/A_PARTY.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE scenario SYSTEM "sipp.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             -->
+<!--                                                                    -->
+<!--                 Sipp 'uac' scenario with pcap (rtp) play           -->
+<!--                                                                    -->
+<scenario name="CONTENT_TYPE_PARAMS">
+  <!-- In client mode (sipp placing calls), the Call-ID MUST be         -->
+  <!-- generated by sipp. To do so, use [call_id] keyword.                -->
+  <send retrans="500">
+    <![CDATA[
+
+      INVITE sip:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test at voxbone.com>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com:[remote_port]>
+      Call-ID: [call_id]
+      CSeq: 1 INVITE
+      Contact: sip:sipp@[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[local_ip_type] [local_ip]
+      t=0 0
+      m=audio 9000 RTP/AVP 0
+      a=ice-ufrag:2c8cc7c729d0eaf44b6870147d7610de
+      a=ice-pwd:5ae44e9b6894542d4d851a065892f095
+      a=candidate:H59b7e24f 1 UDP 2130706431 fe80::2ad2:44ff:fe7d:ca0d 18860 typ host
+      a=candidate:H1ceb7798 1 UDP 2130706431 fe80::7e7a:91ff:fed3:849d 18860 typ host
+      a=candidate:Ha010527 1 UDP 2130706431 10.1.5.39 18860 typ host
+      a=candidate:Ha01417f 1 UDP 2130706431 10.1.65.127 18860 typ host
+      a=candidate:Hac112a01 1 UDP 2130706431 172.17.42.1 18860 typ host
+      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" crlf="true">
+  <action>
+        <ereg regexp="a=ice-ufrag" search_in="body" check_it="true" assign_to="dummy" />
+  </action>
+  </recv>
+  <Reference variables="dummy" />
+
+
+  <!-- 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:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 1 ACK
+      Contact: sip:sipp@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <pause milliseconds="1000"/>
+  <!-- The 'crlf' option inserts a blank line in the statistics report. -->
+  <send retrans="500">
+    <![CDATA[
+
+      BYE sip:[service]@voxbone.com SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: sipp <sip:test@[local_ip]:[local_port]>;tag=[call_number]
+      To: sut <sip:[service]@voxbone.com>[peer_tag_param]
+      Call-ID: [call_id]
+      CSeq: 2 BYE
+      Contact: sip:sipp@[local_ip]:[local_port]
+      Max-Forwards: 70
+      Subject: Performance Test
+      Content-Length: 0
+
+    ]]>
+  </send>
+
+  <recv response="200" crlf="true">
+  </recv>
+
+</scenario>
+
+
diff --git a/tests/channels/pjsip/ice/ice_offered/test-config.yaml b/tests/channels/pjsip/ice/ice_offered/test-config.yaml
new file mode 100644
index 0000000..3833442
--- /dev/null
+++ b/tests/channels/pjsip/ice/ice_offered/test-config.yaml
@@ -0,0 +1,27 @@
+testinfo:
+    summary: 'Test that if Asterisk does put ice in the response if it is requested'
+    description: |
+         'Endpôint A has ice enabled and sends an invite with ICE candidates in the SDP.  The
+          ANSWER from asterisk should contain ICE candidates'
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: 'sipp.SIPpTestCase'
+
+test-object-config:
+    memcheck-delay-stop: 7
+    fail-on-any: False
+    test-iterations:
+        -
+            scenarios:
+                - { 'key-args': {'scenario': 'A_PARTY.xml', '-i': '127.0.0.1', '-p': '5061', '-s': '3200000000'} }
+
+
+properties:
+    dependencies:
+        - sipp :
+             version : 'v3.0'
+        - asterisk : 'res_pjsip'
+    tags:
+        - pjsip
diff --git a/tests/channels/pjsip/ice/tests.yaml b/tests/channels/pjsip/ice/tests.yaml
new file mode 100644
index 0000000..9ba4765
--- /dev/null
+++ b/tests/channels/pjsip/ice/tests.yaml
@@ -0,0 +1,3 @@
+tests:
+    - test: 'ice_not_offered'
+    - test: 'ice_offered'
diff --git a/tests/channels/pjsip/tests.yaml b/tests/channels/pjsip/tests.yaml
index 681bda2..34ecab7 100644
--- a/tests/channels/pjsip/tests.yaml
+++ b/tests/channels/pjsip/tests.yaml
@@ -24,6 +24,7 @@
     - dir: 'transfers'
     - dir: 'transport'
     - dir: 'video_calls'
+    - dir: 'ice'
     - test: 'accountcode'
     - test: 'acl_call'
     - test: 'allow_overlap'

-- 
To view, visit https://gerrit.asterisk.org/9563
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: testsuite
Gerrit-Branch: 15
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic4744c062e17862bf60eaa76f46af2ba2743e650
Gerrit-Change-Number: 9563
Gerrit-PatchSet: 1
Gerrit-Owner: Torrey Searle <tsearle at gmail.com>
Gerrit-Reviewer: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Jenkins2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180724/ae41ae8c/attachment-0001.html>


More information about the asterisk-code-review mailing list