[asterisk-commits] mjordan: testsuite/asterisk/trunk r4872 - in /asterisk/trunk/tests/apps/bridg...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Mar 18 13:48:09 CDT 2014


Author: mjordan
Date: Tue Mar 18 13:48:02 2014
New Revision: 4872

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4872
Log:
bridge/bridge_wait: Add a test for the BridgeWait application's e option.

This test verifies that the various ways to entertain a holding bridge receive
the correct events, and ultimately work properly. The tests cover the
following:
1) e(m) = This option is tested by verifying that the participant in the
          holding bridge receives MoH events.
2) m(class) = This scenario tests that not only are the MoH events received,
              but also that the specified class is used.
3) e(n) = This scenario calls for a fail-test action-type if either a Hold
          event or MoH event were to show up. This does the basic amount of
          verification possible that 'no entertainment' is used.
4) e(s) = This scenario was basically identical to e(n), only the participant
          receives silent audio instead of no sound at all.
5) e(r) = This scenario verifies that the channel state changed to ringing
          through checking a Newstate event.
6) e(h) = This scenario puts the participant on hold. Since the hold is not
          originated from a channel driver, the MoH events are checked.

(closes issue ASTERISK-23355)
Reported by: Matt Jordan
patches:
  bridge_wait_e_options_diff uploaded by jemidy (license 6581)

ASTERISK-23355 #close
ASTERISK-23355 #comment bridge_wait_e_options_diff submitted by jemidy (license 6581)

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

Added:
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf   (with props)
    asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml   (with props)
Modified:
    asterisk/trunk/tests/apps/bridge/bridge_wait/tests.yaml
    asterisk/trunk/tests/apps/bridge/tests.yaml

