<p>Kevin Harwell has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/13444">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">fax/pjsip/maxdatagram: Add tests for the maxdatagram configuration option<br><br>This patch adds four tests that ensure the "T38FaxMaxDatagram" SDP attribute<br>is properly set when the "t38_udptl_maxdatagram" configuration option is used.<br><br>none - option not set on either endpoint<br>callee - option only set on callee endpoint<br>caller - option only set on caller endpoint<br>both - option set on both endpoints<br><br>Change-Id: I2bdca86602d74c28dde2db13686bdf5515331f44<br>---<br>A tests/fax/pjsip/maxdatagram/both/configs/ast1/extensions.conf<br>A tests/fax/pjsip/maxdatagram/both/configs/ast1/pjsip.conf<br>A tests/fax/pjsip/maxdatagram/both/sipp/alice.xml<br>A tests/fax/pjsip/maxdatagram/both/sipp/bob.xml<br>A tests/fax/pjsip/maxdatagram/both/test-config.yaml<br>A tests/fax/pjsip/maxdatagram/callee/configs/ast1/extensions.conf<br>A tests/fax/pjsip/maxdatagram/callee/configs/ast1/pjsip.conf<br>A tests/fax/pjsip/maxdatagram/callee/sipp/alice.xml<br>A tests/fax/pjsip/maxdatagram/callee/sipp/bob.xml<br>A tests/fax/pjsip/maxdatagram/callee/test-config.yaml<br>A tests/fax/pjsip/maxdatagram/caller/configs/ast1/extensions.conf<br>A tests/fax/pjsip/maxdatagram/caller/configs/ast1/pjsip.conf<br>A tests/fax/pjsip/maxdatagram/caller/sipp/alice.xml<br>A tests/fax/pjsip/maxdatagram/caller/sipp/bob.xml<br>A tests/fax/pjsip/maxdatagram/caller/test-config.yaml<br>A tests/fax/pjsip/maxdatagram/none/configs/ast1/extensions.conf<br>A tests/fax/pjsip/maxdatagram/none/configs/ast1/pjsip.conf<br>A tests/fax/pjsip/maxdatagram/none/sipp/alice.xml<br>A tests/fax/pjsip/maxdatagram/none/sipp/bob.xml<br>A tests/fax/pjsip/maxdatagram/none/test-config.yaml<br>A tests/fax/pjsip/maxdatagram/tests.yaml<br>M tests/fax/pjsip/tests.yaml<br>22 files changed, 1,431 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/44/13444/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/fax/pjsip/maxdatagram/both/configs/ast1/extensions.conf b/tests/fax/pjsip/maxdatagram/both/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..b237faf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/both/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,5 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/${EXTEN})</span><br><span style="color: hsl(120, 100%, 40%);">+    same => n,Hangup()</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/both/configs/ast1/pjsip.conf b/tests/fax/pjsip/maxdatagram/both/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..aa4e42c</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/both/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,34 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[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%);">+[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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-udp](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%);">+[aor-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</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%);">+direct_media=false</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:alice@127.0.0.1:5061</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%);">+t38_udptl_maxdatagram=200</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:bob@127.0.0.1:5062</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%);">+t38_udptl_maxdatagram=300</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/both/sipp/alice.xml b/tests/fax/pjsip/maxdatagram/both/sipp/alice.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..f505892</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/both/sipp/alice.xml</span><br><span>@@ -0,0 +1,138 @@</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="alice"></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%);">+                  INVITE sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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=- 53256789 2345687132 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 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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 response="180" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="183" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="200" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <!-- Reinvite received for T38 --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+               <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the configured value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                   <ereg regexp=".*(T38FaxMaxDatagram:299)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <!-- Reinvite received to switch back to audio --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="BYE" /></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%);">+                  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:[service]@[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%);">+        </send></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/fax/pjsip/maxdatagram/both/sipp/bob.xml b/tests/fax/pjsip/maxdatagram/both/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..6dd09bf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/both/sipp/bob.xml</span><br><span>@@ -0,0 +1,149 @@</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="bob"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INVITE"></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%);">+ <Reference variables="remote_tag" /></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%);">+                  SIP/2.0 100 Trying</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:[service]@[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%);">+        </send></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%);">+                  SIP/2.0 180 Ringing</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=[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:[service]@[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%);">+        </send></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <pause milliseconds="1000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        <!-- Reinvite to set up T38 Fax session --></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%);">+                        INVITE sip:[exten]@[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=[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] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     v=0</span><br><span style="color: hsl(120, 100%, 40%);">+                   o=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv response="200"></span><br><span style="color: hsl(120, 100%, 40%);">+         <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the configured value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                   <ereg regexp=".*(T38FaxMaxDatagram:199)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <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%);">+                        BYE sip:[exten]@[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: <sip:[service]@[local_ip]:[local_port]>;tag=[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:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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" /></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/fax/pjsip/maxdatagram/both/test-config.yaml b/tests/fax/pjsip/maxdatagram/both/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..c0635a4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/both/test-config.yaml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Make sure the correct max datagram is sent in SDPs'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Both the caller and callee t38_udptl_maxdatagram endpoint configuration</span><br><span style="color: hsl(120, 100%, 40%);">+        options are set to override what's declared in the SDP.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    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': 'bob.xml', '-p':'5062', '-s': 'bob'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'alice'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'alice.xml', '-p':'5061', '-s': 'alice'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'bob'] }</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.5'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax_spandsp'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</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>diff --git a/tests/fax/pjsip/maxdatagram/callee/configs/ast1/extensions.conf b/tests/fax/pjsip/maxdatagram/callee/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..b237faf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/callee/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,5 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/${EXTEN})</span><br><span style="color: hsl(120, 100%, 40%);">+       same => n,Hangup()</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/callee/configs/ast1/pjsip.conf b/tests/fax/pjsip/maxdatagram/callee/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..0580089</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/callee/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[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%);">+[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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-udp](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%);">+[aor-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</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%);">+direct_media=false</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:alice@127.0.0.1:5061</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%);">+[bob](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:bob@127.0.0.1:5062</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%);">+t38_udptl_maxdatagram=300</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/callee/sipp/alice.xml b/tests/fax/pjsip/maxdatagram/callee/sipp/alice.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..f505892</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/callee/sipp/alice.xml</span><br><span>@@ -0,0 +1,138 @@</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="alice"></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%);">+                  INVITE sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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=- 53256789 2345687132 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 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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 response="180" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="183" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="200" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <!-- Reinvite received for T38 --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+               <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the configured value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                   <ereg regexp=".*(T38FaxMaxDatagram:299)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <!-- Reinvite received to switch back to audio --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="BYE" /></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%);">+                  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:[service]@[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%);">+        </send></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/fax/pjsip/maxdatagram/callee/sipp/bob.xml b/tests/fax/pjsip/maxdatagram/callee/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..b2f13d3</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/callee/sipp/bob.xml</span><br><span>@@ -0,0 +1,149 @@</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="bob"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv request="INVITE"></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%);">+ <Reference variables="remote_tag" /></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%);">+                  SIP/2.0 100 Trying</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:[service]@[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%);">+        </send></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%);">+                  SIP/2.0 180 Ringing</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=[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:[service]@[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%);">+        </send></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <pause milliseconds="1000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        <!-- Reinvite to set up T38 Fax session --></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%);">+                        INVITE sip:[exten]@[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=[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] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     v=0</span><br><span style="color: hsl(120, 100%, 40%);">+                   o=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv response="200"></span><br><span style="color: hsl(120, 100%, 40%);">+         <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the SDP value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp=".*(T38FaxMaxDatagram:399)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <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%);">+                        BYE sip:[exten]@[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: <sip:[service]@[local_ip]:[local_port]>;tag=[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:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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" /></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/fax/pjsip/maxdatagram/callee/test-config.yaml b/tests/fax/pjsip/maxdatagram/callee/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..4901361</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/callee/test-config.yaml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Make sure the correct max datagram is sent in SDPs'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'The callee's t38_udptl_maxdatagram endpoint configuration option is set</span><br><span style="color: hsl(120, 100%, 40%);">+        to override what's declared in the SDP.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    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': 'bob.xml', '-p':'5062', '-s': 'bob'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'alice'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'alice.xml', '-p':'5061', '-s': 'alice'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'bob'] }</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.5'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax_spandsp'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</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>diff --git a/tests/fax/pjsip/maxdatagram/caller/configs/ast1/extensions.conf b/tests/fax/pjsip/maxdatagram/caller/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..b237faf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/caller/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,5 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/${EXTEN})</span><br><span style="color: hsl(120, 100%, 40%);">+     same => n,Hangup()</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/caller/configs/ast1/pjsip.conf b/tests/fax/pjsip/maxdatagram/caller/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..bd5e590</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/caller/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,32 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[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%);">+[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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-udp](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%);">+[aor-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</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%);">+direct_media=false</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:alice@127.0.0.1:5061</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%);">+t38_udptl_maxdatagram=200</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:bob@127.0.0.1:5062</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>diff --git a/tests/fax/pjsip/maxdatagram/caller/sipp/alice.xml b/tests/fax/pjsip/maxdatagram/caller/sipp/alice.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..68065d8</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/caller/sipp/alice.xml</span><br><span>@@ -0,0 +1,138 @@</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="alice"></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%);">+                  INVITE sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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=- 53256789 2345687132 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 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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 response="180" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="183" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="200" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <!-- Reinvite received for T38 --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+               <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the SDP value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp=".*(T38FaxMaxDatagram:399)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <!-- Reinvite received to switch back to audio --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="BYE" /></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%);">+                  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:[service]@[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%);">+        </send></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/fax/pjsip/maxdatagram/caller/sipp/bob.xml b/tests/fax/pjsip/maxdatagram/caller/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..6dd09bf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/caller/sipp/bob.xml</span><br><span>@@ -0,0 +1,149 @@</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="bob"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv request="INVITE"></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%);">+ <Reference variables="remote_tag" /></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%);">+                  SIP/2.0 100 Trying</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:[service]@[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%);">+        </send></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%);">+                  SIP/2.0 180 Ringing</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=[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:[service]@[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%);">+        </send></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <pause milliseconds="1000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        <!-- Reinvite to set up T38 Fax session --></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%);">+                        INVITE sip:[exten]@[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=[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] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     v=0</span><br><span style="color: hsl(120, 100%, 40%);">+                   o=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv response="200"></span><br><span style="color: hsl(120, 100%, 40%);">+         <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the configured value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                   <ereg regexp=".*(T38FaxMaxDatagram:199)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <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%);">+                        BYE sip:[exten]@[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: <sip:[service]@[local_ip]:[local_port]>;tag=[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:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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" /></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/fax/pjsip/maxdatagram/caller/test-config.yaml b/tests/fax/pjsip/maxdatagram/caller/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..9870f8b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/caller/test-config.yaml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Make sure the correct max datagram is sent in SDPs'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'The caller's t38_udptl_maxdatagram endpoint configuration option is set</span><br><span style="color: hsl(120, 100%, 40%);">+        to override what's declared in the SDP.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    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': 'bob.xml', '-p':'5062', '-s': 'bob'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'alice'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'alice.xml', '-p':'5061', '-s': 'alice'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'bob'] }</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.5'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax_spandsp'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</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>diff --git a/tests/fax/pjsip/maxdatagram/none/configs/ast1/extensions.conf b/tests/fax/pjsip/maxdatagram/none/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..b237faf</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/none/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,5 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/${EXTEN})</span><br><span style="color: hsl(120, 100%, 40%);">+   same => n,Hangup()</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/none/configs/ast1/pjsip.conf b/tests/fax/pjsip/maxdatagram/none/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..874a4c4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/none/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[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%);">+[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:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-udp](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%);">+[aor-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</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%);">+direct_media=false</span><br><span style="color: hsl(120, 100%, 40%);">+t38_udptl=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:alice@127.0.0.1:5061</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%);">+[bob](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:bob@127.0.0.1:5062</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%);">+</span><br><span>diff --git a/tests/fax/pjsip/maxdatagram/none/sipp/alice.xml b/tests/fax/pjsip/maxdatagram/none/sipp/alice.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..68065d8</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/none/sipp/alice.xml</span><br><span>@@ -0,0 +1,138 @@</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="alice"></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%);">+                  INVITE sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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=- 53256789 2345687132 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 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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 response="180" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="183" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+     <recv response="200" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [exten] <sip:[exten]@[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: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <!-- Reinvite received for T38 --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+               <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the SDP value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp=".*(T38FaxMaxDatagram:399)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       <!-- Reinvite received to switch back to audio --></span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="INVITE" /></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <recv request="BYE" /></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%);">+                  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:[service]@[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%);">+        </send></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/fax/pjsip/maxdatagram/none/sipp/bob.xml b/tests/fax/pjsip/maxdatagram/none/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..b2f13d3</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/none/sipp/bob.xml</span><br><span>@@ -0,0 +1,149 @@</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="bob"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INVITE"></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%);">+ <Reference variables="remote_tag" /></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%);">+                  SIP/2.0 100 Trying</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:[service]@[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%);">+        </send></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%);">+                  SIP/2.0 180 Ringing</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=[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:[service]@[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%);">+        </send></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%);">+                  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=[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:[service]@[local_ip]:[local_port];transport=[transport]></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=- 1324901698 1324901698 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+                     s=Polycom IP Phone</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%);">+                 a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    m=audio [media_port] RTP/AVP 0 101</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=rtpmap:0 PCMU/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%);">+             ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      <pause milliseconds="1000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        <!-- Reinvite to set up T38 Fax session --></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%);">+                        INVITE sip:[exten]@[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=[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] INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                   Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 70</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     v=0</span><br><span style="color: hsl(120, 100%, 40%);">+                   o=- 1324901698 1324901700 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=image 31002 udptl t38</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=sendrecv</span><br><span style="color: hsl(120, 100%, 40%);">+                    a=T38FaxVersion:0</span><br><span style="color: hsl(120, 100%, 40%);">+                     a=T38MaxBitRate:9600</span><br><span style="color: hsl(120, 100%, 40%);">+                  a=T38FaxMaxBuffer:1024</span><br><span style="color: hsl(120, 100%, 40%);">+                        a=T38FaxMaxDatagram:400</span><br><span style="color: hsl(120, 100%, 40%);">+                       a=T38FaxRateManagement:transferredTCF</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   <recv response="200"></span><br><span style="color: hsl(120, 100%, 40%);">+         <action></span><br><span style="color: hsl(120, 100%, 40%);">+                        <!-- Asterisk calculates this value based on the configured value,</span><br><span style="color: hsl(120, 100%, 40%);">+                         and error correction mode. In this scenario we should end up</span><br><span style="color: hsl(120, 100%, 40%);">+                          with one below the SDP value due to rounding. --></span><br><span style="color: hsl(120, 100%, 40%);">+                  <ereg regexp=".*(T38FaxMaxDatagram:399)"</span><br><span style="color: hsl(120, 100%, 40%);">+                         search_in="body"</span><br><span style="color: hsl(120, 100%, 40%);">+                            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+                             assign_to="maxdatagram"/></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%);">+ <Reference variables="maxdatagram" /></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%);">+                  ACK sip:[exten]@[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=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+                       To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+                     Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+                    CSeq: [cseq] ACK</span><br><span style="color: hsl(120, 100%, 40%);">+                      Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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%);">+       <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%);">+                        BYE sip:[exten]@[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: <sip:[service]@[local_ip]:[local_port]>;tag=[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:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+                  Max-Forwards: 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" /></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/fax/pjsip/maxdatagram/none/test-config.yaml b/tests/fax/pjsip/maxdatagram/none/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..4e0e077</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/none/test-config.yaml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Make sure the correct max datagram is sent in SDPs'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'This is a baseline test where neither the caller nor callee sets the</span><br><span style="color: hsl(120, 100%, 40%);">+        t38_udptl_maxdatagram endpoint configuration option.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    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': 'bob.xml', '-p':'5062', '-s': 'bob'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'alice'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'alice.xml', '-p':'5061', '-s': 'alice'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-key', 'exten', 'bob'] }</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.5'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_fax_spandsp'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</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>diff --git a/tests/fax/pjsip/maxdatagram/tests.yaml b/tests/fax/pjsip/maxdatagram/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..91c3948</span><br><span>--- /dev/null</span><br><span>+++ b/tests/fax/pjsip/maxdatagram/tests.yaml</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Enter tests here in the order they should be considered for execution:</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'none'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'callee'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'caller'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'both'</span><br><span>diff --git a/tests/fax/pjsip/tests.yaml b/tests/fax/pjsip/tests.yaml</span><br><span>index fafb797..dd55995 100644</span><br><span>--- a/tests/fax/pjsip/tests.yaml</span><br><span>+++ b/tests/fax/pjsip/tests.yaml</span><br><span>@@ -6,6 +6,7 @@</span><br><span>     - test: 'gateway_native_t38'</span><br><span>     - test: 'gateway_t38_g711_rx'</span><br><span>     - test: 'gateway_t38_g711_tx'</span><br><span style="color: hsl(120, 100%, 40%);">+    - dir: 'maxdatagram'</span><br><span>     - test: 't38'</span><br><span>     - test: 't38_1xx_response'</span><br><span>     - test: 't38_fast_reject'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/13444">change 13444</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/+/13444"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-Change-Id: I2bdca86602d74c28dde2db13686bdf5515331f44 </div>
<div style="display:none"> Gerrit-Change-Number: 13444 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>