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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mwi_devstate:  Add test for res_mwi_devstate<br><br>ASTERISK-28301<br><br>Change-Id: Ia3d84b1261dc7492e433a7a7cc0c858dd125f557<br>---<br>A tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/extensions.conf<br>A tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/subscriptions/mwi/mwi_devstate/sipp/subscribe.xml<br>A tests/channels/pjsip/subscriptions/mwi/mwi_devstate/test-config.yaml<br>M tests/channels/pjsip/subscriptions/mwi/tests.yaml<br>5 files changed, 209 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/extensions.conf b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..d7c3b22</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,7 @@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+; This is how FreePBX does the voicemail hints.</span><br><span style="color: hsl(120, 100%, 40%);">+[app-dialvm]</span><br><span style="color: hsl(120, 100%, 40%);">+exten = alice,hint,MWI:alice@default</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+include = app-dialvm</span><br><span>diff --git a/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/pjsip.conf b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..d780db6</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[local]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+bind=0.0.0.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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[endpoint_t](!)</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+transport=local</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+aors=user1</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+disallow=all</span><br><span style="color: hsl(120, 100%, 40%);">+allow=ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[aor_t](!)</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%);">+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[user1](aor_t)</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:user1@127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[user1](endpoint_t)</span><br><span style="color: hsl(120, 100%, 40%);">+aors=user1</span><br><span>diff --git a/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/sipp/subscribe.xml b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/sipp/subscribe.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..d2c5876</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/sipp/subscribe.xml</span><br><span>@@ -0,0 +1,117 @@</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="Subscribe MWI Presence"></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%);">+        SUBSCRIBE sip:alice@[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];rport;branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+        From: "user1" <sip:user1@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+        To: <sip:alice@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+        Contact: <sip:user1@[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] SUBSCRIBE</span><br><span style="color: hsl(120, 100%, 40%);">+        Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+        Event: presence</span><br><span style="color: hsl(120, 100%, 40%);">+        Expires: 150</span><br><span style="color: hsl(120, 100%, 40%);">+        Supported: replaces, 100rel, timer, norefersub</span><br><span style="color: hsl(120, 100%, 40%);">+        Accept: application/pidf+xml, application/xpidf+xml, application/simple-message-summary</span><br><span style="color: hsl(120, 100%, 40%);">+        Allow-Events: presence, message-summary, refer</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" rtd="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    <!-- Initial NOTIFY upon subscribing --></span><br><span style="color: hsl(120, 100%, 40%);">+    <recv request="NOTIFY" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+        <action></span><br><span style="color: hsl(120, 100%, 40%);">+            <ereg regexp=".*Unavailable.*closed.*" search_in="body" check_it="true" assign_to="0"/></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 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+    </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    <!-- NOTIFY upon MWI state change --></span><br><span style="color: hsl(120, 100%, 40%);">+    <recv request="NOTIFY" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+        <action></span><br><span style="color: hsl(120, 100%, 40%);">+            <ereg regexp=".*On the phone.*open.*" search_in="body" check_it="true" assign_to="0"/></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 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+    </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+        <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+        SUBSCRIBE sip:alice@[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];rport;branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+        From: "user1" <sip:user1@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+        To: <sip:alice@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+        Contact: <sip:user1@[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] SUBSCRIBE</span><br><span style="color: hsl(120, 100%, 40%);">+        Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+        Event: presence</span><br><span style="color: hsl(120, 100%, 40%);">+        Expires: 0</span><br><span style="color: hsl(120, 100%, 40%);">+        Supported: replaces, 100rel, timer, norefersub</span><br><span style="color: hsl(120, 100%, 40%);">+        Accept: application/pidf+xml, application/xpidf+xml, application/simple-message-summary</span><br><span style="color: hsl(120, 100%, 40%);">+        Allow-Events: presence, message-summary, refer</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" rtd="true" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    <!-- Final NOTIFY --></span><br><span style="color: hsl(120, 100%, 40%);">+    <recv request="NOTIFY" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+        <action></span><br><span style="color: hsl(120, 100%, 40%);">+            <ereg regexp=".*On the phone.*open.*" search_in="body" check_it="true" assign_to="0"/></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 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+    </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    <Reference variables="0"/></span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/test-config.yaml b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..6d4569f</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/subscriptions/mwi/mwi_devstate/test-config.yaml</span><br><span>@@ -0,0 +1,58 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Test res_mwi_devstate'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        Tests the ability to subscribe to a voice mailbox with a presence event</span><br><span style="color: hsl(120, 100%, 40%);">+        instead of message-summary. This feature is provided by res_mwi_devstate</span><br><span style="color: hsl(120, 100%, 40%);">+        but the test also requires res_mwi_external_ami to set mailbox state.</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%);">+        - buildoption: 'TEST_FRAMEWORK'</span><br><span style="color: hsl(120, 100%, 40%);">+        - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+            version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_mwi_external'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_mwi_external_ami'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_mwi_devstate'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span style="color: hsl(120, 100%, 40%);">+        - mwi_external</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: sipp-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</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%);">+sipp-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    connect-ami: True</span><br><span style="color: hsl(120, 100%, 40%);">+    reactor-timeout: 15</span><br><span style="color: hsl(120, 100%, 40%);">+    fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+    stop-after-scenarios: True</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'subscribe.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%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    Event: 'TestEvent'</span><br><span style="color: hsl(120, 100%, 40%);">+                    State: 'SUBSCRIPTION_ESTABLISHED'</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%);">+                    AppFile: 'res_pjsip_pubsub.c'</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: 'MWIUpdate'</span><br><span style="color: hsl(120, 100%, 40%);">+                ActionID: '12345'</span><br><span style="color: hsl(120, 100%, 40%);">+                Mailbox: 'alice@default'</span><br><span style="color: hsl(120, 100%, 40%);">+                OldMessages: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+                NewMessages: '1'</span><br><span>diff --git a/tests/channels/pjsip/subscriptions/mwi/tests.yaml b/tests/channels/pjsip/subscriptions/mwi/tests.yaml</span><br><span>index 2769c1e..70b24dd 100644</span><br><span>--- a/tests/channels/pjsip/subscriptions/mwi/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/subscriptions/mwi/tests.yaml</span><br><span>@@ -3,6 +3,7 @@</span><br><span>     - dir: 'unsolicited'</span><br><span>     - test: 'missing_aor'</span><br><span>     - test: 'mwi_aggregate'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'mwi_devstate'</span><br><span>     - test: 'no_accept_header'</span><br><span>     - test: 'sub_setup_teardown'</span><br><span>     - test: 'sub_setup_teardown_drop_options'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/11033">change 11033</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/+/11033"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-Change-Id: Ia3d84b1261dc7492e433a7a7cc0c858dd125f557 </div>
<div style="display:none"> Gerrit-Change-Number: 11033 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>