Added: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf?view=auto&rev=4872
==============================================================================
--- asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf Tue Mar 18 13:48:02 2014
@@ -1,0 +1,45 @@
+[holding_bridge]
+
+exten => em_option,1,NoOp()
+     same => n,BridgeWait(default,participant,e(m))
+
+exten => m_option,1,NoOp()
+     same => n,BridgeWait(default,participant,m(default))
+
+exten => en_option,1,NoOp()
+     same => n,BridgeWait(default,participant,e(n))
+
+exten => es_option,1,NoOp()
+     same => n,BridgeWait(default,participant,e(s))
+
+exten => er_option,1,NoOp()
+     same => n,BridgeWait(default,participant,e(r))
+
+exten => eh_option,1,NoOp()
+     same => n,BridgeWait(default,participant,e(h))
+
+[default]
+
+exten => sendDTMF,1,NoOp()
+	same => n,Verbose(1, Sending DTMF Signal ${DTMF_TO_SEND})
+	same => n,SendDTMF(${DTMF_TO_SEND})
+	same => n,Goto(default,wait,1)
+
+exten => sendAudio,1,NoOp()
+	same => n,Verbose(1, Sending audio file ${TALK_AUDIO})
+	same => n,Playback(${TALK_AUDIO})
+	same => n,Goto(default,wait,1)
+
+exten => sendAudioWithDTMF,1,NoOp()
+	same => n,Verbose(1, Sending audio file ${TALK_AUDIO})
+	same => n,Playback(${TALK_AUDIO})
+	same => n,Verbose(1, Sending DTMF Signal ${DTMF_TO_SEND})
+	same => n,SendDTMF(${DTMF_TO_SEND})
+	same => n,Goto(default,wait,1)
+
+exten => hangup,1,NoOp()
+	same => n,Verbose(1, Hanging up)
+	same => n,Hangup()
+
+exten => wait,1,NoOp()
+	same => n,Wait(10000)

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf?view=auto&rev=4872
==============================================================================
--- asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf (added)
+++ asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf Tue Mar 18 13:48:02 2014
@@ -1,0 +1,6 @@
+[general]
+
+[default]
+
+mode=files
+directory=moh

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/configs/ast1/musiconhold.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml?view=auto&rev=4872
==============================================================================
--- asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml (added)
+++ asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml Tue Mar 18 13:48:02 2014
@@ -1,0 +1,297 @@
+testinfo:
+    summary: 'Tests the e options of the BridgeWait application'
+    description: |
+        'This test covers all the ways that a channel can be entertained within
+         a holding bridge. It tests the e(m), m(), e(n), e(s), e(r), and e(h).
+         The e(m) deals with playing music while on hold, m() is specifically to check
+         that MoH is playing to the participant, e(n) is to have no entertainment
+         in the Bridge, e(s) is to have silence within the Bridge, e(r) is to have
+         the holding Bridge ring without a pause and e(h) is to have a channel put
+         on hold.'
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: 'apptest.AppTest'
+
+test-object-config:
+  app: 'BridgeWait'
+  scenarios:
+    -
+      # Scenario 1: This test is to verify that the MoH is started using the
+      # the default MoH class through the e(m) operation.
+      channels:
+        -
+          channel-id: 'EM_Option'
+          channel-name: 'Local/em_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/em_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'MusicOnHoldStart'
+                  Channel: 'Local/em_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'MusicOnHold Event was Received'
+                -
+                  action-type: 'hangup'
+                  delay: 1
+    -
+      # Scenario 2: This test verifies that the m option can be assigned a MoH
+      # class, and that it gets those MoH events.
+      channels:
+        -
+          channel-id: 'M_Option'
+          channel-name: 'Local/m_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/m_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'MusicOnHoldStart'
+                  Channel: 'Local/m_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'MusicOnHold Event was Received'
+                -
+                  action-type: 'hangup'
+                  delay: 1
+    -
+      # Scenario 3: The e(n) test checks to make sure that no MoH or Hold events
+      # are present within the test since there should be no entertainment.
+      channels:
+        -
+          channel-id: 'EN_Option'
+          channel-name: 'Local/en_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'BridgeEnter'
+                  Channel: 'Local/en_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'BridgeEnter Event Received'
+                -
+                  action-type: 'hangup'
+                  delay: 2
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'MusicOnHoldStart'
+                  Channel: 'Local/en_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'fail-test'
+                  message: 'MusicOnHold Started!'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hold'
+                  Channel: 'Local/en_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'fail-test'
+                  message: 'Hold Found!'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/en_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+    -
+      # Scenario 4: The e(s) test is identical to the e(n) test, yet it plays back
+      # silent audio instead of dead air. It also checks that no Hold or MoH Events
+      # were received.
+      channels:
+        -
+          channel-id: 'ES_Option'
+          channel-name: 'Local/es_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'BridgeEnter'
+                  Channel: 'Local/es_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'BridgeEnter Event Received'
+                -
+                  action-type: 'hangup'
+                  delay: 2
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'MusicOnHoldStart'
+                  Channel: 'Local/es_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'fail-test'
+                  message: 'MusicOnHold Started!'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hold'
+                  Channel: 'Local/es_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'fail-test'
+                  message: 'Hold Found!'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/es_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+    -
+      # Scenario 5: The e(r) test verifies that the state of the channel changes
+      # to ringing by checking a Newstate event.
+      channels:
+        -
+          channel-id: 'ER_Option'
+          channel-name: 'Local/er_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Newstate'
+                  Channel: 'Local/er_option at holding_bridge-.*'
+                  ChannelStateDesc: 'Ringing'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel is Ringing'
+                -
+                  action-type: 'hangup'
+                  delay: 3
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/er_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+    -
+      # Scenario 6: The e(h) test checks to make sure that the channel is on
+      # hold through MoH events.
+      channels:
+        -
+          channel-id: 'EH_Option'
+          channel-name: 'Local/eh_option at holding_bridge'
+          context: 'default'
+          exten: 'wait'
+          start-on-create: True
+          events:
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'BridgeEnter'
+                  Channel: 'Local/eh_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'BridgeEnter Event Received'
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'MusicOnHoldStart'
+                  Channel: 'Local/eh_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel on Hold'
+                -
+                  action-type: 'hangup'
+                  delay: 2
+            -
+              type: 'headermatch'
+              conditions:
+                match:
+                  Event: 'Hangup'
+                  Channel: 'Local/eh_option at holding_bridge-.*'
+              actions:
+                -
+                  action-type: 'set-expected-result'
+                  expected-result: 'Channel Hung Up'
+                -
+                  action-type: 'end-scenario'
+
+properties:
+    minversion: '12.0.0'
+    tags:
+      - bridge
+    dependencies:
+      - buildoption: 'TEST_FRAMEWORK'
+      - python: 'twisted'
+      - python: 'starpy'
+      - asterisk: 'app_bridgewait'

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/apps/bridge/bridge_wait/bridge_wait_e_options/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/apps/bridge/bridge_wait/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/bridge/bridge_wait/tests.yaml?view=diff&rev=4872&r1=4871&r2=4872
==============================================================================
--- asterisk/trunk/tests/apps/bridge/bridge_wait/tests.yaml (original)
+++ asterisk/trunk/tests/apps/bridge/bridge_wait/tests.yaml Tue Mar 18 13:48:02 2014
@@ -1,3 +1,4 @@
 # Enter tests here in the order they should be considered for execution:
 tests:
+    - test: 'bridge_wait_e_options'
     - test: 'bridge_wait_roles'

Modified: asterisk/trunk/tests/apps/bridge/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/bridge/tests.yaml?view=diff&rev=4872&r1=4871&r2=4872
==============================================================================
--- asterisk/trunk/tests/apps/bridge/tests.yaml (original)
+++ asterisk/trunk/tests/apps/bridge/tests.yaml Tue Mar 18 13:48:02 2014
@@ -3,3 +3,4 @@
     - test: 'bridge_baseline'
     - test: 'bridge_transfer_callee'
     - dir: 'bridge_wait'
+




More information about the asterisk-commits mailing list