[asterisk-commits] jrose: testsuite/asterisk/trunk r4044 - in /asterisk/trunk/tests/channels/SIP...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Aug 19 11:42:21 CDT 2013


Author: jrose
Date: Mon Aug 19 11:42:19 2013
New Revision: 4044

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4044
Log:
Testsuite: Update chan_sip hold test for Asterisk 12 and split

The test itself has been split into two variants. The only difference
between these two variants is that directmedia has been disabled for
the basic test while it is enabled for the other. Other than that,
these tests have been changed to read the version of Asterisk in use
and change the events expected for compatability since MOH events
were split into musiconhold_start and musiconhold_stop for
Asterisk 12.

Notably, at the time of this commit, the directmedia test doesn't
work with Asterisk 12 due to bugs in what is most likely the native
RTP bridging code.

(issue ASTERISK-22217)
Reported by: Matt Jordan

Added:
    asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/
      - copied from r4043, asterisk/trunk/tests/channels/SIP/sip_hold/
Modified:
    asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf
    asterisk/trunk/tests/channels/SIP/sip_hold/run-test
    asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/run-test
    asterisk/trunk/tests/channels/SIP/tests.yaml

Modified: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf?view=diff&rev=4044&r1=4043&r2=4044
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf (original)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf Mon Aug 19 11:42:19 2013
@@ -2,6 +2,7 @@
 allowguest=no
 bindaddr=127.0.0.1
 sipdebug = yes
+directmedia = no
 
 [phone_A]
 type=friend

Modified: asterisk/trunk/tests/channels/SIP/sip_hold/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/run-test?view=diff&rev=4044&r1=4043&r2=4044
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/run-test (original)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/run-test Mon Aug 19 11:42:19 2013
@@ -17,6 +17,7 @@
 from asterisk.TestCase import TestCase
 from asterisk.sipp import SIPpScenario
 from twisted.internet import reactor
+from asterisk.version import AsteriskVersion
 
 logger = logging.getLogger(__name__)
 INJECT_FILE_BYPASS = "inject_bypass.csv"
@@ -26,6 +27,14 @@
     def __init__(self):
         TestCase.__init__(self)
         self.create_asterisk()
+
+        running_version = AsteriskVersion()
+
+        if (running_version < AsteriskVersion("12.0.0")):
+            #Pre-12
+            self.asterisk12Events = False
+        else:
+            self.asterisk12Events = True
 
         self.sipp_phone_a_scenarios = [{'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BYPASS},
             {'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BYPASS},
@@ -49,7 +58,13 @@
     def ami_connect(self, ami):
         TestCase.ami_connect(self, ami)
         ami.registerEvent('UserEvent', self.user_event_handler)
-        ami.registerEvent('MusicOnHold', self.moh_event_handler)
+
+        if self.asterisk12Events:
+            ami.registerEvent('MusicOnHoldStart', self.moh_start_event_handler)
+            ami.registerEvent('MusicOnHoldStop', self.moh_stop_event_handler)
+        else:
+            ami.registerEvent('MusicOnHold', self.moh_event_handler)
+
         logger.info("Starting SIP scenario")
         self.execute_scenarios()
 
@@ -93,6 +108,14 @@
             logger.info("All user events received; stopping reactor")
             self.stop_reactor()
 
+    def moh_start_event_handler(self, ami, event):
+        logger.debug("Received MOH start event")
+        self.moh_start_events += 1
+
+    def moh_stop_event_handler(self, ami, event):
+        logger.debug("Received MOH stop event")
+        self.moh_stop_events += 1
+
     def moh_event_handler(self, ami, event):
         if event['state'] == "Start":
             logger.debug("Received MOH start event")

Modified: asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/run-test?view=diff&rev=4044&r1=4043&r2=4044
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/run-test (original)
+++ asterisk/trunk/tests/channels/SIP/sip_hold_direct_media/run-test Mon Aug 19 11:42:19 2013
@@ -17,6 +17,7 @@
 from asterisk.TestCase import TestCase
 from asterisk.sipp import SIPpScenario
 from twisted.internet import reactor
+from asterisk.version import AsteriskVersion
 
 logger = logging.getLogger(__name__)
 INJECT_FILE_BYPASS = "inject_bypass.csv"
@@ -26,6 +27,14 @@
     def __init__(self):
         TestCase.__init__(self)
         self.create_asterisk()
+
+        running_version = AsteriskVersion()
+
+        if (running_version < AsteriskVersion("12.0.0")):
+            #Pre-12
+            self.asterisk12Events = False
+        else:
+            self.asterisk12Events = True
 
         self.sipp_phone_a_scenarios = [{'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BYPASS},
             {'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BYPASS},
@@ -49,7 +58,13 @@
     def ami_connect(self, ami):
         TestCase.ami_connect(self, ami)
         ami.registerEvent('UserEvent', self.user_event_handler)
-        ami.registerEvent('MusicOnHold', self.moh_event_handler)
+
+        if self.asterisk12Events:
+            ami.registerEvent('MusicOnHoldStart', self.moh_start_event_handler)
+            ami.registerEvent('MusicOnHoldStop', self.moh_stop_event_handler)
+        else:
+            ami.registerEvent('MusicOnHold', self.moh_event_handler)
+
         logger.info("Starting SIP scenario")
         self.execute_scenarios()
 
@@ -93,6 +108,14 @@
             logger.info("All user events received; stopping reactor")
             self.stop_reactor()
 
+    def moh_start_event_handler(self, ami, event):
+        logger.debug("Received MOH start event")
+        self.moh_start_events += 1
+
+    def moh_stop_event_handler(self, ami, event):
+        logger.debug("Received MOH stop event")
+        self.moh_stop_events += 1
+
     def moh_event_handler(self, ami, event):
         if event['state'] == "Start":
             logger.debug("Received MOH start event")

Modified: asterisk/trunk/tests/channels/SIP/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/tests.yaml?view=diff&rev=4044&r1=4043&r2=4044
==============================================================================
--- asterisk/trunk/tests/channels/SIP/tests.yaml (original)
+++ asterisk/trunk/tests/channels/SIP/tests.yaml Mon Aug 19 11:42:19 2013
@@ -40,6 +40,7 @@
     - test: 'nat_supertest'
     - test: 'pcap_demo'
     - test: 'sip_hold'
+    - test: 'sip_hold_direct_media'
     - test: 'sip_hold_no_moh'
     - test: 'header_parsing'
     - test: 'use_contact_from_200'




More information about the asterisk-commits mailing list