<p>Jenkins2 <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/9350">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, approved
Jenkins2: Approved for Submit
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">fax/pjsip/gateway_t38_g711_rx: Add new test.<br><br>This test verifies proper gateway functionality when the calling leg is<br>t38 and the answering leg is g711. Two asterisk instances are started and<br>a call is made from ast1 to ast2. Ast2 will start a fax gateway and send<br>the call back to ast1. Ast1 runs ReceiveFax() on the calling leg and<br>SendFax() on the answering leg. If the fax is successful, the test<br>passes.<br><br>ASTERISK-27657<br><br>Change-Id: Ie12ef47afaa6a0cfba13d24cc3f78ed678b81cbf<br>---<br>A tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/extensions.conf<br>A tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/pjsip.conf<br>A tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/extensions.conf<br>A tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/pjsip.conf<br>A tests/fax/pjsip/gateway_t38_g711_rx/run-test<br>A tests/fax/pjsip/gateway_t38_g711_rx/send.tiff<br>A tests/fax/pjsip/gateway_t38_g711_rx/test-config.yaml<br>M tests/fax/pjsip/tests.yaml<br>8 files changed, 215 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/extensions.conf b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..8d12a56</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,14 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[receivefax]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,n,ReceiveFax(${ASTDATADIR}/receive.tiff)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,n,UserEvent(FaxStatus,operation: receive,status: ${FAXOPT(status)},statusstr: ${FAXOPT(statusstr)},error: ${FAXOPT(error)})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[sendfax]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,n,SendFax(${ASTDATADIR}/send.tiff)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,n,UserEvent(FaxStatus,operation: send,status: ${FAXOPT(status)},statusstr: ${FAXOPT(statusstr)},error: ${FAXOPT(error)})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/pjsip.conf b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..d398b48</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[global]</span><br><span style="color: hsl(120, 100%, 40%);">+type=global</span><br><span style="color: hsl(120, 100%, 40%);">+debug=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport]</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</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%);">+allow=!all,ulaw,alaw</span><br><span style="color: hsl(120, 100%, 40%);">+context=sendfax</span><br><span style="color: hsl(120, 100%, 40%);">+media_address=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[ast2-t38](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+from_user=ast1-t38</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[ast2-g711](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=no</span><br><span style="color: hsl(120, 100%, 40%);">+from_user=ast1-g711</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/extensions.conf b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..85f818b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/extensions.conf</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[gatewayfax]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,n,Set(FAXOPT(gateway)=yes)</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1234,n,Dial(PJSIP/ast1-g711/sip:1234@127.0.0.1)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,1,noop</span><br><span style="color: hsl(120, 100%, 40%);">+exten => h,n,UserEvent(FaxStatus,operation: gateway,status: ${FAXOPT(status)},statusstr: ${FAXOPT(statusstr)},error: ${FAXOPT(error)})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/pjsip.conf b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..2a00ebf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/configs/ast2/pjsip.conf</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[global]</span><br><span style="color: hsl(120, 100%, 40%);">+type=global</span><br><span style="color: hsl(120, 100%, 40%);">+debug=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport]</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.2</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%);">+allow=!all,ulaw,alaw</span><br><span style="color: hsl(120, 100%, 40%);">+context=gatewayfax</span><br><span style="color: hsl(120, 100%, 40%);">+media_address=127.0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[ast1-t38](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+from_user=ast2-t38</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[ast1-g711](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=no</span><br><span style="color: hsl(120, 100%, 40%);">+from_user=ast2-g711</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/run-test b/tests/fax/pjsip/gateway_t38_g711_rx/run-test</span><br><span>new file mode 100755</span><br><span>index 0000000..eab6cc2</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/run-test</span><br><span>@@ -0,0 +1,115 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python</span><br><span style="color: hsl(120, 100%, 40%);">+# vim: sw=3 et:</span><br><span style="color: hsl(120, 100%, 40%);">+'''</span><br><span style="color: hsl(120, 100%, 40%);">+Copyright (C) 2011, Digium, Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+Matthew Nicholson <mnicholson@digium.com></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This program is free software, distributed under the terms of</span><br><span style="color: hsl(120, 100%, 40%);">+the GNU General Public License Version 2.</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%);">+import sys</span><br><span style="color: hsl(120, 100%, 40%);">+import logging</span><br><span style="color: hsl(120, 100%, 40%);">+import os</span><br><span style="color: hsl(120, 100%, 40%);">+import re</span><br><span style="color: hsl(120, 100%, 40%);">+import shutil</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+from twisted.internet import reactor</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sys.path.append("lib/python")</span><br><span style="color: hsl(120, 100%, 40%);">+from asterisk.asterisk import Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+from asterisk.test_case import TestCase</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+logger = logging.getLogger(__name__)</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%);">+class GatewayTest(TestCase):</span><br><span style="color: hsl(120, 100%, 40%);">+ event_count = 0</span><br><span style="color: hsl(120, 100%, 40%);">+ success_count = 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def __init__(self):</span><br><span style="color: hsl(120, 100%, 40%);">+ TestCase.__init__(self)</span><br><span style="color: hsl(120, 100%, 40%);">+ self.reactor_timeout = 120</span><br><span style="color: hsl(120, 100%, 40%);">+ self.create_asterisk(2)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ # copy the tiff file we are going to send to a good known location</span><br><span style="color: hsl(120, 100%, 40%);">+ shutil.copy("%s/send.tiff" % (os.path.dirname(os.path.realpath(__file__)),),</span><br><span style="color: hsl(120, 100%, 40%);">+ "%s%s" % (self.ast[0].base, self.ast[0].directories['astdatadir']))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def ami_connect(self, ami):</span><br><span style="color: hsl(120, 100%, 40%);">+ if ami.id == 0:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.info("sending a call from ast1 to ast2")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ ami.registerEvent('UserEvent', self.fax_result)</span><br><span style="color: hsl(120, 100%, 40%);">+ df = ami.originate("PJSIP/ast2-t38/sip:1234@127.0.0.2",</span><br><span style="color: hsl(120, 100%, 40%);">+ "receivefax", "1234", 1)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def handle_failure(reason):</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("error sending originate:")</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error(reason.getTraceback())</span><br><span style="color: hsl(120, 100%, 40%);">+ self.stop_reactor()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return reason</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ df.addErrback(handle_failure)</span><br><span style="color: hsl(120, 100%, 40%);">+ else:</span><br><span style="color: hsl(120, 100%, 40%);">+ ami.registerEvent('UserEvent', self.fax_gateway_result)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def fax_gateway_result(self, ami, event):</span><br><span style="color: hsl(120, 100%, 40%);">+ if event['userevent'] != 'FaxStatus':</span><br><span style="color: hsl(120, 100%, 40%);">+ return</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ self.event_count += 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if event['status'] == "SUCCESS":</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.info("successful gateway operation")</span><br><span style="color: hsl(120, 100%, 40%);">+ self.success_count += 1</span><br><span style="color: hsl(120, 100%, 40%);">+ else:</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("gateway error:")</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("status: %s" % (event['status'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("error: %s" % (event['error'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("statusstr: %s" % (event['statusstr'],))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ self.are_we_there_yet()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def fax_result(self, ami, event):</span><br><span style="color: hsl(120, 100%, 40%);">+ if event['userevent'] != 'FaxStatus':</span><br><span style="color: hsl(120, 100%, 40%);">+ return</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ self.event_count += 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if event['status'] == "SUCCESS":</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.info("successful %s through gateway" % (event['operation'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ self.success_count += 1</span><br><span style="color: hsl(120, 100%, 40%);">+ else:</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("error sending fax through gateway:")</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("operation: %s" % (event['operation'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("status: %s" % (event['status'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("error: %s" % (event['error'],))</span><br><span style="color: hsl(120, 100%, 40%);">+ logger.error("statusstr: %s" % (event['statusstr'],))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ self.are_we_there_yet()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def are_we_there_yet(self):</span><br><span style="color: hsl(120, 100%, 40%);">+ if self.event_count == 3:</span><br><span style="color: hsl(120, 100%, 40%);">+ if self.success_count == 3:</span><br><span style="color: hsl(120, 100%, 40%);">+ self.passed = True</span><br><span style="color: hsl(120, 100%, 40%);">+ self.stop_reactor()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ def run(self):</span><br><span style="color: hsl(120, 100%, 40%);">+ TestCase.run(self)</span><br><span style="color: hsl(120, 100%, 40%);">+ self.create_ami_factory(2)</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%);">+def main():</span><br><span style="color: hsl(120, 100%, 40%);">+ test = GatewayTest()</span><br><span style="color: hsl(120, 100%, 40%);">+ reactor.run()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if not test.passed:</span><br><span style="color: hsl(120, 100%, 40%);">+ return 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if __name__ == "__main__":</span><br><span style="color: hsl(120, 100%, 40%);">+ sys.exit(main() or 0)</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/send.tiff b/tests/fax/pjsip/gateway_t38_g711_rx/send.tiff</span><br><span>new file mode 100644</span><br><span>index 0000000..a5fb4fe</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/send.tiff</span><br><span>Binary files differ</span><br><span>diff --git a/tests/fax/pjsip/gateway_t38_g711_rx/test-config.yaml b/tests/fax/pjsip/gateway_t38_g711_rx/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..d8df833</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/gateway_t38_g711_rx/test-config.yaml</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test the fax gateway.'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This test verifies proper gateway functionality when the calling leg</span><br><span style="color: hsl(120, 100%, 40%);">+ is t38 and the answering leg is g711. Two asterisk instances are</span><br><span style="color: hsl(120, 100%, 40%);">+ started and a call is made from ast1 to ast2. Ast2 will start a fax</span><br><span style="color: hsl(120, 100%, 40%);">+ gateway and send the call back to ast1. Ast1 runs ReceiveFax() on the</span><br><span style="color: hsl(120, 100%, 40%);">+ calling leg and SendFax() on the answering leg. If the fax is</span><br><span style="color: hsl(120, 100%, 40%);">+ successful, the test passes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The call flow looks like this:</span><br><span style="color: hsl(120, 100%, 40%);">+ |receive |</span><br><span style="color: hsl(120, 100%, 40%);">+ |t38 t38|</span><br><span style="color: hsl(120, 100%, 40%);">+ |----------->|</span><br><span style="color: hsl(120, 100%, 40%);">+ | gateway|</span><br><span style="color: hsl(120, 100%, 40%);">+ |g711 g711|</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%);">+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%);">+ - custom : 'fax'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_userevent'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_fax'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_t38'</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%);">+ - fax</span><br><span style="color: hsl(120, 100%, 40%);">+ - fax_gateway</span><br><span>diff --git a/tests/fax/pjsip/tests.yaml b/tests/fax/pjsip/tests.yaml</span><br><span>index 6d7b1ac..fafb797 100644</span><br><span>--- a/tests/fax/pjsip/tests.yaml</span><br><span>+++ b/tests/fax/pjsip/tests.yaml</span><br><span>@@ -4,6 +4,7 @@</span><br><span> - test: 'directmedia_reinvite_t38'</span><br><span> - test: 'gateway_g711_t38'</span><br><span> - test: 'gateway_native_t38'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'gateway_t38_g711_rx'</span><br><span> - test: 'gateway_t38_g711_tx'</span><br><span> - test: 't38'</span><br><span> - test: 't38_1xx_response'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/9350">change 9350</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/9350"/><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-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ie12ef47afaa6a0cfba13d24cc3f78ed678b81cbf </div>
<div style="display:none"> Gerrit-Change-Number: 9350 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Richard Mudgett <rmudgett@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </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>