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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pjsip/basic_calls: Add a few more nominal and off nominal basic calls tests<br><br>Added the following new basic calls tests:<br><br>pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous<br>pjsip/basic_calls/incoming/off-nominal/invalid_number/<br>pjsip/basic_calls/outgoing/nominal/dialstring<br>pjsip/basic_calls/outgoing/nominal/from_user<br>pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at<br>pjsip/basic_calls/two_parties/nominal/two_servers/<br>pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/<br><br>Change-Id: Iae9854ea496d7241c1a4f9cd551be2ca1fb01078<br>---<br>A tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/extensions.conf<br>A tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/sipp/anonymous_invite.xml<br>A tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/test-config.yaml<br>M tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/tests.yaml<br>A tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/extensions.conf<br>A tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/modules.conf.inc<br>A tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/sipp/inbound_to_asterisk.xml<br>A tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/test-config.yaml<br>M tests/channels/pjsip/basic_calls/incoming/off-nominal/tests.yaml<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas-checkuser.xml<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas.xml<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/test-config.yaml<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/sipp/check_from_user.xml<br>A tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/test-config.yaml<br>M tests/channels/pjsip/basic_calls/outgoing/nominal/tests.yaml<br>A tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/extensions.conf<br>A tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/sipp/bob.xml<br>A tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/test-config.yaml<br>M tests/channels/pjsip/basic_calls/outgoing/off-nominal/tests.yaml<br>M tests/channels/pjsip/basic_calls/two_parties/nominal/tests.yaml<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/extensions.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/extensions.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/pjsip.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/extensions.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/pjsip.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/extensions.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/pjsip.conf<br>A tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/test-config.yaml<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/extensions.conf<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/alice.xml<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/bob.xml<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/test-config.yaml<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/tests.yaml<br>A tests/channels/pjsip/basic_calls/two_parties/off-nominal/tests.yaml<br>M tests/channels/pjsip/basic_calls/two_parties/tests.yaml<br>42 files changed, 1,216 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/extensions.conf b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..a5bc80f</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,4 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same  => n,Echo()</span><br><span style="color: hsl(120, 100%, 40%);">+same  => n,Hangup()</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f35f723</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,16 @@</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</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%);">+[endpoint-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[anonymous](endpoint-template)</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/sipp/anonymous_invite.xml b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/sipp/anonymous_invite.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..10b7a2b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/sipp/anonymous_invite.xml</span><br><span>@@ -0,0 +1,72 @@</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="INVITE Anon"></span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      INVITE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: test1 <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: test <sip:test@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:test@[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%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      User-Agent: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="100" optional="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" rtd="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      ACK sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: test1 <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:test@[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%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: test1 <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 2 BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:test@[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%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" crlf="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/test-config.yaml b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..accf9d7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/ident_by_anonymous/test-config.yaml</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure that the anonymous endpoint works.'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        Test to make sure anonymous calls are allowed when an anonymous</span><br><span style="color: hsl(120, 100%, 40%);">+        endpoint has been defined.</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%);">+    memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+    fail-on-any: False</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'anonymous_invite.xml', '-i': '127.0.0.1', '-p': '5061', '-s': 'anon'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : 'twisted'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/tests.yaml b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/tests.yaml</span><br><span>index 68e17f6..812c134 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/nominal/unauthed/tests.yaml</span><br><span>@@ -1,4 +1,5 @@</span><br><span> tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'ident_by_anonymous'</span><br><span>     - test: 'ident_by_host'</span><br><span>     - test: 'ident_by_host_only'</span><br><span>     - test: 'ident_by_user'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/extensions.conf b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..cf73312</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+; SIPp will dial 1234 which doesn't exist here.</span><br><span style="color: hsl(120, 100%, 40%);">+exten => 1001,1,NoOp(=== Just so we have an extension defined ===)</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/modules.conf.inc b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/modules.conf.inc</span><br><span>new file mode 100644</span><br><span>index 0000000..ad9aeb1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/modules.conf.inc</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+; Don't load pbx_lua.so as the extensions.lua sample file conflicts with this test</span><br><span style="color: hsl(120, 100%, 40%);">+noload => pbx_lua.so</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+; Might as well not load AEL modules either to prevent the possiblity of future conflicts</span><br><span style="color: hsl(120, 100%, 40%);">+noload => pbx_ael.so</span><br><span style="color: hsl(120, 100%, 40%);">+noload => res_ael_share.so</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..fb37d36</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,23 @@</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</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%);">+</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>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/sipp/inbound_to_asterisk.xml b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/sipp/inbound_to_asterisk.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..0b7d317</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/sipp/inbound_to_asterisk.xml</span><br><span>@@ -0,0 +1,54 @@</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="Inbound call to invalid extension"></span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      INVITE sip:1234@[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: "alice" <sip:alice@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: <sip:1234@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:alice@[local_ip]:[local_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%);">+      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=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 8 0</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%);">+    ]]></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="404" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      ACK sip:1234@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: sipp <sip:alice@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: sut <sip:alice@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:sipp@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/test-config.yaml b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..87c58b5</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/invalid_number/test-config.yaml</span><br><span>@@ -0,0 +1,27 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure that Asterisk responds to a request for an invalid number with a 404.'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        Make sure that Asterisk responds with a SIP 404 to an incoming request</span><br><span style="color: hsl(120, 100%, 40%);">+        for a dialed number that doesn't exist in the dial plan.</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-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-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': 'inbound_to_asterisk.xml', '-p': '5061'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : 'twisted'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/incoming/off-nominal/tests.yaml b/tests/channels/pjsip/basic_calls/incoming/off-nominal/tests.yaml</span><br><span>index 33856eb..9672628 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/incoming/off-nominal/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/incoming/off-nominal/tests.yaml</span><br><span>@@ -1,6 +1,7 @@</span><br><span> tests:</span><br><span>     - dir: 'userpass'</span><br><span>     - test: 'incompatible_codecs'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'invalid_number'</span><br><span>     - test: 'invalid_sdp'</span><br><span>     - test: 'md5'</span><br><span>     - test: 'unknown_user'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..1df967c</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,23 @@</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</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:uas@127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=uas</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas-checkuser.xml b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas-checkuser.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..6cb7a89</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas-checkuser.xml</span><br><span>@@ -0,0 +1,83 @@</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="Check request user"></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+      <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+      <action></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+              header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp="INVITE sip:foo@.*"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="msg"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              assign_to="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+          <strcmp assign_to="1" variable="1" value="" /></span><br><span style="color: hsl(120, 100%, 40%);">+      </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 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=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[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=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sip:sipp@[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas.xml b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..942607e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/sipp/uas.xml</span><br><span>@@ -0,0 +1,78 @@</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="Check request"></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+      <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+      <action></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+              header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+      </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 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=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[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=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sip:sipp@[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/test-config.yaml b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..630713a</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/dialstring/test-config.yaml</span><br><span>@@ -0,0 +1,53 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Test that the PJSIP dial strings result in the call being rightly routed'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'See summary'</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-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config1</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config2</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config3</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config1:</span><br><span style="color: hsl(120, 100%, 40%);">+    scenario-trigger-after: 1</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/uas'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config2:</span><br><span style="color: hsl(120, 100%, 40%);">+    scenario-trigger-after: 1</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/foo@uas'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config3:</span><br><span style="color: hsl(120, 100%, 40%);">+    scenario-trigger-after: 1</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/uas/sip:foo@127.0.0.1:5062'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-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': 'uas.xml', '-p': '5061', '-s': 'uas'} }</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'uas-checkuser.xml', '-p': '5061', '-s': 'foo'} }</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'uas-checkuser.xml', '-p': '5062', '-s': 'foo'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp:</span><br><span style="color: hsl(120, 100%, 40%);">+            version: 'v3.1'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..cced85d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,24 @@</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</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%);">+</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%);">+from_user=banana</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/sipp/check_from_user.xml b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/sipp/check_from_user.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..a592ae7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/sipp/check_from_user.xml</span><br><span>@@ -0,0 +1,84 @@</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="Check from user"></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+      <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+      <action></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+              header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+              search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+              check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+              assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+          <ereg regexp=".*<sip:banana@.*"</span><br><span style="color: hsl(120, 100%, 40%);">+              header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+              seach_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="1"/></span><br><span style="color: hsl(120, 100%, 40%);">+          <strcmp assign_to="1" variable="1" value=""/></span><br><span style="color: hsl(120, 100%, 40%);">+      </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 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=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[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=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sip:sipp@[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Performance Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/test-config.yaml b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..eb1c366</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/from_user/test-config.yaml</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Test that the from_user setting works properly'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Send an outgoing call with from_user set on the definition, and then</span><br><span style="color: hsl(120, 100%, 40%);">+        validate it in the sipp scenario.'</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-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-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': 'check_from_user.xml', '-s': 'alice', '-p': '5061'} }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/alice'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp:</span><br><span style="color: hsl(120, 100%, 40%);">+            version: 'v3.1'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/nominal/tests.yaml b/tests/channels/pjsip/basic_calls/outgoing/nominal/tests.yaml</span><br><span>index 543a17a..08a822c 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/outgoing/nominal/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/nominal/tests.yaml</span><br><span>@@ -1,6 +1,8 @@</span><br><span> tests:</span><br><span>     - test: 'playback'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'dialstring'</span><br><span>     - test: 'echo'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'from_user'</span><br><span>     - test: 'auth'</span><br><span>     - test: 'nat'</span><br><span>     - test: 'peer_in_dialog_auths'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/extensions.conf b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e87bbe7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => s,1,Set(state=${DEVICE_STATE(PJSIP/bob)})</span><br><span style="color: hsl(120, 100%, 40%);">+          same => n,Verbose(0,The dev is equal to ${state})</span><br><span style="color: hsl(120, 100%, 40%);">+          same => n,UserEvent(devicestate,device: PJSIP/bob,state: ${DEVICE_STATE(PJSIP/bob)})</span><br><span style="color: hsl(120, 100%, 40%);">+       same => n,GotoIf($["${state}" = "NOT_INUSE"]?:busy)</span><br><span style="color: hsl(120, 100%, 40%);">+    same => n,Dial(PJSIP/bob)</span><br><span style="color: hsl(120, 100%, 40%);">+          same => n(busy),Hangup()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..fae3f5a</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</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</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%);">+direct_media=false</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:bob@127.0.0.1:5061</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%);">+device_state_busy_at=1</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/sipp/bob.xml b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..bd978a6</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/sipp/bob.xml</span><br><span>@@ -0,0 +1,64 @@</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 answers"></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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        SIP/2.0 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:];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:bob@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+        Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_To:];tag=[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:bob@[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=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+        s=-</span><br><span style="color: hsl(120, 100%, 40%);">+        c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+        t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+        m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+        a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</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 retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+        [last_To:]</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:bob@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+        ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/test-config.yaml b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..5e4ac70</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/bob_is_busy_at/test-config.yaml</span><br><span>@@ -0,0 +1,67 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure the device_state_busy_at option works'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'An endpoint is configured with a device_state_busy_at set to one. Two</span><br><span style="color: hsl(120, 100%, 40%);">+        calls are made to the endpoint's extension. The first one succeeds,</span><br><span style="color: hsl(120, 100%, 40%);">+        while the second one gets a "busy". Device state is checked through</span><br><span style="color: hsl(120, 100%, 40%);">+        raised user events.'</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-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    reactor_timeout: 10</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': '5061' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+            type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    Event: 'UserEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                    state: 'NOT_INUSE'</span><br><span style="color: hsl(120, 100%, 40%);">+            requirements:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    device: 'PJSIP/bob'</span><br><span style="color: hsl(120, 100%, 40%);">+            count: 1</span><br><span style="color: hsl(120, 100%, 40%);">+        ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+            action:</span><br><span style="color: hsl(120, 100%, 40%);">+               action: 'Originate'</span><br><span style="color: hsl(120, 100%, 40%);">+               channel: 'Local/s'</span><br><span style="color: hsl(120, 100%, 40%);">+               application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+            type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    Event: 'UserEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                    state: 'BUSY'</span><br><span style="color: hsl(120, 100%, 40%);">+            requirements:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    device: 'PJSIP/bob'</span><br><span style="color: hsl(120, 100%, 40%);">+            count: 1</span><br><span style="color: hsl(120, 100%, 40%);">+        ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+            action:</span><br><span style="color: hsl(120, 100%, 40%);">+                action: 'Hangup'</span><br><span style="color: hsl(120, 100%, 40%);">+                channel: '/^PJSIP/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%);">+        - python: 'twisted'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/tests.yaml b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/tests.yaml</span><br><span>index 45fcb12..be7ad6f 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/outgoing/off-nominal/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/outgoing/off-nominal/tests.yaml</span><br><span>@@ -2,5 +2,6 @@</span><br><span>     - test: 'bob_does_not_exist'</span><br><span>     - test: 'bob_does_not_answer'</span><br><span>     - test: 'bob_is_busy'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'bob_is_busy_at'</span><br><span>     - test: 'bob_incompatible_codecs'</span><br><span>     - test: 'call_canceled'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/tests.yaml b/tests/channels/pjsip/basic_calls/two_parties/nominal/tests.yaml</span><br><span>index 0386723..29b5255 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/two_parties/nominal/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/tests.yaml</span><br><span>@@ -1,2 +1,3 @@</span><br><span> tests:</span><br><span>     - dir: 'alice_initiated'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'two_servers'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/extensions.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..1d1315d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/bob@uut2)</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..06a19dd</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,26 @@</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%);">+media_address=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uut2](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:uut2@127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uut2](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=uut2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](endpoint-template)</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/extensions.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e92876c</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/extensions.conf</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/bob)</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/pjsip.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..47439ef</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast2/pjsip.conf</span><br><span>@@ -0,0 +1,27 @@</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:5061</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%);">+media_address=127.0.0.1</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%);">+</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>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/extensions.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e567f42</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/extensions.conf</span><br><span>@@ -0,0 +1,15 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,BackgroundDetect(tt-weasels,1,20,,5000)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,NoOp(Talking was NOT detected! Trying again)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,BackgroundDetect(tt-weasels,1,20,,5000)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,NoOp(Talking was NOT detected!)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,UserEvent(TalkDetect, result: fail)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+; If talking is detected then it jumps here</span><br><span style="color: hsl(120, 100%, 40%);">+exten => talk,1,NoOp(Talking was detected!)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,UserEvent(TalkDetect, result: pass)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Playback(tt-weasels)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Wait(2)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/pjsip.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..53ac0cc</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast3/pjsip.conf</span><br><span>@@ -0,0 +1,21 @@</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:5062</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%);">+media_address=127.0.0.1</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>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/extensions.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..c170511</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/extensions.conf</span><br><span>@@ -0,0 +1,15 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => start,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,BackgroundDetect(tt-weasels,1,20,,5000)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,NoOp(Talking was NOT detected! Trying again)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,BackgroundDetect(tt-weasels,1,20,,5000)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,NoOp(Talking was NOT detected!)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,UserEvent(TalkDetect, result: fail)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+; If talking is detected then it jumps here</span><br><span style="color: hsl(120, 100%, 40%);">+exten => talk,1,NoOp(Talking was detected!)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,UserEvent(TalkDetect, result: pass)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Playback(tt-weasels)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Wait(2)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Hangup()</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/pjsip.conf b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e09bb6b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/configs/ast4/pjsip.conf</span><br><span>@@ -0,0 +1,26 @@</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:5063</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%);">+media_address=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uut1](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:uut1@127.0.0.1:5060</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uut1](endpoint-template)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=uut1</span><br><span style="color: hsl(120, 100%, 40%);">+from_user=alice</span><br><span style="color: hsl(120, 100%, 40%);">+from_domain=127.0.0.1</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/test-config.yaml b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..c8221ed</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/nominal/two_servers/test-config.yaml</span><br><span>@@ -0,0 +1,74 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Tests basic two party calls across two Asterisk servers'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Run four instances of Asterisk, uut1 (ast1), uut2 (ast2), bob (ast3),</span><br><span style="color: hsl(120, 100%, 40%);">+        and alice (ast4) that test two party calls across two Asterisk servers.</span><br><span style="color: hsl(120, 100%, 40%);">+        Alice initiates the call through uut1 and uut2 to bob. Both alice and</span><br><span style="color: hsl(120, 100%, 40%);">+        bob send, and listen for audio in order to ensure audio is received.'</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: 'test_case.TestCaseModule'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: originator-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: 'ami-config'</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'ami.AMIEventModule'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: hangup-monitor</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.HangupMonitor'</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%);">+    reactor-timeout: 20</span><br><span style="color: hsl(120, 100%, 40%);">+    asterisk-instances: 4</span><br><span style="color: hsl(120, 100%, 40%);">+    connect-ami: True</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+originator-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    # Originate call from Alice</span><br><span style="color: hsl(120, 100%, 40%);">+    id: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+    trigger: 'ami_connect'</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/bob@uut1'</span><br><span style="color: hsl(120, 100%, 40%);">+    context: 'default'</span><br><span style="color: hsl(120, 100%, 40%);">+    exten: 'start'</span><br><span style="color: hsl(120, 100%, 40%);">+    priority: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    # Alice events</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '2'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'UserEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                UserEvent: 'TalkDetect'</span><br><span style="color: hsl(120, 100%, 40%);">+        requirements:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                result: 'pass'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    # Bob events</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+        id: '3'</span><br><span style="color: hsl(120, 100%, 40%);">+        conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                Event: 'UserEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                UserEvent: 'TalkDetect'</span><br><span style="color: hsl(120, 100%, 40%);">+        requirements:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                result: 'pass'</span><br><span style="color: hsl(120, 100%, 40%);">+        count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+hangup-monitor:</span><br><span style="color: hsl(120, 100%, 40%);">+    ids: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'twisted'</span><br><span style="color: hsl(120, 100%, 40%);">+        - python: 'starpy'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/extensions.conf b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..80b2608</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => bob,1,Dial(PJSIP/bob)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/pjsip.conf b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..4a68025</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,45 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp](local-transport-template)</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[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%);">+[auth-template](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=auth</span><br><span style="color: hsl(120, 100%, 40%);">+password=swordfish</span><br><span style="color: hsl(120, 100%, 40%);">+realm=asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[endpoint-template-ipv4](!)</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,alaw</span><br><span style="color: hsl(120, 100%, 40%);">+media_address=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](aor-template)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:alice@127.0.0.1:5062</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](auth-template)</span><br><span style="color: hsl(120, 100%, 40%);">+username=alice</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alice](endpoint-template-ipv4)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=alice</span><br><span style="color: hsl(120, 100%, 40%);">+auth=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:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](auth-template)</span><br><span style="color: hsl(120, 100%, 40%);">+username=bob</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[bob](endpoint-template-ipv4)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=bob</span><br><span style="color: hsl(120, 100%, 40%);">+outbound_auth=bob</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/alice.xml b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/alice.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..8b71207</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/alice.xml</span><br><span>@@ -0,0 +1,81 @@</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="Send call and expect a 503"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      INVITE sip:bob@[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:alice@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: <sip:bob@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:alice@[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%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      User-Agent: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="401" auth="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      ACK sip:bob@[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:alice@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: <sip:bob@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+      Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:alice@[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%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      INVITE sip:bob@[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:alice@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: <sip:bob@[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: 2 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:alice@[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%);">+      [authentication]</span><br><span style="color: hsl(120, 100%, 40%);">+      Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      User-Agent: Test</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="100" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="503" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(120, 100%, 40%);">+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(120, 100%, 40%);">+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/bob.xml b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/bob.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..993e2e1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/sipp/bob.xml</span><br><span>@@ -0,0 +1,51 @@</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="Reject authentication with a 403"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 401 Unauthorized</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="47ebe028cda119c35d4877b383027d28da013815"</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%);">+  </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%);">+  <!-- We don't verify the authentication because we just want to send a 403 back to Asterisk for this test --></span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE" crlf="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 403 Forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></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%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the response time repartition table (unit is ms)   --></span><br><span style="color: hsl(120, 100%, 40%);">+  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <!-- definition of the call length repartition table (unit is ms)     --></span><br><span style="color: hsl(120, 100%, 40%);">+  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/test-config.yaml b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..9582570</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/bob_rejects/test-config.yaml</span><br><span>@@ -0,0 +1,41 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Ensure Asterisk sends a 503 to caller upon outbound auth failure'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+         'Two instances of SIPp are executed with "alice" being the caller and</span><br><span style="color: hsl(120, 100%, 40%);">+          "bob" being the callee. The inbound call from Alice is authenticated,</span><br><span style="color: hsl(120, 100%, 40%);">+          bob is called, and bob rejects the authentication with a 403. The</span><br><span style="color: hsl(120, 100%, 40%);">+          SIPp scenario for alice expects to receive a 503 from Asterisk.'</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%);">+    fail-on-any: False</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                # Bob receives call and rejects auth by sending a 403</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': { 'scenario': 'bob.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-i': '127.0.0.1',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-p': '5061',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-timeout': '10s'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-timeout_error'] }</span><br><span style="color: hsl(120, 100%, 40%);">+                # Alice sends call and ensures a 503 is received</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': { 'scenario': 'alice.xml',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-i': '127.0.0.1',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-p': '5062',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-au': 'alice',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-ap': 'swordfish',</span><br><span style="color: hsl(120, 100%, 40%);">+                                  '-timeout': '10s'},</span><br><span style="color: hsl(120, 100%, 40%);">+                    'ordered-args': ['-timeout_error'] }</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.3'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk: 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/tests.yaml b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..86b4835</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/authed/tests.yaml</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'bob_rejects'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/off-nominal/tests.yaml b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..6660529</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/off-nominal/tests.yaml</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - dir: 'authed'</span><br><span>diff --git a/tests/channels/pjsip/basic_calls/two_parties/tests.yaml b/tests/channels/pjsip/basic_calls/two_parties/tests.yaml</span><br><span>index 0b8c229..cec47df 100644</span><br><span>--- a/tests/channels/pjsip/basic_calls/two_parties/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/basic_calls/two_parties/tests.yaml</span><br><span>@@ -1,2 +1,3 @@</span><br><span> tests:</span><br><span>     - dir: 'nominal'</span><br><span style="color: hsl(120, 100%, 40%);">+    - dir: 'off-nominal'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/11566">change 11566</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/+/11566"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iae9854ea496d7241c1a4f9cd551be2ca1fb01078 </div>
<div style="display:none"> Gerrit-Change-Number: 11566 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>