[asterisk-scf-commits] asterisk-scf/integration/testsuite.git branch "review" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Tue Jul 5 08:18:29 CDT 2011


branch "review" has been updated
       via  ebf408db54bc8a590c5922fd2ad469aa80d8856a (commit)
       via  f4005378ece2ce7a29bb867d0490760c1aa0ce1c (commit)
       via  c2ca44d316c9d0010dc0c90cb32b22b3f77edc80 (commit)
       via  cb312d79297e03b263ebcc92df968f1464d87ca6 (commit)
       via  58477d302a51376db9657ce24ad5453ccaf5fc29 (commit)
       via  51c7f3cdb109d9c08216f742322bab8dd98ccc4b (commit)
       via  58a04e9d0621137986ec43affe96be4e8af85334 (commit)
       via  29ac7ec9b9da542cbeaff999469b9002346e5a45 (commit)
       via  2cace2f5baee18a39dec3000cc75c6a89ae4c063 (commit)
      from  9fdb4c1f24ac10b46379accbecb7eb9b86f344b6 (commit)

Summary of changes:
 lib/python/yaml_parser.py                          |    2 +-
 plugins/sipp.py                                    |   16 ++-
 .../scenarios/call_then_attended_transfer.xml      |  162 +++++++++++++++++++
 .../scenarios/wait_for_call.xml                    |   76 +++++++++
 .../scenarios/wait_for_call_do_hangup.xml          |   77 +++++++++
 .../sip/Functional_Attended_Transfer/testcase.yaml |  131 +++++++++++++++
 .../scenarios/call_then_blind_transfer.xml         |  114 +++++++++++++
 .../scenarios/wait_for_call.xml                    |   76 +++++++++
 .../scenarios/wait_for_call_do_hangup.xml          |   77 +++++++++
 .../sip/Functional_Blind_Transfer/testcase.yaml    |  131 +++++++++++++++
 .../scenarios/call.xml                             |    0
 .../scenarios/wait_for_call_busy.xml               |    0
 .../testcase.yaml                                  |   28 ++--
 .../scenarios/call.xml                             |    5 +-
 .../scenarios/wait_for_call_congestion.xml}        |    4 +-
 .../testcase.yaml                                  |   38 +++---
 .../testcase.yaml                                  |   16 +-
 .../scenarios/call.xml                             |   48 ++++--
 .../scenarios/wait_for_call_timeout.xml            |   53 ++++++
 .../testcase.yaml                                  |   38 +++---
 .../scenarios/options.xml                          |   21 +++
 .../scenarios/options2.xml                         |   21 +++
 .../Functional_Verify_Options_Method/testcase.yaml |  170 ++++++++++++++++++++
 .../testcase.yaml                                  |    6 +
 testsuite.py                                       |   20 ++-
 25 files changed, 1242 insertions(+), 88 deletions(-)
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/call_then_attended_transfer.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call_do_hangup.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/call_then_blind_transfer.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call_do_hangup.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
 copy tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Busy_Endpoint}/scenarios/call.xml (100%)
 copy tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Busy_Endpoint}/scenarios/wait_for_call_busy.xml (100%)
 copy tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Busy_Endpoint}/testcase.yaml (94%)
 copy tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Congestion_Endpoint}/scenarios/call.xml (89%)
 rename tests/asterisk_scf_components/sip/{Functional_Call_Busy/scenarios/wait_for_call_busy.xml => Functional_Congestion_Endpoint/scenarios/wait_for_call_congestion.xml} (82%)
 copy tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Congestion_Endpoint}/testcase.yaml (90%)
 rename tests/asterisk_scf_components/sip/{Functional_Call_Simple => Functional_Simple_Endpoint}/testcase.yaml (92%)
 rename tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Timeout_Endpoint}/scenarios/call.xml (56%)
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/wait_for_call_timeout.xml
 rename tests/asterisk_scf_components/sip/{Functional_Call_Busy => Functional_Timeout_Endpoint}/testcase.yaml (90%)
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options2.xml
 create mode 100644 tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/testcase.yaml


- Log -----------------------------------------------------------------
commit ebf408db54bc8a590c5922fd2ad469aa80d8856a
Author: Darren Sessions <dsessions at digium.com>
Date:   Tue Jul 5 08:16:47 2011 -0500

    Modified the test-suite build test-case to pull after a checkout.

diff --git a/tests/build/Build_and_Distribute_the_Digium_TestSuite_to_Remotes/testcase.yaml b/tests/build/Build_and_Distribute_the_Digium_TestSuite_to_Remotes/testcase.yaml
index 3ef4f43..447e01d 100644
--- a/tests/build/Build_and_Distribute_the_Digium_TestSuite_to_Remotes/testcase.yaml
+++ b/tests/build/Build_and_Distribute_the_Digium_TestSuite_to_Remotes/testcase.yaml
@@ -12,6 +12,7 @@ tests :
                     cd : testsuite
                     make_cmd : 
                         - git checkout review
+                        - git pull
                         - make install
     - update_testsuite-remote-2 :
         timeline :
@@ -23,6 +24,7 @@ tests :
                     cd : testsuite
                     make_cmd : 
                         - git checkout review
+                        - git pull
                         - make install
     - update_testsuite-remote-3 :
         timeline :
@@ -34,6 +36,7 @@ tests :
                     cd : testsuite
                     make_cmd : 
                         - git checkout review
+                        - git pull
                         - make install
     - update_testsuite-remote-4 :
         timeline :
@@ -45,6 +48,7 @@ tests :
                     cd : testsuite
                     make_cmd : 
                         - git checkout review
+                        - git pull
                         - make install
     - update_testsuite-remote-5 :
         timeline :
@@ -67,6 +71,7 @@ tests :
                     cd : testsuite
                     make_cmd :
                         - git checkout review
