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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">AST-2017-012: Vulnerability replication test.<br><br>Sending RTCP packets to Asterisk with one report (for example a Receiver<br>Report and a Sender Report).<br><br>The test fails if Asterisk crashes.<br><br>ISSUES: - ASTERISK-27382<br>        - ASTERISK-27429<br>Change-Id: I41b313e5e42e82ee10c75052fc3c98fcabe46adf<br>---<br>A tests/rtp/ast-2017-012/configs/ast1/extensions.conf<br>A tests/rtp/ast-2017-012/configs/ast1/pjsip.conf<br>A tests/rtp/ast-2017-012/configs/ast1/rtp.conf<br>A tests/rtp/ast-2017-012/sipp/crash-27382.pcap<br>A tests/rtp/ast-2017-012/sipp/invalid-rtcp-packet.xml<br>A tests/rtp/ast-2017-012/test-config.yaml<br>M tests/rtp/tests.yaml<br>7 files changed, 208 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/rtp/ast-2017-012/configs/ast1/extensions.conf b/tests/rtp/ast-2017-012/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..7328ffc</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[rtcp_test]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+exten => test,1,Answer</span><br><span style="color: hsl(120, 100%, 40%);">+exten => test,n,Noop(RTCP Packet Test ASTERISK-27382)</span><br><span style="color: hsl(120, 100%, 40%);">+exten => test,n,Wait(100)</span><br><span style="color: hsl(120, 100%, 40%);">+exten => test,n,Hangup</span><br><span>diff --git a/tests/rtp/ast-2017-012/configs/ast1/pjsip.conf b/tests/rtp/ast-2017-012/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..6aa4717</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,37 @@</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%);">+Non mapped elements start</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%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+udpbindaddr = 127.0.0.1:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[test1]</span><br><span style="color: hsl(120, 100%, 40%);">+transport = udp</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%);">+Non mapped elements end</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type = transport</span><br><span style="color: hsl(120, 100%, 40%);">+protocol = udp</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%);">+[test1]</span><br><span style="color: hsl(120, 100%, 40%);">+type = aor</span><br><span style="color: hsl(120, 100%, 40%);">+contact = sip:127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[test1]</span><br><span style="color: hsl(120, 100%, 40%);">+type = identify</span><br><span style="color: hsl(120, 100%, 40%);">+endpoint = test1</span><br><span style="color: hsl(120, 100%, 40%);">+match = 127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[test1]</span><br><span style="color: hsl(120, 100%, 40%);">+type = endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+context = rtcp_test</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media = no</span><br><span style="color: hsl(120, 100%, 40%);">+aors = test1</span><br><span style="color: hsl(120, 100%, 40%);">+allow=all,ulaw,alaw</span><br><span>diff --git a/tests/rtp/ast-2017-012/configs/ast1/rtp.conf b/tests/rtp/ast-2017-012/configs/ast1/rtp.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..fb420ba</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/configs/ast1/rtp.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+; Turn off strictrtp so that DTMF does not get dropped</span><br><span style="color: hsl(120, 100%, 40%);">+strictrtp=no</span><br><span>diff --git a/tests/rtp/ast-2017-012/sipp/crash-27382.pcap b/tests/rtp/ast-2017-012/sipp/crash-27382.pcap</span><br><span>new file mode 100644</span><br><span>index 0000000..5f60a94</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/sipp/crash-27382.pcap</span><br><span>Binary files differ</span><br><span>diff --git a/tests/rtp/ast-2017-012/sipp/invalid-rtcp-packet.xml b/tests/rtp/ast-2017-012/sipp/invalid-rtcp-packet.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..4e18362</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/sipp/invalid-rtcp-packet.xml</span><br><span>@@ -0,0 +1,124 @@</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%);">+<!-- This program is free software; you can redistribute it and/or      --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- modify it under the terms of the GNU General Public License as     --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- published by the Free Software Foundation; either version 2 of the --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- License, or (at your option) any later version.                    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!--                                                                    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- This program is distributed in the hope that it will be useful,    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- GNU General Public License for more details.                       --></span><br><span style="color: hsl(120, 100%, 40%);">+<!--                                                                    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- You should have received a copy of the GNU General Public License  --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- along with this program; if not, write to the                      --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- Free Software Foundation, Inc.,                                    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             --></span><br><span style="color: hsl(120, 100%, 40%);">+<!--                                                                    --></span><br><span style="color: hsl(120, 100%, 40%);">+<!--                 Sipp 'uac' scenario with pcap (rtp) play           --></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%);">+<scenario name="UAC with media"></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- In client mode (sipp placing calls), the Call-ID MUST be         --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- generated by sipp. To do so, use [call_id] keyword.                --></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: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: roramirez <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: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-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[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [auto_media_port] RTP/AVP 8 101</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:8 PCMA/8000</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:101 telephone-event/8000</span><br><span style="color: hsl(120, 100%, 40%);">+      a=fmtp:101 0-11,16</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" 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%);">+  <!-- 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%);">+  <recv response="200" rtd="true" crlf="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%);">+  <!-- Packet lost can be simulated in any send/recv message by         --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       --></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=[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: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%);">+  <pause milliseconds="3000"/></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- Play a pre-recorded PCAP file (RTP stream)                       --></span><br><span style="color: hsl(120, 100%, 40%);">+  <nop></span><br><span style="color: hsl(120, 100%, 40%);">+    <action></span><br><span style="color: hsl(120, 100%, 40%);">+        <!-- RTP AND RTCP Packet extract leg-b side from</span><br><span style="color: hsl(120, 100%, 40%);">+             https://issues.asterisk.org/jira/browse/ASTERISK-27382     --></span><br><span style="color: hsl(120, 100%, 40%);">+        <exec play_pcap_audio="crash-27382.pcap" /></span><br><span style="color: hsl(120, 100%, 40%);">+    </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </nop></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- Pause 10 seconds, which is less than the duration of the         --></span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- PCAP file                                                        --></span><br><span style="color: hsl(120, 100%, 40%);">+  <pause milliseconds="10000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- The 'crlf' option inserts a blank line in the statistics report. --></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]@[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=[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: 2 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" crlf="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%);">+  <!-- 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>diff --git a/tests/rtp/ast-2017-012/test-config.yaml b/tests/rtp/ast-2017-012/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..4cc6923</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rtp/ast-2017-012/test-config.yaml</span><br><span>@@ -0,0 +1,37 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary:     'Test for AST-2017-12 Remote Crash Vulnerability in RTCP Stack'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'A SIPp scenario send INVITE to create inbound call in a SIP channel</span><br><span style="color: hsl(120, 100%, 40%);">+        with device test1. After ANSWER by Asterisk, the device send RTP</span><br><span style="color: hsl(120, 100%, 40%);">+        traffic and RTCP packets contain more than one report (Receiver Report</span><br><span style="color: hsl(120, 100%, 40%);">+        and a Sender Report).</span><br><span style="color: hsl(120, 100%, 40%);">+        The test passes as long Asterisk does not crash and receive BYE by test1.'</span><br><span style="color: hsl(120, 100%, 40%);">+    issues:</span><br><span style="color: hsl(120, 100%, 40%);">+        - jira: 'ASTERISK-27382'</span><br><span style="color: hsl(120, 100%, 40%);">+        - jira: 'ASTERISK-27429'</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.SIPpTestCase'</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%);">+    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': 'invalid-rtcp-packet.xml', '-p': '5061', '-s': 'test' } }</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%);">+        - 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.0'</span><br><span style="color: hsl(120, 100%, 40%);">+            feature : 'PCAP'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - custom : 'rawsocket'</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%);">+        - RTP</span><br><span style="color: hsl(120, 100%, 40%);">+        - RTCP</span><br><span>diff --git a/tests/rtp/tests.yaml b/tests/rtp/tests.yaml</span><br><span>index 3ff1e44..56e9f9e 100644</span><br><span>--- a/tests/rtp/tests.yaml</span><br><span>+++ b/tests/rtp/tests.yaml</span><br><span>@@ -1,3 +1,4 @@</span><br><span> # Enter tests here in the order they should be considered for execution:</span><br><span> tests:</span><br><span>     - dir: 'strict_rtp'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'ast-2017-012'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/11525">change 11525</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/+/11525"/><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: I41b313e5e42e82ee10c75052fc3c98fcabe46adf </div>
<div style="display:none"> Gerrit-Change-Number: 11525 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Rodrigo Ramirez Norambuena <a@rodrigoramirez.com> </div>
<div style="display:none"> Gerrit-Reviewer: Aaron An <anjb@ti-net.com.cn> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>