[asterisk-commits] mjordan: testsuite/asterisk/trunk r2978 - in /asterisk/trunk: lib/python/aste...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jan 3 12:45:19 CST 2012


Author: mjordan
Date: Tue Jan  3 12:45:12 2012
New Revision: 2978

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=2978
Log:
Add SIP Hold Tests

This adds a test to check for proper handling of call holding within SIP.
This includes setting the audio stream to one-way, setting the connection IP
address to 0.0.0.0, and a combination thereof.

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

Added:
    asterisk/trunk/tests/channels/SIP/sip_hold/
    asterisk/trunk/tests/channels/SIP/sip_hold/configs/
    asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/
    asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/run-test   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml   (with props)
    asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml   (with props)
Modified:
    asterisk/trunk/lib/python/asterisk/sipp.py
    asterisk/trunk/tests/channels/SIP/tests.yaml

Modified: asterisk/trunk/lib/python/asterisk/sipp.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/sipp.py?view=diff&rev=2978&r1=2977&r2=2978
==============================================================================
--- asterisk/trunk/lib/python/asterisk/sipp.py (original)
+++ asterisk/trunk/lib/python/asterisk/sipp.py Tue Jan  3 12:45:12 2012
@@ -74,10 +74,6 @@
             '-i' : '127.0.0.1',
             '-timeout' : '20s'
         }
-
-        # Override and extend defaults
-        default_args.update(self.scenario)
-        del default_args['scenario']
 
         # Override and extend defaults
         default_args.update(self.scenario)