+                        - git pull
                         - make install
     - update_testsuite-builder-1 :
         timeline :
@@ -78,4 +83,5 @@ tests :
                     cd : testsuite
                     make_cmd :
                         - git checkout review
+                        - git pull
                         - make install

commit f4005378ece2ce7a29bb867d0490760c1aa0ce1c
Author: Darren Sessions <dsessions at digium.com>
Date:   Tue Jul 5 08:16:04 2011 -0500

    Modified the SIPp plugin to add support for none value based injection files for basic scenario files. Modified the plugin so it pushes scenarios to remotes instead of the remotes reading the scenario files locally. This was done primarily to make creating and testing new scenario files easier so instead of having to commit and push tweaks or modifications during the dev phase, one could run the test-suite server locally without having to push anything.

diff --git a/plugins/sipp.py b/plugins/sipp.py
index a376edc..b497d10 100644
--- a/plugins/sipp.py
+++ b/plugins/sipp.py
@@ -50,7 +50,7 @@ class plugin(TestSuite.BaseClass):
                     if results['success'] == False:
                         return results
 
-                    if mode == 'uac':
+                    if mode == 'uac' and not globalVars['mode'] == 'docs':
                         results['success'] = False
                         if results['returncode'] == 0:
                             results['success'] = True 
@@ -85,7 +85,7 @@ class plugin(TestSuite.BaseClass):
         else:
             return {'success':False, 'msg':'Unknown command: %s' % testData['cmd']} 
 
-        return {'success':True}
+        return results
 
     def _execBuilder(self, list, string):
         for execBlock in string.rsplit(' '):
@@ -95,15 +95,23 @@ class plugin(TestSuite.BaseClass):
     def _componentConfig(self, globalVars, mode, config, testPath, remote, testsuite_remote_host):
         execCmd = ['!!TMP!!/sipp/sipp/trunk/sipp']
 
+        if 'scenario_file' in config:
+            results = self.file().read('%s/%s/scenarios/%s' % (globalVars['cwd'], testPath, config['scenario_file']))
+            if results['success'] == False: 
+                return results
+            results = remote['rpc']('writeFile', '%s' % config['scenario_file'], results['fd'])
+            if results['success'] == False:
+                return results
+
         if 'scenario_file' in config and 'index' in config:
-            execCmd = self._execBuilder(execCmd, '-sf !!CWD!!/tests/%s/%s/scenarios/%s' % (globalVars['testInfo']['testCategory'], globalVars['testInfo']['testCase'], config['scenario_file']))
+            execCmd = self._execBuilder(execCmd, '-sf !!TMP!!/%s' % config['scenario_file'])
             execCmd = self._execBuilder(execCmd, '-inf !!TMP!!/%s.csv' % globalVars['testInfo']['testName'])
             execCmd = self._execBuilder(execCmd, '-infindex %s.csv %s' % (globalVars['testInfo']['testName'], config['index']))
             execCmd = self._execBuilder(execCmd, '-set user %s' % config['scenario_file'].replace('_', '').split('.')[0])
             execCmd = self._execBuilder(execCmd, '-set file %s.csv' % globalVars['testInfo']['testName'])
             execCmd = self._execBuilder(execCmd, '-timeout_error')
         elif 'scenario_file' in config and not 'index' in config:
-            execCmd = self._execBuilder(execCmd, '-sf !!CWD!!/tests/%s/%s/scenarios/%s' % (globalVars['testInfo']['testCategory'], globalVars['testInfo']['testCase'], config['scenario_file']))
+            execCmd = self._execBuilder(execCmd, '-sf !!TMP!!/%s' % config['scenario_file'])
             execCmd = self._execBuilder(execCmd, '-timeout_error')
         else:
             execCmd = self._execBuilder(execCmd, '-sn %s' % mode) 

commit c2ca44d316c9d0010dc0c90cb32b22b3f77edc80
Author: Darren Sessions <dsessions at digium.com>
Date:   Tue Jul 5 08:12:59 2011 -0500

    modified the built-in event system (for startup and shutdown) to be compatible with the changes that were made when the test-suite core was adapted for the documentation mode

diff --git a/lib/python/yaml_parser.py b/lib/python/yaml_parser.py
index c407988..ba727e0 100755
--- a/lib/python/yaml_parser.py
+++ b/lib/python/yaml_parser.py
@@ -57,7 +57,7 @@ class yamlBase:
         else:
             return
         test['path'] = 'events'
-        sysEvent = {event: [test]} 
+        sysEvent = {event: {'tests':[test]}}
         self.returnData.append(sysEvent)
 
 class testcases(yamlBase):

commit cb312d79297e03b263ebcc92df968f1464d87ca6
Author: Darren Sessions <dsessions at digium.com>
Date:   Fri Jul 1 08:54:40 2011 -0500

    added back in the docs to the blind transfer test and fixed some verbage in the attended.

diff --git a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
index f7296a3..a295fdd 100644
--- a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
@@ -2,7 +2,7 @@ name : Functional_Attended_Transfer
 docs :
     template : generic
     category : functional
-    summary : Test an attended call transfer using REFER.
+    summary : Test attended call transfers.
     description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for three endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Three SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for one of two SIPp UAS hosts. Once the call is setup with the first SIPp UAS host, the SIPp UAC sends an INVITE to the second and then sends a REFER to Asterisk SCF to transfer the call it setup to the first SIPp UAS to the second SIPp UAS."
     repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
     components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
diff --git a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
index 7b403ed..43afa3e 100644
--- a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
@@ -1,4 +1,12 @@
 name : Functional_Blind_Transfer
