[asterisk-commits] file: testsuite/asterisk/trunk r5371 - in /asterisk/trunk: lib/python/asteris...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 7 09:19:07 CDT 2014


Author: file
Date: Thu Aug  7 09:19:03 2014
New Revision: 5371

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5371
Log:
Add a test for device state publication sending and receiving.

ASTERISK-24115 #close
Reported by: Matt Jordan

Review: https://reviewboard.asterisk.org/r/3869/

Added:
    asterisk/trunk/tests/channels/pjsip/publish/
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf   (with props)
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf   (with props)
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf   (with props)
    asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml   (with props)
    asterisk/trunk/tests/channels/pjsip/publish/tests.yaml   (with props)
Modified:
    asterisk/trunk/lib/python/asterisk/ami.py
    asterisk/trunk/tests/channels/pjsip/tests.yaml

Modified: asterisk/trunk/lib/python/asterisk/ami.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/ami.py?view=diff&rev=5371&r1=5370&r2=5371
==============================================================================
--- asterisk/trunk/lib/python/asterisk/ami.py (original)
+++ asterisk/trunk/lib/python/asterisk/ami.py Thu Aug  7 09:19:03 2014
@@ -36,6 +36,7 @@
         self.match_conditions = conditions['match']
         self.nonmatch_conditions = conditions.get('nomatch', {})
         self.ids = instance_config['id'].split(',') if 'id' in instance_config else ['0']
+        self.action = instance_config['action'] if 'action' in instance_config else 'none'
         self.config = instance_config
         self.passed = True
         self._registered = False
@@ -156,6 +157,14 @@
         # types to determine how to proceed
         for observer in self._event_observers:
             observer(ami, event)
+
+        # If this event instance has met the minimum number execute any specified action
+        # Note that if min is 0 this will never get reached, so something else must
+        # terminate the test
+        if self.count['event'] == self.count['min']:
+            if self.action == 'stop':
+                self.test_object.stop_reactor()
+
         return self.event_callback(ami, event)
 
     def check_result(self, callback_param):

Added: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf Thu Aug  7 09:19:03 2014
@@ -1,0 +1,11 @@
+[default]
+exten => presence,hint,Custom:presence
+
+exten => change_state,1,Set(DEVICE_STATE(Custom:presence)=NOT_INUSE)
+	same => n,Set(DEVICE_STATE(Custom:presence)=RINGING)
+	same => n,Set(DEVICE_STATE(Custom:presence)=INUSE)
+	same => n,Set(DEVICE_STATE(Custom:presence)=ONHOLD)
+
+exten => dummy,1,Answer
+	same => n,Echo
+

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf Thu Aug  7 09:19:03 2014
@@ -1,0 +1,9 @@
+[main-transport]
+type=transport
+bind = 127.0.0.1:5060
+
+[ast2]
+type=outbound-publish
+server_uri=sip:ast1 at 127.0.0.1:5061
+event=asterisk-devicestate
+ at device_state_filter=Custom:presence

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast1/pjsip.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf Thu Aug  7 09:19:03 2014
@@ -1,0 +1,2 @@
+[default]
+exten => presence,hint,Custom:presence

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf Thu Aug  7 09:19:03 2014
@@ -1,0 +1,14 @@
+[main-transport]
+type=transport
+bind = 127.0.0.1:5061
+
+[ast1]
+type=endpoint
+
+[ast1]
+type=inbound-publication
+event_asterisk-devicestate=ast1
+
+[ast1]
+type=asterisk-publication
+device_state=yes

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/configs/ast2/pjsip.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml Thu Aug  7 09:19:03 2014
@@ -1,0 +1,69 @@
+testinfo:
+    summary: 'Ensure that outbound and inbound Asterisk event PUBLISH messages are handled.'
+    description: |
+        'Two Asterisk instances are started. One is configured to send Asterisk event PUBLISH
+        messages to the other while the other is configured to receive them. Device state
+        changes are queued up. If the PUBLISH messages are not received on the second
+        Asterisk instance the test fails.'
+
+properties:
+    minversion: '13.0.0'
+    dependencies:
+        - sipp :
+            version : 'v3.0'
+        - python: 'twisted'
+        - python: 'starpy'
+        - asterisk: 'res_pjsip'
+        - asterisk: 'res_pjsip_outbound_publish'
+        - asterisk: 'res_pjsip_publish_asterisk'
+    tags:
+        - pjsip
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: 'test_case.TestCaseModule'
+    modules:
+        -
+            config-section: originator
+            typename: 'pluggable_modules.Originator'
+        -
+            config-section: ami-config
+            typename: 'ami.AMIEventModule'
+
+test-object-config:
+    asterisk-instances: 2
+    connect-ami: True
+
+originator:
+    trigger: 'ami_connect'
+    id: '0'
+    channel: 'Local/change_state at default'
+    context: 'default'
+    exten: 'dummy'
+    priority: '1'
+    async: 'True'
+
+ami-config:
+    -
+        id: '1'
+        type: 'orderedheadermatch'
+        conditions:
+            match:
+                Event: 'DeviceStateChange'
+                Device: 'Custom:presence'
+        requirements:
+            -
+                match:
+                    State: 'NOT_INUSE'
+            -
+                match:
+                    State: 'RINGING'
+            -
+                match:
+                    State: 'INUSE'
+            -
+                match:
+                    State: 'ONHOLD'
+        count: '4'
+        action: 'stop'

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/asterisk_event_devicestate/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/pjsip/publish/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/publish/tests.yaml?view=auto&rev=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/publish/tests.yaml (added)
+++ asterisk/trunk/tests/channels/pjsip/publish/tests.yaml Thu Aug  7 09:19:03 2014
@@ -1,0 +1,3 @@
+# Enter tests here in the order they should be considered for execution:
+tests:
+    - test: 'asterisk_event_devicestate'

Propchange: asterisk/trunk/tests/channels/pjsip/publish/tests.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/pjsip/publish/tests.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/pjsip/publish/tests.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/channels/pjsip/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/tests.yaml?view=diff&rev=5371&r1=5370&r2=5371
==============================================================================
--- asterisk/trunk/tests/channels/pjsip/tests.yaml (original)
+++ asterisk/trunk/tests/channels/pjsip/tests.yaml Thu Aug  7 09:19:03 2014
@@ -24,3 +24,4 @@
     - test: 'call_pickup'
     - dir: 'video_calls'
     - test: 'accountcode'
+    - dir: 'publish'




More information about the asterisk-commits mailing list