<p>Jenkins2 <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/10528">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  George Joseph: Looks good to me, approved
  Jenkins2: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">testsuite: fix rewrite_contact tests<br><br>The current rewrite_contact tests put the correct source ip in the<br>headers expected to be rewritten, thus the header re-write has no<br>effect & the test would pass regardless if rewrite_contact is enabled.<br>To fix this, the tests have been updated to have a bogus ip in the<br>route header & ensure that it is either modified, (or remains the same)<br><br>Tests were also added to validate the other half the nat logic, where<br>contact should be updated in the case no route set is present<br><br>Change-Id: Ic3974170dfc3bb878b663359c459a08f9674d9a6<br>---<br>A tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/extensions.conf<br>A tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/nat/rewrite_contact/contact_request/sipp/uac-route-set.xml<br>A tests/channels/pjsip/nat/rewrite_contact/contact_request/test-config.yaml<br>A tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/extensions.conf<br>A tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/nat/rewrite_contact/contact_response/sipp/uas-route-set.xml<br>A tests/channels/pjsip/nat/rewrite_contact/contact_response/test-config.yaml<br>M tests/channels/pjsip/nat/rewrite_contact/route_set_request/sipp/uac-route-set.xml<br>M tests/channels/pjsip/nat/rewrite_contact/route_set_response/sipp/uas-route-set.xml<br>M tests/channels/pjsip/nat/rewrite_contact/tests.yaml<br>11 files changed, 302 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/extensions.conf b/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..7b75b3e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,5 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,NoOp()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/pjsip.conf b/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f2ec207</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_request/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,14 @@</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]</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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[sipp]</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 = ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact = yes</span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_request/sipp/uac-route-set.xml b/tests/channels/pjsip/nat/rewrite_contact/contact_request/sipp/uac-route-set.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..eae7f53</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_request/sipp/uac-route-set.xml</span><br><span>@@ -0,0 +1,91 @@</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      INVITE sip:[service]@[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: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: sut <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 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:1.2.3.4:5063;transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</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="100"</span><br><span style="color: hsl(120, 100%, 40%);">+        optional="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%);">+  <recv response="181"</span><br><span style="color: hsl(120, 100%, 40%);">+        optional="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%);">+  <recv response="180" optional="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%);">+  <recv response="183" optional="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%);">+  <recv response="200" 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%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      ACK sip:[service]@[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: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sip:[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</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%);">+    ]]></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 request="BYE"></span><br><span style="color: hsl(120, 100%, 40%);">+      <action></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp="BYE sip:127.0.0.1:5061.*"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="msg"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              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%);">+  <Reference variables="1" /></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%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></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%);">+    ]]></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%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_request/test-config.yaml b/tests/channels/pjsip/nat/rewrite_contact/contact_request/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..47f743d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_request/test-config.yaml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure that proper URI is rewritten on SIP responses'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'This test has SIPp place a call to Asterisk. The SIPp scenario</span><br><span style="color: hsl(120, 100%, 40%);">+        represents a proxy in the path to some endpoint. The INVITE that the</span><br><span style="color: hsl(120, 100%, 40%);">+        SIPp scenario sends does not have Record-Route headers in it.</span><br><span style="color: hsl(120, 100%, 40%);">+        We ensure that Asterisk correctly rewrites the Contact header in the</span><br><span style="color: hsl(120, 100%, 40%);">+        INVITE when the rewrite_contact option is enabled.  We then hang</span><br><span style="color: hsl(120, 100%, 40%);">+        up the call, and we ensure that the request URI is correct.'</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: sipp-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpAMIActionTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sipp-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: True</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%);">+                - { 'key-args': {'scenario': 'uac-route-set.xml', '-p': '5061', '-s': 'echo'} }</span><br><span style="color: hsl(120, 100%, 40%);">+    ami-action:</span><br><span style="color: hsl(120, 100%, 40%);">+        delay: 1</span><br><span style="color: hsl(120, 100%, 40%);">+        args:</span><br><span style="color: hsl(120, 100%, 40%);">+            Action: 'Hangup'</span><br><span style="color: hsl(120, 100%, 40%);">+            Channel: '/PJSIP/sipp-.*/'</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: '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/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/extensions.conf b/tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..c0f0b19</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,4 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => sipp,1,NoOp()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Dial(PJSIP/sipp)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/pjsip.conf b/tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e2330b0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_response/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,19 @@</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]</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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[sipp]</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 = ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact = yes</span><br><span style="color: hsl(120, 100%, 40%);">+aors = sipp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[sipp]</span><br><span style="color: hsl(120, 100%, 40%);">+type = aor</span><br><span style="color: hsl(120, 100%, 40%);">+contact = sip:sipp@127.0.0.1:5061</span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_response/sipp/uas-route-set.xml b/tests/channels/pjsip/nat/rewrite_contact/contact_response/sipp/uas-route-set.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..1727ad8</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_response/sipp/uas-route-set.xml</span><br><span>@@ -0,0 +1,91 @@</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 UAS responder"></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- By adding rrs="true" (Record Route Sets), the route sets         --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- are saved and used for following messages sent. Useful to test   --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- against stateful SIP proxies/B2BUAs.                             --></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+      <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+      <action></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+              header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              assign_to="remote_tag"/></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:1.2.3.4:5063></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</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 request="ACK"</span><br><span style="color: hsl(120, 100%, 40%);">+        rtd="true"</span><br><span style="color: hsl(120, 100%, 40%);">+        crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+        <action></span><br><span style="color: hsl(120, 100%, 40%);">+            <ereg regexp="ACK sip:127.0.0.1:5061.*"</span><br><span style="color: hsl(120, 100%, 40%);">+                search_in="msg"</span><br><span style="color: hsl(120, 100%, 40%);">+                check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                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%);">+  <Reference variables="1" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <pause/></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sip:[service]@127.0.0.1:[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: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sip:sipp@[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</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%);">+    ]]></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"></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%);">+  <!-- Keep the call open for a while in case the 200 is lost to be     --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- able to retransmit it if we receive the BYE again.               --></span><br><span style="color: hsl(120, 100%, 40%);">+  <timewait milliseconds="4000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(120, 100%, 40%);">+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(120, 100%, 40%);">+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/contact_response/test-config.yaml b/tests/channels/pjsip/nat/rewrite_contact/contact_response/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..bbfad0f</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/contact_response/test-config.yaml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure that proper URI is rewritten on SIP responses'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'This test has Asterisk place an outbound call to a SIPp scenario,</span><br><span style="color: hsl(120, 100%, 40%);">+        which represents a proxy in the path to some endpoint. The 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+        response that SIPp sends has no Record-Route headers in it. We ensure</span><br><span style="color: hsl(120, 100%, 40%);">+        that Asterisk does rewrite the Contact header in the SIP response.'</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: sipp-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpAMIActionTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sipp-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: True</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%);">+                - { 'key-args': {'scenario': 'uas-route-set.xml', '-p': '5061'} }</span><br><span style="color: hsl(120, 100%, 40%);">+    ami-action:</span><br><span style="color: hsl(120, 100%, 40%);">+        delay: 1</span><br><span style="color: hsl(120, 100%, 40%);">+        args:</span><br><span style="color: hsl(120, 100%, 40%);">+            Action: 'Originate'</span><br><span style="color: hsl(120, 100%, 40%);">+            Channel: 'PJSIP/sipp'</span><br><span style="color: hsl(120, 100%, 40%);">+            Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+</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: '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/channels/pjsip/nat/rewrite_contact/route_set_request/sipp/uac-route-set.xml b/tests/channels/pjsip/nat/rewrite_contact/route_set_request/sipp/uac-route-set.xml</span><br><span>index 65fc131..6fb9b51 100644</span><br><span>--- a/tests/channels/pjsip/nat/rewrite_contact/route_set_request/sipp/uac-route-set.xml</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/route_set_request/sipp/uac-route-set.xml</span><br><span>@@ -11,9 +11,9 @@</span><br><span>       To: sut <sip:[service]@[remote_ip]:[remote_port]></span><br><span>       Call-ID: [call_id]</span><br><span>       CSeq: 1 INVITE</span><br><span style="color: hsl(0, 100%, 40%);">-      Record-Route: <sip:127.0.0.1:5061;lr></span><br><span style="color: hsl(120, 100%, 40%);">+      Record-Route: <sip:1.2.3.4:5061;lr></span><br><span>       Record-Route: <sip:127.0.0.1:5062;lr></span><br><span style="color: hsl(0, 100%, 40%);">-      Contact: <sip:127.0.0.1:5063;transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:1.2.3.4:5063;transport=[transport]></span><br><span>       Max-Forwards: 70</span><br><span>       Subject: Performance Test</span><br><span>       Content-Type: application/sdp</span><br><span>@@ -66,7 +66,7 @@</span><br><span> </span><br><span>   <recv request="BYE"></span><br><span>       <action></span><br><span style="color: hsl(0, 100%, 40%);">-          <ereg regexp="BYE sip:127.0.0.1:5063.*"</span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp="BYE sip:1.2.3.4:5063.*"</span><br><span>               search_in="msg"</span><br><span>               check_it="true"</span><br><span>               assign_to="1"/></span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/route_set_response/sipp/uas-route-set.xml b/tests/channels/pjsip/nat/rewrite_contact/route_set_response/sipp/uas-route-set.xml</span><br><span>index 9a1532e..ca0a6eb 100644</span><br><span>--- a/tests/channels/pjsip/nat/rewrite_contact/route_set_response/sipp/uas-route-set.xml</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/route_set_response/sipp/uas-route-set.xml</span><br><span>@@ -27,8 +27,8 @@</span><br><span>       [last_Call-ID:]</span><br><span>       [last_CSeq:]</span><br><span>       Record-Route: <sip:127.0.0.1:5062;lr></span><br><span style="color: hsl(0, 100%, 40%);">-      Record-Route: <sip:127.0.0.1:5061;lr></span><br><span style="color: hsl(0, 100%, 40%);">-      Contact: <sip:127.0.0.1:5063></span><br><span style="color: hsl(120, 100%, 40%);">+      Record-Route: <sip:1.2.3.4:5061;lr></span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:1.2.3.4:5063></span><br><span>       Content-Type: application/sdp</span><br><span>       Content-Length: [len]</span><br><span> </span><br><span>@@ -47,7 +47,7 @@</span><br><span>         rtd="true"</span><br><span>         crlf="true"></span><br><span>         <action></span><br><span style="color: hsl(0, 100%, 40%);">-            <ereg regexp="ACK sip:127.0.0.1:5063.*"</span><br><span style="color: hsl(120, 100%, 40%);">+            <ereg regexp="ACK sip:1.2.3.4:5063.*"</span><br><span>                 search_in="msg"</span><br><span>                 check_it="true"</span><br><span>                 assign_to="1"/></span><br><span>diff --git a/tests/channels/pjsip/nat/rewrite_contact/tests.yaml b/tests/channels/pjsip/nat/rewrite_contact/tests.yaml</span><br><span>index 9c04329..6cfd65c 100644</span><br><span>--- a/tests/channels/pjsip/nat/rewrite_contact/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/nat/rewrite_contact/tests.yaml</span><br><span>@@ -2,3 +2,5 @@</span><br><span>     - test: 'route_set_response'</span><br><span>     - test: 'route_set_request'</span><br><span>     - test: 'route_set_reinvite'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'contact_request'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'contact_response'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/10528">change 10528</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/10528"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: 13 </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ic3974170dfc3bb878b663359c459a08f9674d9a6 </div>
<div style="display:none"> Gerrit-Change-Number: 10528 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Torrey Searle <tsearle@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 (1000185) </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>