Added: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf Tue Jan  3 12:45:12 2012
@@ -1,0 +1,16 @@
+[general]
+PHONE_TO_DIAL=SIP/phone_B
+
+[default]
+; Dial with t/T options (force a bypass of remote and local RTP bridges),
+; even though we won't use any features for this test
+exten => bypassbridge,1,NoOp()
+	same => n,Dial(SIP/phone_B,,tTg)
+	same => n,UserEvent(TestStatus, extension: bypassbridge)
+	same => n,Hangup()
+
+; Dial with no options; use bridge set up based on peer definitions
+exten => basicdial,1,NoOp()
+	same => n,Dial(SIP/phone_B,,g)
+	same => n,UserEvent(TestStatus, extension: basicdial)
+	same => n,Hangup()

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

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

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 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=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf Tue Jan  3 12:45:12 2012
@@ -1,0 +1,25 @@
+[general]
+allowguest=no
+bindaddr=127.0.0.1
+sipdebug = yes
+
+[phone_A]
+type=friend
+context=default
+disallow=all
+allow=ulaw
+qualify = no
+insecure = invite
+host = 127.0.0.2
+nat=no
+
+[phone_B]
+type=friend
+context=default
+disallow=all
+allow=ulaw
+qualify = no
+insecure = invite
+host = 127.0.0.3
+nat=no
+

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/configs/ast1/sip.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 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=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/run-test (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/run-test Tue Jan  3 12:45:12 2012
@@ -1,0 +1,126 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2011, Digium, Inc.
+Matt Jordan <mjordan at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+'''
+
+import sys
+import os
+import logging
+
+sys.path.append("lib/python")
+
+from asterisk.asterisk import Asterisk
+from asterisk.TestCase import TestCase
+from asterisk.sipp import SIPpScenario
+from twisted.internet import reactor
+
+logger = logging.getLogger(__name__)
+TEST_DIR = os.path.dirname(os.path.realpath(__file__))
+INJECT_FILE_BYPASS = TEST_DIR + "/sipp/inject_bypass.csv"
+INJECT_FILE_BRIDGE = TEST_DIR + "/sipp/inject_bridge.csv"
+
+class SIPHold(TestCase):
+    def __init__(self):
+        TestCase.__init__(self)
+        self.create_asterisk()
+        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},
+            {'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_BRIDGE},
+            {'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BRIDGE},
+            {'scenario':'phone_A.xml','-i':'127.0.0.2','-p':'5060','-inf':INJECT_FILE_BRIDGE},]
+        self.sipp_phone_b_scenarios = [{'scenario':'phone_B_media_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BYPASS},
+            {'scenario':'phone_B_IP_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BYPASS},
+            {'scenario':'phone_B_IP_media_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BYPASS},
+            {'scenario':'phone_B_media_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BRIDGE},
+            {'scenario':'phone_B_IP_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BRIDGE},
+            {'scenario':'phone_B_IP_media_restrict.xml','-i':'127.0.0.3','-p':'5060','-inf':INJECT_FILE_BRIDGE},]
+
+        self.passed = True
+        self.moh_start_events = 0
+        self.moh_stop_events = 0
+        self.user_events = 0
+
+    def ami_connect(self, ami):
+        TestCase.ami_connect(self, ami)
+        ami.registerEvent('UserEvent', self.user_event_handler)
+        ami.registerEvent('MusicOnHold', self.moh_event_handler)
+        logger.info("Starting SIP scenario")
+        self.execute_scenarios()
+
+    def execute_scenarios(self):
+        for i in range(len(self.sipp_phone_a_scenarios)):
+            sipp_a = SIPpScenario(TEST_DIR, self.sipp_phone_a_scenarios[i])
+            sipp_b = SIPpScenario(TEST_DIR, self.sipp_phone_b_scenarios[i])
+
+            """ Start up the listener first - Phone A calls Phone B """
+            sipp_b.run()
+            sipp_a.run()
+
+            sipp_a_result = sipp_a.waitAndEvaluate()
+            sipp_b_result = sipp_b.waitAndEvaluate()
+
+            if (not sipp_a_result):
+                logger.warn("SIPp Scenario Phone A (%s) failed" % self.sipp_phone_a_scenarios[i]['scenario'])
+                self.passed = False
+            if (not sipp_b_result):
+                logger.warn("SIPp Scenario Phone B (%s) failed" % self.sipp_phone_b_scenarios[i]['scenario'])
+                self.passed = False
+            self.reset_timeout()
+
+        logger.info("All scenarios executed")
+        """
+        Note: you can't stop the reactor here, as the AMI events will be pooled up.  Let the AMI events
+        determine when the reactor is stopped
+        """
+
+    def user_event_handler(self, ami, event):
+        self.user_events += 1
+        if (self.user_events == len(self.sipp_phone_a_scenarios)):
+            logger.info("All user events received; stopping reactor")
+            self.stop_reactor()
+
+    def moh_event_handler(self, ami, event):
+        if event['state'] == "Start":
+            logger.debug("Received MOH start event")
+            self.moh_start_events += 1
+        elif event['state'] == "Stop":
+            logger.debug("Received MOH stop event")
+            self.moh_stop_events += 1
+
+    def run(self):
+        TestCase.run(self)
+        self.create_ami_factory()
+
+
+def main():
+    test = SIPHold()
+    test.start_asterisk()
+    reactor.run()
+    test.stop_asterisk()
+
+    if (test.moh_start_events != len(test.sipp_phone_a_scenarios)):
+        logger.error("Failed to receive %d MOH start events (received %d)" % (len(test.sipp_phone_a_scenarios), test.moh_start_events))
+        test.passed = False
+    if (test.moh_stop_events != len(test.sipp_phone_a_scenarios)):
+        logger.error("Failed to receive %d MOH stop events (received %d)" % (len(test.sipp_phone_a_scenarios), test.moh_stop_events))
+        test.passed = False
+    if (test.user_events != len(test.sipp_phone_a_scenarios)):
+        logger.error("Failed to receive %d user test events (received %d)" % (len(test.sipp_phone_a_scenarios), test.user_events))
+        test.passed = False
+
+    if test.passed:
+        return 0
+    else:
+        return 1
+
+
+if __name__ == "__main__":
+    sys.exit(main())
+
+
+# vim:sw=4:ts=4:expandtab:textwidth=79

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/run-test
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/run-test
------------------------------------------------------------------------------
    svn:executable = *

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/run-test
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/run-test
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv Tue Jan  3 12:45:12 2012
@@ -1,0 +1,2 @@
+SEQUENTIAL
+phone_A;phone_B;basicdial

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bridge.csv
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv Tue Jan  3 12:45:12 2012
@@ -1,0 +1,2 @@
+SEQUENTIAL
+phone_A;phone_B;bypassbridge

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/inject_bypass.csv
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml Tue Jan  3 12:45:12 2012
@@ -1,0 +1,81 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Phone A Hold with IP and Media Restrictions">
+
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field2]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
+			To: <sip:[field2]@[remote_ip]:[remote_port];user=phone>
+			CSeq: 1 INVITE
+			Call-ID: [call_id]
+			Contact: <sip:[field0]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1324901698 1324901698 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 [local_ip]
+			t=0 0
+			a=sendrecv
+			m=audio 2226 RTP/AVP 0 101
+			a=sendrecv
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="180" optional="true" />
+
+	<recv response="183" optional="true" />
+
+	<recv response="200" />
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field0] <sip:[field0]@[remote_ip]>;tag=[call_number]
+			To: <sip:[field1]@[remote_ip];user=phone>[peer_tag_param]
+			CSeq: 1 ACK
+			Call-ID: [call_id]
+			Contact: <sip:[field0]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<recv request="BYE"/>
+
+	<send retrans="500">
+		<![CDATA[
+			SIP/2.0 200 OK
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field0]@[local_ip]:[local_port];transport=[transport]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			Supported: 100rel,replaces
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Type: application/sdp
+			Content-Length: 0
+		]]>
+	</send>
+
+</scenario>

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_A.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml Tue Jan  3 12:45:12 2012
@@ -1,0 +1,203 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Phone B Hold with IP and Media Restrictions">
+	<Global variables="global_call_id"/>
+
+	<recv request="INVITE" crlf="true">
+		<action>
+			<ereg regexp=".*"
+				header="Call-ID:"
+				search_in="hdr"
+				check_it="true"
+				assign_to="global_call_id"/>
+		</action>
+	</recv>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 100 Trying
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 180 Ringing
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Allow-Events: talk,hold,conference
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<pause milliseconds="200"/>
+
+	<send retrans="500">
+		<![CDATA[
+			SIP/2.0 200 OK
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			Supported: 100rel,replaces
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Type: application/sdp
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- RECV ACK -->
+	<recv request="ACK"/>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="3000"/>
+
+	<!-- Modify RTP session to be send only -->
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003604 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 0.0.0.0
+			t=0 0
+			m=audio 2226 RTP/AVP 0 101
+			a=sendonly
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<pause milliseconds="200"/>
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time, then send the un-hold -->
+	<pause milliseconds="3000"/>
+
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003605 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 [local_ip]
+			t=0 0
+			a=sendrecv
+			m=audio 2226 RTP/AVP 0 101
+			a=sendrecv
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="500"/>
+
+	<send>
+		<![CDATA[
+			BYE sip:[field1]@1[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/UDP [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>[peer_tag_param]
+			CSeq: [cseq] BYE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+
+</scenario>

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_media_restrict.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml Tue Jan  3 12:45:12 2012
@@ -1,0 +1,203 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Phone B Hold with IP and Media Restrictions">
+	<Global variables="global_call_id"/>
+
+	<recv request="INVITE" crlf="true">
+		<action>
+			<ereg regexp=".*"
+				header="Call-ID:"
+				search_in="hdr"
+				check_it="true"
+				assign_to="global_call_id"/>
+		</action>
+	</recv>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 100 Trying
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 180 Ringing
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Allow-Events: talk,hold,conference
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<pause milliseconds="200"/>
+
+	<send retrans="500">
+		<![CDATA[
+			SIP/2.0 200 OK
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			Supported: 100rel,replaces
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Type: application/sdp
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- RECV ACK -->
+	<recv request="ACK"/>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="3000"/>
+
+	<!-- Modify RTP session to be send only -->
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003604 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 0.0.0.0
+			t=0 0
+			m=audio 2226 RTP/AVP 0 101
+			a=sendrecv
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<pause milliseconds="200"/>
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time, then send the un-hold -->
+	<pause milliseconds="3000"/>
+
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003605 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 [local_ip]
+			t=0 0
+			a=sendrecv
+			m=audio 2226 RTP/AVP 0 101
+			a=sendrecv
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="500"/>
+
+	<send>
+		<![CDATA[
+			BYE sip:[field1]@1[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/UDP [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>[peer_tag_param]
+			CSeq: [cseq] BYE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+
+</scenario>

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_IP_restrict.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml Tue Jan  3 12:45:12 2012
@@ -1,0 +1,204 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Phone B Hold with Media Restrictions">
+	<Global variables="global_call_id"/>
+
+	<recv request="INVITE" crlf="true">
+		<action>
+			<ereg regexp=".*"
+				header="Call-ID:"
+				search_in="hdr"
+				check_it="true"
+				assign_to="global_call_id"/>
+		</action>
+	</recv>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 100 Trying
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<send>
+		<![CDATA[
+			SIP/2.0 180 Ringing
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Allow-Events: talk,hold,conference
+			Accept-Language: en
+			Content-Length: 0
+		]]>
+	</send>
+
+	<pause milliseconds="200"/>
+
+	<send retrans="500">
+		<![CDATA[
+			SIP/2.0 200 OK
+			[last_Via:]
+			[last_From:]
+			[last_To:];tag=[call_number]
+			[last_Call-ID:]
+			[last_CSeq:]
+			Contact: <sip:[field1]@[local_ip]:[local_port];transport=[transport]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			Supported: 100rel,replaces
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Content-Type: application/sdp
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- RECV ACK -->
+	<recv request="ACK"/>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="3000"/>
+
+	<!-- Modify RTP session to be send only -->
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003604 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 [local_ip]
+			t=0 0
+			a=sendonly
+			m=audio 2226 RTP/AVP 0 101
+			a=sendonly
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<pause milliseconds="200"/>
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time, then send the un-hold -->
+	<pause milliseconds="3000"/>
+
+	<send retrans="500">
+		<![CDATA[
+			INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>
+			CSeq: [cseq] INVITE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Supported: 100rel,replaces
+			Allow-Events: talk,hold,conference
+			Max-Forwards: 70
+			Content-Type: application/sdp
+			Content-Length: [len]
+
+			v=0
+			o=- 1325003603 1325003605 IN IP4 [local_ip]
+			s=Polycom IP Phone
+			c=IN IP4 [local_ip]
+			t=0 0
+			a=sendrecv
+			m=audio 2226 RTP/AVP 0 101
+			a=sendrecv
+			a=rtpmap:0 PCMU/8000
+			a=rtpmap:101 telephone-event/8000
+		]]>
+	</send>
+
+	<recv response="100" optional="true" />
+
+	<recv response="200" />
+
+	<send>
+		<![CDATA[
+			ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]>;tag=[call_number]
+			To: <sip:[field0]@[remote_ip];user=[field0]>[peer_tag_param]
+			CSeq: [cseq] ACK
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+	<!-- Wait some period of time -->
+	<pause milliseconds="500"/>
+
+	<send>
+		<![CDATA[
+			BYE sip:[field1]@1[remote_ip]:[remote_port] SIP/2.0
+			Via: SIP/2.0/UDP [local_ip]:[local_port];branch=[branch]
+			From: [field1] <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
+			To: [field0] <sip:[field1]@[remote_ip]>[peer_tag_param]
+			CSeq: [cseq] BYE
+			Call-ID: [$global_call_id]
+			Contact: <sip:[field1]@[local_ip]:[local_port]>
+			User-Agent: PolycomSoundPointIP-SPIP_430-UA/3.2.3.1734
+			Accept-Language: en
+			Max-Forwards: 70
+			Content-Length: 0
+		]]>
+	</send>
+
+
+</scenario>

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/sipp/phone_B_media_restrict.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml?view=auto&rev=2978
==============================================================================
--- asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml (added)
+++ asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml Tue Jan  3 12:45:12 2012
@@ -1,0 +1,17 @@
+testinfo:
+    summary: 'Test various SIP Hold scenarios'
+    description: |
+        This tests SIP Hold, where one SIP phone puts another SIP phone on hold by
+        sending a re-INVITE with a modified SDP containing either a restricted audio
+        direction, an IP address of 0.0.0.0, or a combination thereof.  This
+        is tested both for a local RTP bridge, and a non-bridged scenario.
+
+properties:
+    minversion: '1.8.9'
+    dependencies:
+        - sipp :
+            version : 'v3.0'
+    testconditions:
+        - name: 'threads'
+          ignoredThreads:
+            - 'autoservice_run'

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/channels/SIP/sip_hold/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/channels/SIP/tests.yaml

[... 10 lines stripped ...]



More information about the asterisk-commits mailing list