<p>Joe has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/16491">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tests/pjsip/config_options/remove_unavailable: Test new config option<br><br>A new PJSIP option to remove unavailable contacts when an inbound<br>registration exceeds max_contacts has been added.  A new test is<br>added to the testsuite to test the behavior of this option.<br><br>ASTERISK-29525<br><br>Change-Id: I336bd2bac512396b33407882066a8ec66a914f5c<br>---<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-disabled.xml<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-enabled.xml<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-disabled.xml<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-enabled.xml<br>A tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/test-config.yaml<br>M tests/channels/pjsip/registration/inbound/nominal/config_options/tests.yaml<br>7 files changed, 738 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/testsuite refs/changes/91/16491/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/configs/ast1/pjsip.conf b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..a48f623</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,113 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport6-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=[::1]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp](local-transport-template)</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp6](local-transport6-template)</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-tcp](local-transport-template)</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=tcp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-tcp6](local-transport6-template)</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=tcp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[endpoint-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=alice</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=bob</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[charlie](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=charlie</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[charlie]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_existing=yes</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[carol](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=carol</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[carol]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_existing=yes</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[daniel](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=daniel</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[daniel]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[edward](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=edward</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[edward]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[frank](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=frank</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[frank]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_existing=yes</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[gussie](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=gussie</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[gussie]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=2</span><br><span style="color: hsl(120, 100%, 40%);">+remove_existing=yes</span><br><span style="color: hsl(120, 100%, 40%);">+remove_unavailable=yes</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_frequency=5</span><br><span style="color: hsl(120, 100%, 40%);">+qualify_timeout=3.0</span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-disabled.xml b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-disabled.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..57a22ea</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-disabled.xml</span><br><span>@@ -0,0 +1,106 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Basic Sipstone UAC"></span><br><span style="color: hsl(120, 100%, 40%);">+    <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-1</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-1@127.0.0.2:5062>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 600</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(alice|bob)-1@127.0.0.2:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+          </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-2</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-2@127.0.0.3:5063>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 300</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(alice|bob)-1@127.0.0.2:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="2"/></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp="Contact: &lt;sip:(alice|bob)-2@127.0.0.3:5063&gt;;expires=(300|29[5-9])" search_in="msg" check_it="true" assign_to="3"/></span><br><span style="color: hsl(120, 100%, 40%);">+          </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <pause milliseconds="20000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-3</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-3@127.0.0.4:5064>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected old contacts are *not* present --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(alice|bob)-2@127.0.0.3:5063&gt;" search_in="msg" check_it_inverse="true" assign_to="4" /></span><br><span style="color: hsl(120, 100%, 40%);">+                       <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(alice|bob)-1@127.0.0.2:5062&gt;;expires=(580|57[5-9])" search_in="msg" check_it="true" assign_to="5"/></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp="Contact: &lt;sip:(alice|bob)-3@127.0.0.4:5064&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="6"/></span><br><span style="color: hsl(120, 100%, 40%);">+            </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-4</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-4@127.0.0.5:5065>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: "[service]" <sip:[service]-5@127.0.0.6:5066>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="403" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+    </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <Reference variables="1" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="2" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="3" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="4" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="5" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-enabled.xml b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-enabled.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..8d8ae82</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv4-remove-existing-enabled.xml</span><br><span>@@ -0,0 +1,86 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Basic Sipstone UAC"></span><br><span style="color: hsl(120, 100%, 40%);">+    <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-1</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-1@127.0.0.2:5062>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 600</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(charlie|carol)-1@127.0.0.2:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+              </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <pause milliseconds="20000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-2</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-2@127.0.0.3:5063>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(charlie|carol)-1@127.0.0.2:5062&gt;;expires=(580|57[5-9])" search_in="msg" check_it="true" assign_to="2"/></span><br><span style="color: hsl(120, 100%, 40%);">+                      <ereg regexp="Contact: &lt;sip:(charlie|carol)-2@127.0.0.3:5063&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="3"/></span><br><span style="color: hsl(120, 100%, 40%);">+                </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-3</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-3@127.0.0.4:5064>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                   Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(charlie|carol)-2@127.0.0.3:5063&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="4"/></span><br><span style="color: hsl(120, 100%, 40%);">+                        <ereg regexp="Contact: &lt;sip:(charlie|carol)-3@127.0.0.4:5064&gt;;expires=(70|6[5-9])" search_in="msg" check_it="true" assign_to="5"/></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected old contacts are *not* present --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(charlie|carol)-1@127.0.0.2:5062&gt;" search_in="msg" check_it_inverse="true" assign_to="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+           </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <Reference variables="1" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="2" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="3" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="4" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="5" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-disabled.xml b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-disabled.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..a1212eb</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-disabled.xml</span><br><span>@@ -0,0 +1,107 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Basic Sipstone UAC"></span><br><span style="color: hsl(120, 100%, 40%);">+        <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-1</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-1@[customip1]:5062>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 600</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(daniel|edward)-1@.::2.:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+          </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-2</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-2@[customip2]:5063>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 300</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(daniel|edward)-1@.::2.:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="2"/></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp="Contact: &lt;sip:(daniel|edward)-2@.::3.:5063&gt;;expires=(300|29[5-9])" search_in="msg" check_it="true" assign_to="3"/></span><br><span style="color: hsl(120, 100%, 40%);">+          </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <pause milliseconds="20000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-3</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-3@[customip3]:5064>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                      <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(daniel|edward)-1@.::2.:5062&gt;;expires=(580|57[5-9])" search_in="msg" check_it="true" assign_to="4"/></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp="Contact: &lt;sip:(daniel|edward)-3@.::4.:5064&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="5"/></span><br><span style="color: hsl(120, 100%, 40%);">+                    <!-- Ensure the expected old contacts are *not* present --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(daniel|edward)-2@.::3.:5063&gt;" search_in="msg" check_it_inverse="true" assign_to="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+               </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-4</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-4@[customip4]:5065>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Contact: "[service]" <sip:[service]-5@[customip5]:5066>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="403" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+    </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <Reference variables="1" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="2" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="3" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="4" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="5" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-enabled.xml b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-enabled.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..3552e99</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/sipp/register-ipv6-remove-existing-enabled.xml</span><br><span>@@ -0,0 +1,86 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Basic Sipstone UAC"></span><br><span style="color: hsl(120, 100%, 40%);">+    <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-1</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-1@[customip1]:5062>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 600</span><br><span style="color: hsl(120, 100%, 40%);">+                  Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(frank|gussie)-1@.::2.:5062&gt;;expires=(600|59[5-9])" search_in="msg" check_it="true" assign_to="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+           </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <pause milliseconds="20000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-2</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-2@[customip2]:5063>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 60</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(frank|gussie)-1@.::2.:5062&gt;;expires=(580|57[5-9])" search_in="msg" check_it="true" assign_to="2"/></span><br><span style="color: hsl(120, 100%, 40%);">+                   <ereg regexp="Contact: &lt;sip:(frank|gussie)-2@.::3.:5063&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="3"/></span><br><span style="color: hsl(120, 100%, 40%);">+             </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+          <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+                  REGISTER sip:[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+                      From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]-3</span><br><span style="color: hsl(120, 100%, 40%);">+                   To: "[service]" <sip:[service]@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: 1 REGISTER</span><br><span style="color: hsl(120, 100%, 40%);">+                      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: "[service]" <sip:[service]-3@[customip3]:5064>;transport=[transport]</span><br><span style="color: hsl(120, 100%, 40%);">+                 Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+                     Expires: 70</span><br><span style="color: hsl(120, 100%, 40%);">+                   Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+             ]]></span><br><span style="color: hsl(120, 100%, 40%);">+        </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+            <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Ensure the expected contacts are present and that the expires is correct with a 5 second tolerance --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(frank|gussie)-2@.::3.:5063&gt;;expires=(60|5[5-9])" search_in="msg" check_it="true" assign_to="4"/></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(frank|gussie)-3@.::4.:5064&gt;;expires=(70|6[5-9])" search_in="msg" check_it="true" assign_to="5"/></span><br><span style="color: hsl(120, 100%, 40%);">+                     <!-- Ensure the expected old contacts are *not* present --></span><br><span style="color: hsl(120, 100%, 40%);">+                     <ereg regexp="Contact: &lt;sip:(frank|gussie)-1@.::2.:5062&gt;" search_in="msg" check_it_inverse="true" assign_to="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+                </action></span><br><span style="color: hsl(120, 100%, 40%);">+       </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <Reference variables="1" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="2" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="3" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="4" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="5" /></span><br><span style="color: hsl(120, 100%, 40%);">+   <Reference variables="6" /></span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/test-config.yaml b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..ce185a7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/remove_unavailable/test-config.yaml</span><br><span>@@ -0,0 +1,239 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary:     'Register contacts to test the remove_unavailable option'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'When remove_existing is enabled:</span><br><span style="color: hsl(120, 100%, 40%);">+         When remove_unavailable is enabled, any existing AOR contacts not</span><br><span style="color: hsl(120, 100%, 40%);">+         affected by the new registration and are unavailable are removed</span><br><span style="color: hsl(120, 100%, 40%);">+         if they push the number of contacts over the max_contacts setting.</span><br><span style="color: hsl(120, 100%, 40%);">+         If there are no unavailable contacts for this AOR, then default back</span><br><span style="color: hsl(120, 100%, 40%);">+         to the regular remove_existing behavior and remove the contact that</span><br><span style="color: hsl(120, 100%, 40%);">+         is soonest to expire.</span><br><span style="color: hsl(120, 100%, 40%);">+         A single registration still cannot try to add more contacts than</span><br><span style="color: hsl(120, 100%, 40%);">+         the max_contacts setting.  The number of contacts cannot go over the</span><br><span style="color: hsl(120, 100%, 40%);">+         max_contacts setting.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         Using all combinations of IPv4/IPv6 and UDP/TCP, run SIPp scenarios</span><br><span style="color: hsl(120, 100%, 40%);">+         that register contacts in a series of registrations per transport.</span><br><span style="color: hsl(120, 100%, 40%);">+         This ensures that with the remove_unavailable pjsip.conf configuration</span><br><span style="color: hsl(120, 100%, 40%);">+         option enabled, the unavailable contacts are removed and the new</span><br><span style="color: hsl(120, 100%, 40%);">+         contacts are added as expected.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         When remove_existing is not enabled:</span><br><span style="color: hsl(120, 100%, 40%);">+         When remove_unavailable is enabled, search the AOR for any unavailable</span><br><span style="color: hsl(120, 100%, 40%);">+         contacts not involved in this registration, and remove enough contacts</span><br><span style="color: hsl(120, 100%, 40%);">+         so that the total number of registered contacts remains at or below</span><br><span style="color: hsl(120, 100%, 40%);">+         max_contacts.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         Using all combinations of IPv4/IPv6 and UDP/TCP, run SIPp scenarios</span><br><span style="color: hsl(120, 100%, 40%);">+         that register contacts in a series of registrations per transport.</span><br><span style="color: hsl(120, 100%, 40%);">+         This ensures that with the remove_unavailable pjsip.conf configuration</span><br><span style="color: hsl(120, 100%, 40%);">+         option enabled, the unavailable contacts are removed and the new</span><br><span style="color: hsl(120, 100%, 40%);">+         contacts are added as expected.'</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%);">+        -</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%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: 'ami-config'</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'ami.AMIEventModule'</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': 'register-ipv4-remove-existing-disabled.xml', '-i': '127.0.0.1', '-p': '5061', '-s': 'alice'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv4 & TCP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv4-remove-existing-disabled.xml', '-i': '127.0.0.1', '-p': '5061', '-t': 't1', '-s': 'bob'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               # IPv4 & UDP & remove_existing</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv4-remove-existing-enabled.xml', '-i': '127.0.0.1', '-p': '5161', '-s': 'carol'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv4 & TCP & remove_existing</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv4-remove-existing-enabled.xml', '-i': '127.0.0.1', '-p': '5161', '-t': 't1', '-s': 'charlie'} }</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv6 & UDP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv6-remove-existing-disabled.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                 'target': '[::1]', '-i': '[::1]', '-p': '5061', '-s': 'daniel'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'customip1', '[::2]', '-key', 'customip2', '[::3]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip3', '[::4]', '-key', 'customip4', '[::5]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip5', '[::6]'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv6 & TCP</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv6-remove-existing-disabled.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                 'target': '[::1]', '-i': '[::1]', '-p': '5061', '-t': 't1', '-s': 'edward'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'customip1', '[::2]', '-key', 'customip2', '[::3]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip3', '[::4]', '-key', 'customip4', '[::5]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip5', '[::6]'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv6 & UDP & remove_existing</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv6-remove-existing-enabled.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                 'target': '[::1]', '-i': '[::1]', '-p': '5161', '-s': 'frank'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'customip1', '[::2]', '-key', 'customip2', '[::3]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip3', '[::4]'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                # IPv6 & TCP & remove_existing</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'register-ipv6-remove-existing-enabled.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                 'target': '[::1]', '-i': '[::1]', '-p': '5161', '-t': 't1', '-s': 'gussie'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'customip1', '[::2]', '-key', 'customip2', '[::3]',</span><br><span style="color: hsl(120, 100%, 40%);">+                                     '-key', 'customip3', '[::4]'] }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'alice'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'alice'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'bob'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'bob'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'charlie'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'charlie'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'carol'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'carol'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'daniel'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'daniel'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'edward'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'edward'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'frank'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'frank'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_ADDED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'gussie'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                State: 'AOR_CONTACT_REMOVED'</span><br><span style="color: hsl(120, 100%, 40%);">+                AOR: 'gussie'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</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%);">+        - buildoption: 'TEST_FRAMEWORK'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'twisted'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp:</span><br><span style="color: hsl(120, 100%, 40%);">+            version: 'v3.3'</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 style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/registration/inbound/nominal/config_options/tests.yaml b/tests/channels/pjsip/registration/inbound/nominal/config_options/tests.yaml</span><br><span>index 6542018..5dda52e 100644</span><br><span>--- a/tests/channels/pjsip/registration/inbound/nominal/config_options/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/registration/inbound/nominal/config_options/tests.yaml</span><br><span>@@ -3,3 +3,4 @@</span><br><span>     - test: 'minimum_expiration'</span><br><span>     - test: 'maximum_expiration'</span><br><span>     - test: 'remove_existing'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'remove_unavailable'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/16491">change 16491</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/+/16491"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I336bd2bac512396b33407882066a8ec66a914f5c </div>
<div style="display:none"> Gerrit-Change-Number: 16491 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Joe <ynadiv@corpit.xyz> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>