<p>Friendly Automation <strong>submitted</strong> this change.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/14528">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Kevin Harwell: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">confbridge: Re-organize SFU tests and add Local channel variants.<br><br>SFU specific ConfBridge tests have now been moved into an 'sfu'<br>directory to better organize them.<br><br>Test variants have also been added which place a Local channel<br>between the PJSIP channel and the ConfBridge conference bridge<br>testing stream and re-negotiation support in the Local channel.<br><br>ASTERISK-28938<br><br>Change-Id: I717107de2caa5a7faa4fbefdd044f778f136f8fc<br>---<br>R tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/extensions.conf<br>R tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/pjsip.conf<br>R tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_first.xml<br>R tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_second.xml<br>R tests/apps/confbridge/sfu/add_remove_sources/test-config.yaml<br>A tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/extensions.conf<br>C tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/pjsip.conf<br>C tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_first.xml<br>C tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_second.xml<br>A tests/apps/confbridge/sfu/local_add_remove_sources/test-config.yaml<br>A tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/extensions.conf<br>C tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/pjsip.conf<br>R tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_first.xml<br>R tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_second.xml<br>A tests/apps/confbridge/sfu/local_no_video_source/test-config.yaml<br>A tests/apps/confbridge/sfu/local_nominal/configs/ast1/extensions.conf<br>C tests/apps/confbridge/sfu/local_nominal/configs/ast1/pjsip.conf<br>R tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_first.xml<br>R tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_second.xml<br>A tests/apps/confbridge/sfu/local_nominal/test-config.yaml<br>R tests/apps/confbridge/sfu/no_video_source/configs/ast1/extensions.conf<br>R tests/apps/confbridge/sfu/no_video_source/configs/ast1/pjsip.conf<br>C tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_first.xml<br>C tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_second.xml<br>R tests/apps/confbridge/sfu/no_video_source/test-config.yaml<br>R tests/apps/confbridge/sfu/nominal/configs/ast1/extensions.conf<br>R tests/apps/confbridge/sfu/nominal/configs/ast1/pjsip.conf<br>C tests/apps/confbridge/sfu/nominal/sipp/video_caller_first.xml<br>C tests/apps/confbridge/sfu/nominal/sipp/video_caller_second.xml<br>R tests/apps/confbridge/sfu/nominal/test-config.yaml<br>A tests/apps/confbridge/sfu/tests.yaml<br>M tests/apps/confbridge/tests.yaml<br>32 files changed, 136 insertions(+), 75 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/extensions.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/extensions.conf</span><br><span>rename to tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/extensions.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/pjsip.conf</span><br><span>rename to tests/apps/confbridge/sfu/add_remove_sources/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_first.xml</span><br><span>similarity index 95%</span><br><span>rename from tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml</span><br><span>rename to tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_first.xml</span><br><span>index 857d79f..99d8802 100644</span><br><span>--- a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_first.xml</span><br><span>@@ -263,11 +263,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_second.xml</span><br><span>similarity index 95%</span><br><span>rename from tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml</span><br><span>rename to tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_second.xml</span><br><span>index 0e71557..802c5de 100644</span><br><span>--- a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/add_remove_sources/sipp/video_caller_second.xml</span><br><span>@@ -236,11 +236,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/test-config.yaml b/tests/apps/confbridge/sfu/add_remove_sources/test-config.yaml</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_add_remove_sources/test-config.yaml</span><br><span>rename to tests/apps/confbridge/sfu/add_remove_sources/test-config.yaml</span><br><span>diff --git a/tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..a6c98b0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Dial(Local/conference@conference)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[conference]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same =>       n,Set(CONFBRIDGE(bridge,video_mode)=sfu)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,ConfBridge(conference)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,Hangup()</span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>copy from tests/apps/confbridge/sfu_add_remove_sources/configs/ast1/pjsip.conf</span><br><span>copy to tests/apps/confbridge/sfu/local_add_remove_sources/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_first.xml</span><br><span>similarity index 95%</span><br><span>copy from tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml</span><br><span>copy to tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_first.xml</span><br><span>index 857d79f..99d8802 100644</span><br><span>--- a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_first.xml</span><br><span>@@ -263,11 +263,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_second.xml</span><br><span>similarity index 95%</span><br><span>copy from tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml</span><br><span>copy to tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_second.xml</span><br><span>index 0e71557..802c5de 100644</span><br><span>--- a/tests/apps/confbridge/sfu_add_remove_sources/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_add_remove_sources/sipp/video_caller_second.xml</span><br><span>@@ -236,11 +236,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu/local_add_remove_sources/test-config.yaml b/tests/apps/confbridge/sfu/local_add_remove_sources/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..2a54024</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_add_remove_sources/test-config.yaml</span><br><span>@@ -0,0 +1,36 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary:     'Ensure that ConfBridge and PJSIP in SFU reinvite appropriately when channels add/remove sources'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Two SIPp scenarios call into Asterisk which drops them both into a ConfBridge conference bridge. A Local</span><br><span style="color: hsl(120, 100%, 40%);">+        channel is used in between each channel and the conference bridge. The bridge is configured with SFU video</span><br><span style="color: hsl(120, 100%, 40%);">+        support and the calls include video streams. Upon entering each side is reinvited with an additional</span><br><span style="color: hsl(120, 100%, 40%);">+        video stream of the other participant. Once this is done the second participant adds an additional</span><br><span style="color: hsl(120, 100%, 40%);">+        video source. A reinvite is then sent to the first participant adding an additional video stream for</span><br><span style="color: hsl(120, 100%, 40%);">+        this new source. The second participant then removes the new video source and a reinvite is sent to the</span><br><span style="color: hsl(120, 100%, 40%);">+        first participant removing the just added video stream. The second participant leaves and another</span><br><span style="color: hsl(120, 100%, 40%);">+        reinvite is sent to the first participant removing the video stream for the other participant that</span><br><span style="color: hsl(120, 100%, 40%);">+        just left. The first participant then hangs up and the test ends.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+    fail-on-any: False</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv4 & UDP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_first.xml', '-i': '127.0.0.1', '-p': '5061', '-s': 'video-caller-first'} }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_second.xml', '-i': '127.0.0.1', '-p': '5062', '-d': '5000', '-s': 'video-caller-second'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'app_confbridge'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..a6c98b0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Dial(Local/conference@conference)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[conference]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same =>       n,Set(CONFBRIDGE(bridge,video_mode)=sfu)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,ConfBridge(conference)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,Hangup()</span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>copy from tests/apps/confbridge/sfu_no_video_source/configs/ast1/pjsip.conf</span><br><span>copy to tests/apps/confbridge/sfu/local_no_video_source/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_first.xml</span><br><span>similarity index 92%</span><br><span>rename from tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml</span><br><span>rename to tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_first.xml</span><br><span>index 752133f..67f3163 100644</span><br><span>--- a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_first.xml</span><br><span>@@ -150,11 +150,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_second.xml</span><br><span>similarity index 87%</span><br><span>rename from tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml</span><br><span>rename to tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_second.xml</span><br><span>index a15d56b..de47027 100644</span><br><span>--- a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_no_video_source/sipp/video_caller_second.xml</span><br><span>@@ -77,11 +77,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu/local_no_video_source/test-config.yaml b/tests/apps/confbridge/sfu/local_no_video_source/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..5262b8b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_no_video_source/test-config.yaml</span><br><span>@@ -0,0 +1,34 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary:     'Ensure that ConfBridge and PJSIP in SFU reinvite with video even if participant only provides audio'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Two SIPp scenarios call into Asterisk which drops them both into a ConfBridge conference bridge. A Local</span><br><span style="color: hsl(120, 100%, 40%);">+        channel is placed in between the channel and the conference btidge. The bridge is configured with SFU</span><br><span style="color: hsl(120, 100%, 40%);">+        video support. The first participant has only audio while the second participant has both audio and</span><br><span style="color: hsl(120, 100%, 40%);">+        video. On join the first participant is reinvited to add video of the second participant while the</span><br><span style="color: hsl(120, 100%, 40%);">+        second participant is not reinvited at all. The second participant then hangs up causing the first</span><br><span style="color: hsl(120, 100%, 40%);">+        participant to be reinvited and the video stream removed. The first participant then hangs up and</span><br><span style="color: hsl(120, 100%, 40%);">+        the test ends.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+    fail-on-any: False</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv4 & UDP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_first.xml', '-i': '127.0.0.1', '-p': '5061', '-s': 'video-caller'} }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_second.xml', '-i': '127.0.0.1', '-p': '5062', '-d': '5000', '-s': 'video-caller'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'app_confbridge'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/apps/confbridge/sfu/local_nominal/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/local_nominal/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..a6c98b0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_nominal/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Dial(Local/conference@conference)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[conference]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => conference,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same =>       n,Set(CONFBRIDGE(bridge,video_mode)=sfu)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,ConfBridge(conference)</span><br><span style="color: hsl(120, 100%, 40%);">+same  =>      n,Hangup()</span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/local_nominal/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>copy from tests/apps/confbridge/sfu_nominal/configs/ast1/pjsip.conf</span><br><span>copy to tests/apps/confbridge/sfu/local_nominal/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_first.xml</span><br><span>similarity index 93%</span><br><span>rename from tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml</span><br><span>rename to tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_first.xml</span><br><span>index 47a9141..f7aaadd 100644</span><br><span>--- a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_first.xml</span><br><span>@@ -162,11 +162,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_second.xml</span><br><span>similarity index 91%</span><br><span>rename from tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml</span><br><span>rename to tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_second.xml</span><br><span>index a29e418..24954c8 100644</span><br><span>--- a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/local_nominal/sipp/video_caller_second.xml</span><br><span>@@ -119,11 +119,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu/local_nominal/test-config.yaml b/tests/apps/confbridge/sfu/local_nominal/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..2e8dc76</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/local_nominal/test-config.yaml</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary:     'Ensure that ConfBridge and PJSIP in SFU reinvite appropriately when channels join/leave'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Two SIPp scenarios call into Asterisk which drops them both into a ConfBridge conference bridge. A</span><br><span style="color: hsl(120, 100%, 40%);">+        Local channel is placed in between each channel and the conference bridge. The bridge is configured</span><br><span style="color: hsl(120, 100%, 40%);">+        with SFU video support and the calls include video streams. Upon entering each side is reinvited with</span><br><span style="color: hsl(120, 100%, 40%);">+        an additional video stream of the other participant. Once this is done the second participant leaves</span><br><span style="color: hsl(120, 100%, 40%);">+        and another reinvite is sent to the first participant removing the video stream for the other participant</span><br><span style="color: hsl(120, 100%, 40%);">+        that just left. The first participant then hangs up and the test ends.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+    fail-on-any: False</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv4 & UDP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_first.xml', '-i': '127.0.0.1', '-p': '5061', '-s': 'video-caller'} }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'video_caller_second.xml', '-i': '127.0.0.1', '-p': '5062', '-d': '5000', '-s': 'video-caller'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'app_confbridge'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/no_video_source/configs/ast1/extensions.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_no_video_source/configs/ast1/extensions.conf</span><br><span>rename to tests/apps/confbridge/sfu/no_video_source/configs/ast1/extensions.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/no_video_source/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_no_video_source/configs/ast1/pjsip.conf</span><br><span>rename to tests/apps/confbridge/sfu/no_video_source/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_first.xml</span><br><span>similarity index 92%</span><br><span>copy from tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml</span><br><span>copy to tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_first.xml</span><br><span>index 752133f..67f3163 100644</span><br><span>--- a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_first.xml</span><br><span>@@ -150,11 +150,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_second.xml</span><br><span>similarity index 87%</span><br><span>copy from tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml</span><br><span>copy to tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_second.xml</span><br><span>index a15d56b..de47027 100644</span><br><span>--- a/tests/apps/confbridge/sfu_no_video_source/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/no_video_source/sipp/video_caller_second.xml</span><br><span>@@ -77,11 +77,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_no_video_source/test-config.yaml b/tests/apps/confbridge/sfu/no_video_source/test-config.yaml</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_no_video_source/test-config.yaml</span><br><span>rename to tests/apps/confbridge/sfu/no_video_source/test-config.yaml</span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/configs/ast1/extensions.conf b/tests/apps/confbridge/sfu/nominal/configs/ast1/extensions.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_nominal/configs/ast1/extensions.conf</span><br><span>rename to tests/apps/confbridge/sfu/nominal/configs/ast1/extensions.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/configs/ast1/pjsip.conf b/tests/apps/confbridge/sfu/nominal/configs/ast1/pjsip.conf</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_nominal/configs/ast1/pjsip.conf</span><br><span>rename to tests/apps/confbridge/sfu/nominal/configs/ast1/pjsip.conf</span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml b/tests/apps/confbridge/sfu/nominal/sipp/video_caller_first.xml</span><br><span>similarity index 93%</span><br><span>copy from tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml</span><br><span>copy to tests/apps/confbridge/sfu/nominal/sipp/video_caller_first.xml</span><br><span>index 47a9141..f7aaadd 100644</span><br><span>--- a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_first.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/nominal/sipp/video_caller_first.xml</span><br><span>@@ -162,11 +162,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml b/tests/apps/confbridge/sfu/nominal/sipp/video_caller_second.xml</span><br><span>similarity index 91%</span><br><span>copy from tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml</span><br><span>copy to tests/apps/confbridge/sfu/nominal/sipp/video_caller_second.xml</span><br><span>index a29e418..24954c8 100644</span><br><span>--- a/tests/apps/confbridge/sfu_nominal/sipp/video_caller_second.xml</span><br><span>+++ b/tests/apps/confbridge/sfu/nominal/sipp/video_caller_second.xml</span><br><span>@@ -119,11 +119,5 @@</span><br><span>   <recv response="200"></span><br><span>   </recv></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(0, 100%, 40%);">-  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(0, 100%, 40%);">-  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> </scenario></span><br><span> </span><br><span>diff --git a/tests/apps/confbridge/sfu_nominal/test-config.yaml b/tests/apps/confbridge/sfu/nominal/test-config.yaml</span><br><span>similarity index 100%</span><br><span>rename from tests/apps/confbridge/sfu_nominal/test-config.yaml</span><br><span>rename to tests/apps/confbridge/sfu/nominal/test-config.yaml</span><br><span>diff --git a/tests/apps/confbridge/sfu/tests.yaml b/tests/apps/confbridge/sfu/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..2e63c8f</span><br><span>--- /dev/null</span><br><span>+++ b/tests/apps/confbridge/sfu/tests.yaml</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Enter tests here in the order they should be considered for execution:</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'nominal'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'local_nominal'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'add_remove_sources'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'local_add_remove_sources'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'no_video_source'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'local_no_video_source'</span><br><span>diff --git a/tests/apps/confbridge/tests.yaml b/tests/apps/confbridge/tests.yaml</span><br><span>index bf8ef1f..ccf2505 100644</span><br><span>--- a/tests/apps/confbridge/tests.yaml</span><br><span>+++ b/tests/apps/confbridge/tests.yaml</span><br><span>@@ -18,6 +18,4 @@</span><br><span>     - test: 'confbridge_waitmarked_single'</span><br><span>     - test: 'muted_conference_start_muted'</span><br><span>     - test: 'regcontext'</span><br><span style="color: hsl(0, 100%, 40%);">-    - test: 'sfu_nominal'</span><br><span style="color: hsl(0, 100%, 40%);">-    - test: 'sfu_add_remove_sources'</span><br><span style="color: hsl(0, 100%, 40%);">-    - test: 'sfu_no_video_source'</span><br><span style="color: hsl(120, 100%, 40%);">+    - dir: 'sfu'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/14528">change 14528</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/testsuite/+/14528"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: 17 </div>
<div style="display:none"> Gerrit-Change-Id: I717107de2caa5a7faa4fbefdd044f778f136f8fc </div>
<div style="display:none"> Gerrit-Change-Number: 14528 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>