+docs :
+    template : generic
+    category : functional
+    summary : Test blind call transfers.
+    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for three endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Three SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for one of two SIPp UAS hosts. Once the call is setup with the first SIPp UAS host, the SIPp UAC sends a REFER to Asterisk SCF to transfer the call it setup to the first SIPp UAS to the second SIPp UAS."
+    repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
+    components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
+    requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
 tests :
     - ipv4toipv4_transfer_to_ipv4 :
         expected_failure : True

commit 58477d302a51376db9657ce24ad5453ccaf5fc29
Author: Darren Sessions <dsessions at digium.com>
Date:   Fri Jul 1 08:52:01 2011 -0500

    Finished up the attended call transfer test and docs

diff --git a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/call_then_attended_transfer.xml b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/call_then_attended_transfer.xml
new file mode 100644
index 0000000..c18a976
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/call_then_attended_transfer.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="Send Call then Blind Transfer">
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        INVITE sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>
+        Call-ID: [call_id]
+        CSeq: 1 INVITE
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+    </send>
+
+    <recv response="100" optional="true" />
+    <recv response="180" optional="true" />
+    <recv response="183" optional="true" />
+    <recv response="200" rtd="true" rrs="true" />
+
+    <send>
+        <![CDATA[
+
+        ACK sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>[peer_tag_param]
+        Call-ID: [call_id]
+        CSeq: 1 ACK
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <pause milliseconds="1000" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        INVITE sip:[field3 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field3 line="[$line]"] <sip:[field3 line="[$line]"]@[remote_ip]:[remote_port]>
+        Call-ID: [call_id]
+        CSeq: 1 INVITE
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+    </send>
+
+    <recv response="100" optional="true" />
+    <recv response="180" optional="true" />
+    <recv response="183" optional="true" />
+    <recv response="200" rtd="true" rrs="true" />
+
+    <send>
+        <![CDATA[
+
+        ACK sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>[peer_tag_param]
+        Call-ID: [call_id]
+        CSeq: 1 ACK
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <pause milliseconds="1000" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        REFER sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>[peer_tag_param]
+        Call-ID: [call_id]
+        CSeq: 2 REFER
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+        Refer-To: <sip:[field3 line="[$line]"]@[remote_ip]:[remote_port]>
+        Reffered-By: <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>
+
+        ]]>
+    </send>
+
+    <recv response="200" optional="false" />
+    <recv request="NOTIFY" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        [last_CSeq:]
+        [last_Record-Route:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv request="NOTIFY" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        [last_CSeq:]
+        [last_Record-Route:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call.xml b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call.xml
new file mode 100644
index 0000000..a7e0de3
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="wait for a call followed by a hangup">
+
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <recv request="INVITE" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 180 Ringing
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+    <send>
+
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+        Supported: 100rel,replaces
+        User-Agent: SIPp
+        Accept-Language: en
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+
+    </send>
+
+    <recv request="ACK" optional="false" />
+    <recv request="BYE" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call_do_hangup.xml b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call_do_hangup.xml
new file mode 100644
index 0000000..0ee9b88
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/scenarios/wait_for_call_do_hangup.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="wait for a call, then hangup">
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <recv request="INVITE" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 180 Ringing
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+        Supported: 100rel,replaces
+        User-Agent: SIPp
+        Accept-Language: en
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+    </send>
+
+    <recv request="ACK" optional="false" />
+
+    <pause milliseconds="3000" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        BYE sip:10.19.139.77:5060 SIP/2.0
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        CSeq: 2 BYE
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv response="200" optional="false" />
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
new file mode 100644
index 0000000..f7296a3
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Attended_Transfer/testcase.yaml
@@ -0,0 +1,131 @@
+name : Functional_Attended_Transfer
+docs :
+    template : generic
+    category : functional
+    summary : Test an attended call transfer using REFER.
+    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for three endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Three SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for one of two SIPp UAS hosts. Once the call is setup with the first SIPp UAS host, the SIPp UAC sends an INVITE to the second and then sends a REFER to Asterisk SCF to transfer the call it setup to the first SIPp UAS to the second SIPp UAS."
+    repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
+    components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
+    requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
+tests :
+    - ipv4toipv4_transfer_to_ipv4 :
+        expected_failure : True
+        timeline:
+            - wireshark :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start:
+                        host_filter :
+                            - testsuite-remote-1.digium.internal
+                            - testsuite-remote-2.digium.internal
+                            - testsuite-remote-3.digium.internal
+                            - testsuite-remote-4.digium.internal
+                        protocol_filter :
+                            - sip
+                            - rtp
+                            - icmp
+                            - t38
+                            - dns
+            - asteriskscf_icebox :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start :
+                        - service_locator
+                        - bridge
+                        - routing
+                        - sip_session_gateway
+                        - media_rtp_pjmedia
+            - asteriskscf_configurator :
+                service_locator_host : testsuite-remote-1.digium.internal
+                configuration_wipe : False
+                cmd :
+                    sip :
+                        - listen_udp4 :
+                            type : transport_udp
+                            host : testsuite-remote-1.digium.internal
+                            port : 5060
+                            ipv4oripv6 : ipv4
+                        - waitforcall :
+                            type : endpoint
+                            targethost : testsuite-remote-2.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                        - waitforcalldohangup :
+                            type : endpoint
+                            targethost : testsuite-remote-3.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                        - callthenattendedtransfer :
+                            type : endpoint
+                            targethost : testsuite-remote-4.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                    rtp :
+                         - general :
+                            startport : 10001
+                            endport : 20000
+                            workerthreadcount : 4
+            - sipp:
+                cmd :
+                    - generate_injection_file :
+                        redistribute_to_hosts :
+                            - testsuite-remote-2.digium.internal
+                            - testsuite-remote-3.digium.internal
+                            - testsuite-remote-4.digium.internal
+                        matrix :
+                            - 'USER' 
+                            - '# from, expiry, to, refer-to'
+                            - 'waitforcall;120;callthenattendedtransfer;waitforcalldohangup'
+                            - 'waitforcalldohangup;120;waitforcall;callthenattendedtransfer'
+                            - 'callthenattendedtransfer;120;waitforcalldohangup;waitforcall'
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uas :
+                        scenario_file : wait_for_call.xml
+                        index : 0
+                        transport : udp
+                        ipv4oripv6 : ipv4
+                        timeout : 120
+            - sipp:
+                testsuite_remote_host : testsuite-remote-3.digium.internal
+                cmd :
+                    - uas :
+                        scenario_file : wait_for_call_do_hangup.xml
+                        index : 0
+                        transport : udp
+                        ipv4oripv6 : ipv4
+                        timeout : 120
+            - sipp:
+                testsuite_remote_host : testsuite-remote-4.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : call_then_attended_transfer.xml
+                        index : 0
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv4
+                        transport : udp
+                        timeout : 120
+            - wireshark :
+                run_on_test_failure : True
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    stop :

commit 51c7f3cdb109d9c08216f742322bab8dd98ccc4b
Author: Darren Sessions <dsessions at digium.com>
Date:   Thu Jun 30 12:55:46 2011 -0500

    Added the blind transfer test.

diff --git a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/call_then_blind_transfer.xml b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/call_then_blind_transfer.xml
new file mode 100644
index 0000000..5465a7c
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/call_then_blind_transfer.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="Send Call then Blind Transfer">
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        INVITE sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>
+        Call-ID: [call_id]
+        CSeq: 1 INVITE
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+    </send>
+
+    <recv response="100" optional="true" />
+    <recv response="180" optional="true" />
+    <recv response="183" optional="true" />
+    <recv response="200" rtd="true" rrs="true" />
+
+    <send>
+        <![CDATA[
+
+        ACK sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>[peer_tag_param]
+        Call-ID: [call_id]
+        CSeq: 1 ACK
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <pause milliseconds="1000" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        REFER sip:[field2 line="[$line]"]@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: [field0 line="[$line]"] <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>;tag=[call_number]
+        To: [field2 line="[$line]"] <sip:[field2 line="[$line]"]@[remote_ip]:[remote_port]>[peer_tag_param]
+        Call-ID: [call_id]
+        CSeq: 2 REFER
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+        Refer-To: <sip:[field3 line="[$line]"]@[remote_ip]:[remote_port]>
+        Reffered-By: <sip:[field0 line="[$line]"]@[local_ip]:[local_port]>
+
+        ]]>
+    </send>
+
+    <recv response="200" optional="false" />
+    <recv request="NOTIFY" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        [last_CSeq:]
+        [last_Record-Route:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv request="NOTIFY" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        [last_CSeq:]
+        [last_Record-Route:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call.xml b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call.xml
new file mode 100644
index 0000000..a7e0de3
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="wait for a call followed by a hangup">
+
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <recv request="INVITE" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 180 Ringing
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+    <send>
+
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+        Supported: 100rel,replaces
+        User-Agent: SIPp
+        Accept-Language: en
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+
+    </send>
+
+    <recv request="ACK" optional="false" />
+    <recv request="BYE" optional="false" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call_do_hangup.xml b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call_do_hangup.xml
new file mode 100644
index 0000000..6c20556
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/scenarios/wait_for_call_do_hangup.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="wait for a call, then hangup">
+    <Global variables="file,user" />
+    <nop>
+        <action>
+            <lookup assign_to="line" file="[$file]" key="[$user]" />
+        </action>
+    </nop>
+    <Reference variables="file,user" />
+
+    <recv request="INVITE" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 180 Ringing
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=2
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
+        Supported: 100rel,replaces
+        User-Agent: SIPp
+        Accept-Language: en
+        Content-Type: application/sdp
+        Content-Length: [len]
+
+        v=0
+        o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+        s=-
+        c=IN IP[media_ip_type] [media_ip]
+        t=0 0
+        m=audio [media_port] RTP/AVP 0
+        a=rtpmap:0 PCMU/8000
+
+        ]]>
+    </send>
+
+    <recv request="ACK" optional="false" />
+
+    <pause milliseconds="2000" />
+
+    <send retrans="500">
+        <![CDATA[
+
+        BYE sip:10.19.139.77:5060 SIP/2.0
+        [last_Via:]
+        [last_From:]
+        [last_To:]
+        [last_Call-ID:]
+        CSeq: 2 BYE
+        Contact: sip:[field0 line="[$line]"]@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv response="200" optional="false" />
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
new file mode 100644
index 0000000..7b403ed
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Blind_Transfer/testcase.yaml
@@ -0,0 +1,123 @@
+name : Functional_Blind_Transfer
+tests :
+    - ipv4toipv4_transfer_to_ipv4 :
+        expected_failure : True
+        timeline:
+            - wireshark :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start:
+                        host_filter :
+                            - testsuite-remote-1.digium.internal
+                            - testsuite-remote-2.digium.internal
+                            - testsuite-remote-3.digium.internal
+                            - testsuite-remote-4.digium.internal
+                        protocol_filter :
+                            - sip
+                            - rtp
+                            - icmp
+                            - t38
+                            - dns
+            - asteriskscf_icebox :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start :
+                        - service_locator
+                        - bridge
+                        - routing
+                        - sip_session_gateway
+                        - media_rtp_pjmedia
+            - asteriskscf_configurator :
+                service_locator_host : testsuite-remote-1.digium.internal
+                configuration_wipe : False
+                cmd :
+                    sip :
+                        - listen_udp4 :
+                            type : transport_udp
+                            host : testsuite-remote-1.digium.internal
+                            port : 5060
+                            ipv4oripv6 : ipv4
+                        - waitforcall :
+                            type : endpoint
+                            targethost : testsuite-remote-2.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                        - waitforcalldohangup :
+                            type : endpoint
+                            targethost : testsuite-remote-3.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                        - callthenblindtransfer :
+                            type : endpoint
+                            targethost : testsuite-remote-4.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                    rtp :
+                         - general :
+                            startport : 10001
+                            endport : 20000
+                            workerthreadcount : 4
+            - sipp:
+                cmd :
+                    - generate_injection_file :
+                        redistribute_to_hosts :
+                            - testsuite-remote-2.digium.internal
+                            - testsuite-remote-3.digium.internal
+                            - testsuite-remote-4.digium.internal
+                        matrix :
+                            - 'USER' 
+                            - '# from, expiry, to, refer-to'
+                            - 'waitforcall;120;callthenblindtransfer;waitforcalldohangup'
+                            - 'waitforcalldohangup;120;waitforcall;callthenblindtransfer'
+                            - 'callthenblindtransfer;120;waitforcalldohangup;waitforcall'
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uas :
+                        scenario_file : wait_for_call.xml
+                        index : 0
+                        transport : udp
+                        ipv4oripv6 : ipv4
+                        timeout : 120
+            - sipp:
+                testsuite_remote_host : testsuite-remote-3.digium.internal
+                cmd :
+                    - uas :
+                        scenario_file : wait_for_call_do_hangup.xml
+                        index : 0
+                        transport : udp
+                        ipv4oripv6 : ipv4
+                        timeout : 120
+            - sipp:
+                testsuite_remote_host : testsuite-remote-4.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : call_then_blind_transfer.xml
+                        index : 0
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv4
+                        transport : udp
+                        timeout : 120
+            - wireshark :
+                run_on_test_failure : True
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    stop :

commit 58a04e9d0621137986ec43affe96be4e8af85334
Author: Darren Sessions <dsessions at digium.com>
Date:   Thu Jun 30 12:44:39 2011 -0500

    Added the options method test from the Asterisk test-suite. (because it only took 3-4 minutes)

diff --git a/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options.xml b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options.xml
new file mode 100644
index 0000000..3f0e075
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="UAC OPTIONS">
+    <send retrans="500"> <![CDATA[
+
+        OPTIONS sip:1234@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
+        To: Asterisk <sip:1234@[remote_ip]:[remote_port]>
+        Call-ID: [call_id]
+        CSeq: 1 OPTIONS
+        Contact: sip:sipp@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Subject: Asterisk Testsuite
+        Content-Length: [len]
+
+        ]]>
+    </send>
+    <recv response="200"/>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options2.xml b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options2.xml
new file mode 100644
index 0000000..a67ec81
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/scenarios/options2.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="UAC OPTIONS">
+    <send retrans="500"> <![CDATA[
+
+        OPTIONS sip:5555@[remote_ip]:[remote_port] SIP/2.0
+        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+        From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
+        To: Asterisk <sip:5555@[remote_ip]:[remote_port]>
+        Call-ID: [call_id]
+        CSeq: 1 OPTIONS
+        Contact: sip:sipp@[local_ip]:[local_port]
+        Max-Forwards: 70
+        Subject: Asterisk Testsuite
+        Content-Length: [len]
+
+        ]]>
+    </send>
+    <recv response="404"/>
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/testcase.yaml
new file mode 100644
index 0000000..f4dc514
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Verify_Options_Method/testcase.yaml
@@ -0,0 +1,170 @@
+name : Functional_Verify_Options_Method
+docs :
+    template : generic
+    category : functional
+    summary : Test SIP OPTIONS handling
+    description : 'Run two SIPp scnearios that send an OPTIONS request.  In one instance, we expect a 200 response, and in the other we expect a 404 response.{br}{br}This test case is comprised of two sub-tests that include ipv4 and ipv6 transport configurations.'
+    repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
+    components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
+    requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
+    list_test : ipv4toipv4
+tests :
+    - ipv4 :
+        expected_failure : True
+        timeline:
+            - wireshark :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start:
+                        host_filter :
+                            - testsuite-remote-1.digium.internal
+                            - testsuite-remote-2.digium.internal
+                        protocol_filter :
+                            - sip
+                            - rtp
+                            - icmp
+                            - t38
+                            - dns
+            - asteriskscf_icebox :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start :
+                        - service_locator
+                        - bridge
+                        - routing
+                        - sip_session_gateway
+                        - media_rtp_pjmedia
+            - asteriskscf_configurator :
+                service_locator_host : testsuite-remote-1.digium.internal
+                configuration_wipe : False
+                cmd :
+                    sip :
+                        - listen_udp4 :
+                            type : transport_udp
+                            host : testsuite-remote-1.digium.internal
+                            port : 5060
+                            ipv4oripv6 : ipv4
+                        - service :
+                            type : endpoint
+                            targethost : testsuite-remote-2.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv4
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : False
+                    rtp :
+                         - general :
+                            startport : 10001
+                            endport : 20000
+                            workerthreadcount : 4
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : options.xml
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv4
+                        transport : udp
+                        timeout : 10
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : options2.xml
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv4
+                        transport : udp
+                        timeout : 10
+            - wireshark :
+                run_on_test_failure : True
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    stop :
+    - ipv6 :
+        expected_failure : True
+        timeline:
+            - wireshark :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start:
+                        host_filter :
+                            - testsuite-remote-1.digium.internal
+                            - testsuite-remote-2.digium.internal
+                        protocol_filter :
+                            - sip
+                            - rtp
+                            - icmp
+                            - t38
+                            - dns
+            - asteriskscf_icebox :
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    start :
+                        - service_locator
+                        - logger_server
+                        - bridge
+                        - routing
+                        - sip_session_gateway
+                        - media_rtp_pjmedia
+            - asteriskscf_configurator :
+                service_locator_host : testsuite-remote-1.digium.internal
+                configuration_wipe : False
+                cmd :
+                    sip :
+                        - listen_udp6 :
+                            type : transport_udp
+                            host : testsuite-remote-1.digium.internal
+                            port : 5060
+                            ipv4oripv6 : ipv6
+                        - service :
+                            type : endpoint
+                            targethost : testsuite-remote-2.digium.internal
+                            targetport : 5060
+                            sourcehost : testsuite-remote-1.digium.internal
+                            sourceport : 5060
+                            ipv4oripv6 : ipv6
+                            direction : both
+                            securetransport : none
+                            rtpoveripv6 : True
+                    rtp :
+                         - general :
+                            startport : 10001
+                            endport : 20000
+                            workerthreadcount : 4
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : options.xml
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv6
+                        transport : udp
+                        timeout : 10
+            - sipp:
+                testsuite_remote_host : testsuite-remote-2.digium.internal
+                cmd :
+                    - uac :
+                        scenario_file : options2.xml
+                        calls : 1
+                        cps : 1
+                        duration : 10
+                        targethost : testsuite-remote-1.digium.internal
+                        ipv4oripv6 : ipv6
+                        transport : udp
+                        timeout : 10
+            - wireshark :
+                run_on_test_failure : True
+                testsuite_remote_host : testsuite-remote-1.digium.internal
+                cmd :
+                    stop :

commit 29ac7ec9b9da542cbeaff999469b9002346e5a45
Author: Darren Sessions <dsessions at digium.com>
Date:   Thu Jun 30 12:42:08 2011 -0500

    Tweaked the expected failure code in the test-suite server so output properly refects if that option is set within a test.

diff --git a/testsuite.py b/testsuite.py
index 5297a5f..c271569 100755
--- a/testsuite.py
+++ b/testsuite.py
@@ -31,8 +31,6 @@ import junitxml
 import confluence
 import yaml_parser
 
-import dumper
-
 class __main__:
     def __init__(self, argv=None):
         self._banner()
@@ -180,7 +178,12 @@ class __main__:
                                             except:
                                                 pass
 
-                                    if self.globalVars['testSuccess'] == False:
+                                    skipFailure = False
+                                    if 'expected_failure' in subTestCase[testName]:
+                                        if subTestCase[testName]['expected_failure'] == True:
+                                            skipFailure = True
+
+                                    if self.globalVars['testSuccess'] == False and skipFailure == False:
                                         print >> sys.stderr, '   |- Test "' + testName + '" - FAILED!\n    \- ' + self.globalVars['testMsg']
                                         xmlFailureMsg = '%s' % self.globalVars['testMsg']
                                         if 'bambooBuildURL' in self.globalVars:
@@ -192,8 +195,12 @@ class __main__:
                                             if self.globalVars['testInfo']['testOpts']['stop_tests_on_failure'] == True:
                                                 stopTests = True
                                         break
-                
-                                    print >> sys.stderr, '   |- ' + testName + ' - PASSED! - %s.%s seconds' % (timerDelta.seconds, timerDelta.microseconds)
+
+                                    passedMsg = 'PASSED!'               
+                                    if skipFailure == True:
+                                        passedMsg = '%s - (Expected Failure)' % passedMsg 
+
+                                    print >> sys.stderr, '   |- ' + testName + ' - %s - %s.%s seconds' % (passedMsg, timerDelta.seconds, timerDelta.microseconds)
                                     subTestElement = junitxml.xml().setProperty(subTestElement, 'time', '%s.%s' % (timerDelta.seconds, timerDelta.microseconds))
                             else:
                                 print >> sys.stderr, '   |- ' + testName + ' - FAILED!\n    \- No test data defined!'
@@ -267,10 +274,9 @@ class __main__:
                     confluence.process(list[testCategory]['docs']['title'], list[testCategory]['docs']['space'], list[testCategory]['docs']['parentPage'], pageTemplate, list[testCategory]['lastModDates'])
 
         if self.globalVars['mode'] == 'testing':
-            print >> sys.stderr, "\n\n" + junitxml.xml().prettyXml(x)
             results = file.file().write('testsuite_results.xml', junitxml.xml().prettyXml(x))
             if results['success'] == False:
-                print >> sys.stderr, 'Unable to generate XML test results file. %s' % results['msg']
+                print >> sys.stderr, '\n\n Unable to generate XML test results file. %s' % results['msg']
             cleanup()
 
         return

commit 2cace2f5baee18a39dec3000cc75c6a89ae4c063
Author: Darren Sessions <dsessions at digium.com>
Date:   Thu Jun 30 10:44:02 2011 -0500

    Finished re-organizing the test names to include failover, endpoint, and other types of tests. Added the Functional_Simple_Endpoint, Functional_Busy_Endpoint, Functional_Congestion_Endpoint, and Functional_Timeout_Endpoint testcases which have four tests a piece.

diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml b/tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/scenarios/call.xml
similarity index 100%
copy from tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml
copy to tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/scenarios/call.xml
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/wait_for_call_busy.xml b/tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/scenarios/wait_for_call_busy.xml
similarity index 100%
copy from tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/wait_for_call_busy.xml
copy to tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/scenarios/wait_for_call_busy.xml
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/testcase.yaml
similarity index 94%
copy from tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
copy to tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/testcase.yaml
index 2ce1c27..4a40562 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Busy_Endpoint/testcase.yaml
@@ -1,8 +1,8 @@
-name : Functional_Call_Busy
+name : Functional_Busy_Endpoint
 docs :
     template : generic
     category : functional
-    summary : Test busy response from endpoint.
+    summary : Test busy response using a SIPp UAC <> Asterisk SCF <> SIPp UAS scenario.
     description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for the SIPp UAS, and the other uses a custom SIPp UAS scenario that replies back with a '486 - Busy Here' message.{br}{br}A call is sent from the SIPp UAC to Asterisk SCF with the expectation that it will forward the call to the second SIPp process running as a UAS and will forward the 486 response back to the SIPp UAC.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6."
     repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
     components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
@@ -17,7 +17,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -46,7 +46,7 @@ tests :
                             ipv4oripv6 : ipv4
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -70,7 +70,7 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
                         scenario_file : wait_for_call_busy.xml
@@ -103,7 +103,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -137,7 +137,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -161,7 +161,7 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
                         scenario_file : wait_for_call_busy.xml
@@ -194,7 +194,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -228,7 +228,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -252,7 +252,7 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
                         scenario_file : wait_for_call_busy.xml
@@ -285,7 +285,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -314,7 +314,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -338,7 +338,7 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
                         scenario_file : wait_for_call_busy.xml
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/call.xml
similarity index 89%
copy from tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml
copy to tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/call.xml
index 20c2824..2a84ea2 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml
+++ b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/call.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE scenario SYSTEM "sipp.dtd">
 
-<scenario name="Basic Sipstone UAC">
+<scenario name="call">
   <send retrans="500">
     <![CDATA[
 
@@ -32,7 +31,7 @@
         optional="true">
   </recv>
 
-  <recv response="486" optional="false">
+  <recv response="503" optional="false">
   </recv>
 
   <send>
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/wait_for_call_busy.xml b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/wait_for_call_congestion.xml
similarity index 82%
rename from tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/wait_for_call_busy.xml
rename to tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/wait_for_call_congestion.xml
index 5298395..ff5bd1e 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/wait_for_call_busy.xml
+++ b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/scenarios/wait_for_call_congestion.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 
-<scenario name="wait for a call followed by a hangup">
+<scenario name="wait_for_call_congestion">
     <recv request="INVITE" crlf="true" />
 
     <send>
         <![CDATA[
 
-        SIP/2.0 486 Busy Here
+        SIP/2.0 503 Service Unavailable
         [last_Via:]
         [last_From:]
         [last_To:];tag=[call_number]
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/testcase.yaml
similarity index 90%
copy from tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
copy to tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/testcase.yaml
index 2ce1c27..cb28080 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Congestion_Endpoint/testcase.yaml
@@ -1,9 +1,9 @@
-name : Functional_Call_Busy
+name : Functional_Congestion_Endpoint
 docs :
     template : generic
     category : functional
-    summary : Test busy response from endpoint.
-    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for the SIPp UAS, and the other uses a custom SIPp UAS scenario that replies back with a '486 - Busy Here' message.{br}{br}A call is sent from the SIPp UAC to Asterisk SCF with the expectation that it will forward the call to the second SIPp process running as a UAS and will forward the 486 response back to the SIPp UAC.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6."
+    summary : Test '503' congestion message using a SIPp UAC <> Asterisk SCF <> SIPp UAS scenario.
+    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for the SIPp UAS and then the UAS immediately sends a '503' congestion message.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6."
     repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
     components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
     requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
@@ -17,7 +17,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -46,7 +46,7 @@ tests :
                             ipv4oripv6 : ipv4
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -70,10 +70,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_congestion.xml
                         transport : udp
                         ipv4oripv6 : ipv4
                         timeout : 120
@@ -103,7 +103,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -137,7 +137,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -161,10 +161,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_congestion.xml
                         transport : udp
                         ipv4oripv6 : ipv4
                         timeout : 120
@@ -194,7 +194,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -228,7 +228,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -252,10 +252,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_congestion.xml
                         transport : udp
                         ipv4oripv6 : ipv6
                         timeout : 120
@@ -285,7 +285,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -314,7 +314,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -338,10 +338,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_congestion.xml
                         transport : udp
                         ipv4oripv6 : ipv6
                         timeout : 120
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Simple/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Simple_Endpoint/testcase.yaml
similarity index 92%
rename from tests/asterisk_scf_components/sip/Functional_Call_Simple/testcase.yaml
rename to tests/asterisk_scf_components/sip/Functional_Simple_Endpoint/testcase.yaml
index 8a694c3..996aec5 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Simple/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Simple_Endpoint/testcase.yaml
@@ -1,17 +1,19 @@
-name : Functional_Basic_CallSetup
+name : Functional_Simple_Endpoint
 docs :
-    summary : Test basic call setup.
-    description :   'Start Asterisk SCF and use the configurator to push two endpoints to the
-                    SIP Session Gateway. Using SIPp, send a call to Asterisk SCF with the 
-                    expectation that it will forward the call to the second SIPp process. This
-                    test additionally tests ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and
-                    ipv6 <> ipv6 transports.'
+    template : generic
+    category : functional
+    summary : Test simple call setup using a SIPp UAC <> Asterisk SCF <> SIPp UAS scenario.
+    description : 'This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses the SIPp embedded UAC scenario, and the other uses the SIPp embedded UAS scenario.{br}{br}A call is sent from the SIPp UAC to Asterisk SCF with the expectation that it will forward the call to the second SIPp process running as a UAS.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6.'
     repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
+    components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
+    requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
+    list_test : ipv4toipv4
 tests :
     - ipv4toipv4 :
         expected_failure : False 
         timeline:
             - wireshark :
+                doc_desc : 'Executes dumpcap (from Wireshark) using a host matrix filter to capture only specific types of packets from specific hosts.'
                 testsuite_remote_host : testsuite-remote-1.digium.internal
                 cmd :
                     start:
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/call.xml
similarity index 56%
rename from tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml
rename to tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/call.xml
index 20c2824..7c7ee92 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/scenarios/call.xml
+++ b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/call.xml
@@ -32,22 +32,46 @@
         optional="true">
   </recv>
 
-  <recv response="486" optional="false">
+  <recv response="180" optional="false">
   </recv>
 
-  <send>
+<pause milliseconds="2000" />
+
+  <send retrans="500">
+
     <![CDATA[
 
-      ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
-      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
-      From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
-      To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
-      Call-ID: [call_id]
-      CSeq: 1 ACK
-      Contact: sip:sipp@[local_ip]:[local_port]
-      Max-Forwards: 70
-      Subject: Performance Test
-      Content-Length: 0
+    CANCEL sip:[service]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    Max-Forwards: 70
+    From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
+    [last_To:]
+    Call-ID: [call_id]
+    CSeq: 1 CANCEL
+    Content-Length: 0
+
+    ]]>
+
+  </send>
+
+  <recv response="200" optional="false">
+  </recv>
+
+  <recv response="487" optional="false">
+  </recv>
+
+ <send>
+    <![CDATA[
+
+    ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
+    [last_To:]
+    Call-ID: [call_id]
+    CSeq: 1 ACK
+    Contact: sip:sipp@[local_ip]:[local_port]
+    Max-Forwards: 70
+    Content-Length: 0
 
     ]]>
   </send>
diff --git a/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/wait_for_call_timeout.xml b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/wait_for_call_timeout.xml
new file mode 100644
index 0000000..c6b2fcc
--- /dev/null
+++ b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/scenarios/wait_for_call_timeout.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="wait for a call followed by a hangup">
+    <recv request="INVITE" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 180 Ringing
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:service@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv request="CANCEL" crlf="true" />
+
+    <send>
+        <![CDATA[
+
+        SIP/2.0 487 Request Terminated
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        CSeq: 102 INVITE
+        Contact: sip:service@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+    <send>
+        <![CDATA[
+
+        SIP/2.0 200 OK
+        [last_Via:]
+        [last_From:]
+        [last_To:];tag=[call_number]
+        [last_Call-ID:]
+        [last_CSeq:]
+        Contact: sip:service@[local_ip]:[local_port]
+        Content-Length: 0
+
+        ]]>
+    </send>
+
+    <recv request="ACK" optional="false" />
+</scenario>
diff --git a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/testcase.yaml
similarity index 90%
rename from tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
rename to tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/testcase.yaml
index 2ce1c27..6215194 100644
--- a/tests/asterisk_scf_components/sip/Functional_Call_Busy/testcase.yaml
+++ b/tests/asterisk_scf_components/sip/Functional_Timeout_Endpoint/testcase.yaml
@@ -1,9 +1,9 @@
-name : Functional_Call_Busy
+name : Functional_Timeout_Endpoint
 docs :
     template : generic
     category : functional
-    summary : Test busy response from endpoint.
-    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for the SIPp UAS, and the other uses a custom SIPp UAS scenario that replies back with a '486 - Busy Here' message.{br}{br}A call is sent from the SIPp UAC to Asterisk SCF with the expectation that it will forward the call to the second SIPp process running as a UAS and will forward the 486 response back to the SIPp UAC.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6."
+    summary : Test CANCEL (timeout) response using a SIPp UAC <> Asterisk SCF <> SIPp UAS scenario.
+    description : "This test starts Asterisk SCF on a test-suite remote agent and uses the configurator to push a configuration for two endpoints to the Asterisk SCF SIP Session Gateway on that remote.{br}{br}Two SIPp processes are then started on separate test-suite remote agents. One test-suite remote agent uses a custom SIPp scenario that sends an INVITE to Asterisk SCF destined for the SIPp UAS and then immediately sends a 'CANCEL' message. The second remote agent simply responds back to Asterisk SCF with a 487 message.{br}{br}This test case is comprised of several sub-tests that include various transport configurations including: ipv4 <> ipv4, ipv4 <> ipv6, ipv6 <> ipv4, and ipv6 <> ipv6."
     repo_url : 'http://git.asterisk.org/gitweb/?p=asterisk-scf/release/testsuite.git;a=tree;f=bamboo;hb=HEAD'
     components : 'Service Locator, Bridge, Routing, Sip Session Gateway, and Media_RTP_PJMedia'
     requirements : 'Asterisk SCF, SIPp, Wireshark (optional), CallFlow (optional)'
@@ -17,7 +17,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -46,7 +46,7 @@ tests :
                             ipv4oripv6 : ipv4
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -70,10 +70,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_timeout.xml
                         transport : udp
                         ipv4oripv6 : ipv4
                         timeout : 120
@@ -103,7 +103,7 @@ tests :
                     start:
                         host_filter :
                             - testsuite-remote-1.digium.internal
-                            - testsuite-remote-4.digium.internal
+                            - testsuite-remote-2.digium.internal
                             - testsuite-remote-3.digium.internal
                         protocol_filter :
                             - sip
@@ -137,7 +137,7 @@ tests :
                             ipv4oripv6 : ipv6
                         - service :
                             type : endpoint
-                            targethost : testsuite-remote-4.digium.internal
+                            targethost : testsuite-remote-2.digium.internal
                             targetport : 5060
                             sourcehost : testsuite-remote-1.digium.internal
                             sourceport : 5060
@@ -161,10 +161,10 @@ tests :
                             endport : 20000
                             workerthreadcount : 4
             - sipp:
-                testsuite_remote_host : testsuite-remote-4.digium.internal
+                testsuite_remote_host : testsuite-remote-2.digium.internal
                 cmd :
                     - uas :
-                        scenario_file : wait_for_call_busy.xml
+                        scenario_file : wait_for_call_timeout.xml
                         transport : udp
                         ipv4oripv6 : ipv4
                         timeout : 120
@@ -194,7 +194,7 @@ tests :
... 63 lines suppressed ...


-- 
asterisk-scf/integration/testsuite.git



More information about the asterisk-scf-commits mailing list