Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2012-07-01 17:28:57 +00:00
parent 628425ba6f
commit 37256ea45d
1947 changed files with 1120896 additions and 37 deletions

View File

@@ -0,0 +1,4 @@
This directory contains files to run automated/unattended tests for PJSIP.
See https://trac.pjsip.org/repos/wiki/AutomatedTesting for more info.

View File

@@ -0,0 +1,354 @@
#!/usr/bin/python
import optparse
import os
import platform
import socket
import subprocess
import sys
PROG = "r" + "$Rev$".strip("$ ").replace("Rev: ", "")
PYTHON = os.path.basename(sys.executable)
build_type = ""
vs_target = ""
s60_target = ""
no_test = False
no_pjsua_test = False
#
# Get gcc version
#
def gcc_version(gcc):
proc = subprocess.Popen(gcc + " -v", stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
ver = ""
while True:
s = proc.stdout.readline()
if not s:
break
if s.find("gcc version") >= 0:
ver = s.split(None, 3)[2]
break
proc.wait()
return "gcc-" + ver
#
# Get Visual Studio info
#
class VSVersion:
def __init__(self):
self.version = "8"
self.release = "2005"
proc = subprocess.Popen("cl", stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
while True:
s = proc.stdout.readline()
if s=="":
break
pos = s.find("Version")
if pos > 0:
proc.wait()
s = s[pos+8:]
ver = s.split(None, 1)[0]
major = ver[0:2]
if major=="12":
self.version = "6"
self.release = "98"
break
elif major=="13":
self.version = "7"
self.release = "2003"
break
elif major=="14":
self.version = "8"
self.release = "2005"
break
elif major=="15":
self.version = "9"
self.release = "2008"
break
elif major=="16":
self.version = "10"
self.release = "2010"
break
else:
self.version = "11"
self.release = "2012"
break
proc.wait()
self.vs_version = "vs" + self.version
self.vs_release = "vs" + self.release
#
# Get S60 SDK info
#
class S60SDK:
def __init__(self):
self.epocroot = ""
self.sdk = ""
self.device = ""
# Check that EPOCROOT is set
if not "EPOCROOT" in os.environ:
sys.stderr.write("Error: EPOCROOT environment variable is not set\n")
sys.exit(1)
epocroot = os.environ["EPOCROOT"]
# EPOCROOT must have trailing backslash
if epocroot[-1] != "\\":
epocroot = epocroot + "\\"
os.environ["EPOCROOT"] = epocroot
self.epocroot = epocroot
self.sdk = sdk1 = epocroot.split("\\")[-2]
self.device = "@" + self.sdk + ":com.nokia.s60"
# Check that correct device is set
proc = subprocess.Popen("devices", stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
sdk2 = ""
while True:
line = proc.stdout.readline()
if line.find("- default") > 0:
sdk2 = line.split(":",1)[0]
break
proc.wait()
if sdk1 != sdk2:
sys.stderr.write("Error: default SDK in device doesn't match EPOCROOT\n")
sys.stderr.write("Default device SDK = '" + sdk2 + "'\n")
sys.stderr.write("EPOCROOT SDK = '" + sdk1 + "'\n")
sys.exit(1)
self.name = sdk2.replace("_", "-")
def replace_vars(text):
global vs_target, s60_target, build_type, no_test, no_pjsua_test
suffix = ""
os_info = platform.system() + platform.release() + "-" + platform.machine()
# osinfo
s60sdk_var = None
if build_type == "s60":
s60sdk_var = S60SDK()
os_info = s60sdk_var.name
elif platform.system().lower() == "windows" or platform.system().lower() == "microsoft":
if platform.system().lower() == "microsoft":
os_info = platform.release() + "-" + platform.version() + "-" + platform.win32_ver()[2]
elif platform.system().lower() == "linux":
os_info = "-" + "-".join(platform.linux_distribution()[0:2])
# vs_target
if not vs_target and text.find("$(VSTARGET)") >= 0:
if build_type != "vs":
sys.stderr.write("Warning: $(VSTARGET) only valid for Visual Studio\n")
print "Enter Visual Studio vs_target name (e.g. Release, Debug) [Release]: ",
vs_target = sys.stdin.readline().replace("\n", "").replace("\r", "")
if not vs_target:
vs_target = "Release"
# s60_target
if not s60_target and text.find("$(S60TARGET)") >= 0:
if build_type != "s60":
sys.stderr.write("Warning: $(S60TARGET) only valid for S60\n")
print "Enter S60 target name (e.g. \"gcce urel\") [gcce urel]: ",
s60_target = sys.stdin.readline().replace("\n", "").replace("\r", "")
if not s60_target:
s60_target = "gcce urel"
# Suffix
if build_type == "vs":
suffix = "i386-Win32-vc8-" + vs_target
elif build_type == "s60":
suffix = s60sdk_var.name + "-" + s60_target.replace(" ", "-")
elif build_type == "gnu":
proc = subprocess.Popen("sh config.guess", cwd="../..",
shell=True, stdout=subprocess.PIPE)
suffix = proc.stdout.readline().rstrip(" \r\n")
else:
sys.stderr.write("Error: unsupported build type '" + build_type + "'\n")
sys.exit(1)
while True:
if text.find("$(PJSUA-TESTS)") >= 0:
if no_test==False and no_pjsua_test==False:
# Determine pjsua exe to use
exe = "../../pjsip-apps/bin/pjsua-" + suffix
proc = subprocess.Popen(PYTHON + " runall.py --list-xml -e " + exe,
cwd="../pjsua",
shell=True, stdout=subprocess.PIPE)
content = proc.stdout.read()
else:
content = ""
text = text.replace("$(PJSUA-TESTS)", content)
elif text.find("$(GCC)") >= 0:
text = text.replace("$(GCC)", gcc_version("gcc"))
elif text.find("$(VS)") >= 0:
vsver = VSVersion()
text = text.replace("$(VS)", VSVersion().vs_release)
elif text.find("$(VSTARGET)") >= 0:
text = text.replace("$(VSTARGET)", vs_target)
elif text.find("$(S60TARGET)") >= 0:
text = text.replace("$(S60TARGET)", s60_target)
elif text.find("$(S60TARGETNAME)") >= 0:
text = text.replace("$(S60TARGETNAME)", s60_target.replace(" ", "-"))
elif text.find("$(S60DEVICE)") >= 0:
text = text.replace("$(S60DEVICE)", s60sdk_var.device)
elif text.find("$(EPOCROOT)") >= 0:
text = text.replace("$(EPOCROOT)", s60sdk_var.epocroot)
elif text.find("$(DISABLED)") >= 0:
text = text.replace("$(DISABLED)", "0")
elif text.find("$(IPPROOT)") >= 0:
if not os.environ.has_key("IPPROOT"):
sys.stderr.write("Error: environment variable IPPROOT is needed but not set\n")
sys.exit(1)
text = text.replace("$(IPPROOT)", os.environ["IPPROOT"])
elif text.find("$(IPPSAMPLES)") >= 0:
if not os.environ.has_key("IPPSAMPLES"):
sys.stderr.write("Error: environment variable IPPSAMPLES is needed but not set\n")
sys.exit(1)
text = text.replace("$(IPPSAMPLES)", os.environ["IPPSAMPLES"])
elif text.find("$(IPPARCH)") >= 0:
if not os.environ.has_key("IPPARCH"):
text = text.replace("$(IPPARCH)", "")
else:
text = text.replace("$(IPPARCH)", os.environ["IPPARCH"])
elif text.find("$(OS)") >= 0:
text = text.replace("$(OS)", os_info)
elif text.find("$(SUFFIX)") >= 0:
text = text.replace("$(SUFFIX)", suffix)
elif text.find("$(HOSTNAME)") >= 0:
text = text.replace("$(HOSTNAME)", socket.gethostname())
elif text.find("$(PJDIR)") >= 0:
wdir = os.path.join(os.getcwd(), "../..")
wdir = os.path.normpath(wdir)
text = text.replace("$(PJDIR)", wdir)
elif text.find("$(NOP)") >= 0:
if platform.system().lower() == "windows" or platform.system().lower() == "microsoft":
cmd = "CMD /C echo Success"
else:
cmd = "echo Success"
text = text.replace("$(NOP)", cmd)
elif text.find("$(NOTEST)") >= 0:
if no_test:
str = '"1"'
else:
str = '"0"'
text = text.replace("$(NOTEST)", str)
else:
break
return text
def main(args):
global vs_target, s60_target, build_type, no_test, no_pjsua_test
output = sys.stdout
usage = """Usage: configure.py [OPTIONS] scenario_template_file
Where OPTIONS:
-o FILE Output to file, otherwise to stdout.
-t TYPE Specify build type. If not specified, it will be
asked if necessary. Values are:
vs: Visual Studio
gnu: Makefile based
s60: Symbian S60
-vstarget TARGETNAME Specify Visual Studio target name if build type is set
to vs. If not specified then it will be asked.
Sample target names:
- Debug
- Release
- or any other target in the project file
-s60target TARGETNAME Specify S60 target name if build type is set to s60.
If not specified then it will be asked. Sample target
names:
- "gcce udeb"
- "gcce urel"
-notest Disable all tests in the scenario.
-nopjsuatest Disable pjsua tests in the scenario.
"""
args.pop(0)
while len(args):
if args[0]=='-o':
args.pop(0)
if len(args):
output = open(args[0], "wt")
args.pop(0)
else:
sys.stderr.write("Error: needs value for -o\n")
sys.exit(1)
elif args[0]=='-vstarget':
args.pop(0)
if len(args):
vs_target = args[0]
args.pop(0)
else:
sys.stderr.write("Error: needs value for -vstarget\n")
sys.exit(1)
elif args[0]=='-s60target':
args.pop(0)
if len(args):
s60_target = args[0]
args.pop(0)
else:
sys.stderr.write("Error: needs value for -s60target\n")
sys.exit(1)
elif args[0]=='-t':
args.pop(0)
if len(args):
build_type = args[0].lower()
args.pop(0)
else:
sys.stderr.write("Error: needs value for -t\n")
sys.exit(1)
if not ["vs", "gnu", "s60"].count(build_type):
sys.stderr.write("Error: invalid -t argument value\n")
sys.exit(1)
elif args[0]=='-notest' or args[0]=='-notests':
args.pop(0)
no_test = True
elif args[0]=='-nopjsuatest' or args[0]=='-nopjsuatests':
args.pop(0)
no_pjsua_test = True
else:
break
if len(args) != 1:
sys.stderr.write(usage + "\n")
return 1
if not build_type:
defval = "vs"
if "SHELL" in os.environ:
shell = os.environ["SHELL"]
if shell.find("sh") > -1:
defval = "gnu"
print "Enter the build type (values: vs, gnu, s60) [%s]: " % (defval),
build_type = sys.stdin.readline().replace("\n", "").replace("\r", "")
if not build_type:
build_type = defval
tpl_file = args[len(args)-1]
if not os.path.isfile(tpl_file):
print "Error: unable to find template file '%s'" % (tpl_file)
return 1
f = open(tpl_file, "r")
tpl = f.read()
f.close()
tpl = replace_vars(tpl)
output.write(tpl)
if output != sys.stdout:
output.close()
return 0
if __name__ == "__main__":
rc = main(sys.argv)
sys.exit(rc)

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<Submit group="Experimental" build="$(SUFFIX)-$(GCC)-IPP" disabled="$(DISABLED)" >
<Update />
<FileWrite file="user.mak">
<![CDATA[
# Written by ccdash
export CFLAGS += -Wno-unused-label -g
]]>
</FileWrite>
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_HAS_IPV6 1
#define PJMEDIA_HAS_G7221_CODEC 0
#define PJMEDIA_HAS_INTEL_IPP 1
]]>
</FileWrite>
<Configure cmd='./aconfigure --enable-ipp --with-ipp="$(IPPROOT)" --with-ipp-samples="$(IPPSAMPLES)" --with-ipp-arch=$(IPPARCH)' />
<Build cmd="make dep &amp;&amp; make clean &amp;&amp; make" />
<Test name="pjlib-test" wdir="pjlib/bin" cmd="./pjlib-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjlib-util-test" wdir="pjlib-util/bin" cmd="./pjlib-util-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjnath-test" wdir="pjnath/bin" cmd="./pjnath-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjmedia-test" wdir="pjmedia/bin" cmd="./pjmedia-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjsip-test" wdir="pjsip/bin" cmd="./pjsip-test-$(SUFFIX)" disabled=$(NOTEST) />
$(PJSUA-TESTS)
</Submit>
</Scenario>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<Submit group="Experimental" build="$(SUFFIX)-$(GCC)" exclude="(.*amr.*)">
<Update />
<FileWrite file="user.mak">
<![CDATA[
# Written by ccdash
export CFLAGS += -Wno-unused-label -g
]]>
</FileWrite>
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_HAS_IPV6 1
#define PJMEDIA_HAS_G7221_CODEC 1
]]>
</FileWrite>
<Configure cmd="./aconfigure" />
<Build cmd="make dep &amp;&amp; make clean &amp;&amp; make" />
<Test name="pjlib-test" wdir="pjlib/bin" cmd="./pjlib-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjlib-util-test" wdir="pjlib-util/bin" cmd="./pjlib-util-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjnath-test" wdir="pjnath/bin" cmd="./pjnath-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjmedia-test" wdir="pjmedia/bin" cmd="./pjmedia-test-$(SUFFIX)" disabled=$(NOTEST) />
<Test name="pjsip-test" wdir="pjsip/bin" cmd="./pjsip-test-$(SUFFIX)" disabled=$(NOTEST) />
$(PJSUA-TESTS)
</Submit>
</Scenario>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<Submit group="Experimental" build="iPhoneOS-default">
<Update />
<FileWrite file="user.mak">
<![CDATA[
# Written by ccdash
export CFLAGS += -Wno-unused-label -g
]]>
</FileWrite>
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>
]]>
</FileWrite>
<Configure cmd="./configure-iphone" />
<Build cmd="make distclean &amp;&amp; make dep &amp;&amp; make clean &amp;&amp; make" />
</Submit>
</Scenario>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<Submit group="Experimental" build="$(OS)-$(VS)-$(VSTARGET)-default" exclude="(.*amr.*)">
<Update />
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_HAS_IPV6 1
#define PJMEDIA_HAS_G7221_CODEC 1
#define PJ_TODO(x)
]]>
</FileWrite>
<Configure cmd="cmd /c echo success" />
<Build cmd='vcbuild.exe /nologo /nohtmllog /nocolor /rebuild pjproject-vs8.sln "$(VSTARGET)|Win32"' />
<Test name="pjlib-test" info="" wdir="pjlib/bin" cmd="pjlib-test-i386-Win32-vc8-$(VSTARGET)" disabled=$(NOTEST)/>
<Test name="pjlib-util-test" info="" wdir="pjlib-util/bin" cmd="pjlib-util-test-i386-Win32-vc8-$(VSTARGET)" disabled=$(NOTEST) />
<Test name="pjnath-test" info="" wdir="pjnath/bin" cmd="pjnath-test-i386-Win32-vc8-$(VSTARGET)" disabled=$(NOTEST) />
<Test name="pjmedia-test" info="" wdir="pjmedia/bin" cmd="pjmedia-test-i386-Win32-vc8-$(VSTARGET)" disabled=$(NOTEST) />
<Test name="pjsip-test" info="" wdir="pjsip/bin" cmd="pjsip-test-i386-Win32-vc8-$(VSTARGET)" disabled=$(NOTEST) />
$(PJSUA-TESTS)
</Submit>
</Scenario>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)/tests/automated">
<Submit group="Experimental" build="Test-Preparation">
<Configure cmd="$(NOP)" />
<Build cmd="$(NOP)" />
<!-- GNU Makefile based scenario
Requirement:
- none
-->
<Test name="Configuring GNU scenario" cmd="python configure.py -t gnu -o gnu.xml gnu.xml.template" />
<!-- GNU Makefile with Intel IPP scenario.
Requirements:
- IPPROOT
- IPPSAMPLES
- IPPARCH (optional)
-->
<Test name="Configuring GNU IPP scenario" cmd="python configure.py -t gnu -o gnu-ipp.xml gnu-ipp.xml.template" />
<!-- iPhone target.
Requriement(s):
- valid SDK is installed
-->
<Test name="Configuring iPhone scenario" cmd="python configure.py -t gnu -o iphone.xml iphone.xml.template" />
<!-- MSVC target.
Requirements:
- Build from VS successfully
- VS paths are set
-->
<Test name="Configuring Visual Studio for Win32" cmd="python configure.py -t vs -vstarget Release -o msvc-win32.xml -nopjsuatest msvc.xml.template" />
<!-- Symbian target.
Requirement:
- EPOCROOT (modify below)
-->
<Test name="Configuring Symbian scenario" cmd='CMD /C SET EPOCROOT=\S60\devices\S60_5th_Edition_SDK_v1.0&amp;&amp; devices -setdefault @S60_5th_Edition_SDK_v1.0:com.nokia.s60&amp;&amp; python configure.py -t s60 -s60target &quot;gcce urel&quot; -o symbian.xml symbian.xml.template' />
</Submit>
</Scenario>

View File

@@ -0,0 +1,140 @@
#!/usr/bin/python
import os
import sys
import time
import datetime
import ccdash
INTERVAL = 300
DELAY = 0
ONCE = False
SUFFIX = ""
FORCE = False
def run_scenarios(scenarios, group):
# Run each scenario
rc = 0
for scenario in scenarios:
argv = []
argv.append("ccdash.py")
argv.append("scenario")
argv.append(scenario)
argv.append("--group")
argv.append(group)
thisrc = ccdash.main(argv)
if rc==0 and thisrc:
rc = thisrc
return rc
def usage():
print """Periodically monitor working directory for Continuous and Nightly builds
Usage:
run_continuous.py [options] scenario1.xml [scenario2.xml ...]
options:
These are options which will be processed by run_continuous.py:
--delay MIN Delay both Continuous and Nightly builds by MIN minutes.
This is useful to coordinate the build with other build
machines. By default, Continuous build will be done right
after changes are detected, and Nightly build will be done
at 00:00 GMT. MIN is a float number.
--once Just run one loop to see if anything needs to be done and
if so just do it once. Quit after that.
--suffix SFX Set group suffix to SFX. For example, if SFX is "-2.x", then
tests will be submitted to "Nightly-2.x", "Continuous-2.x",
and "Experimental-2.x"
--force Force running the test even when nothing has changed.
"""
sys.exit(1)
if __name__ == "__main__":
if len(sys.argv)<=1 or sys.argv[1]=="-h" or sys.argv[1]=="--h" or sys.argv[1]=="--help" or sys.argv[1]=="/h":
usage()
# Splice list
scenarios = []
i = 1
while i < len(sys.argv):
if sys.argv[i]=="--delay":
i = i + 1
if i >= len(sys.argv):
print "Error: missing argument"
sys.exit(1)
DELAY = float(sys.argv[i]) * 60
print "Delay is set to %f minute(s)" % (DELAY / 60)
elif sys.argv[i]=="--suffix":
i = i + 1
if i >= len(sys.argv):
print "Error: missing argument"
sys.exit(1)
SUFFIX = sys.argv[i]
print "Suffix is set to %s" % (SUFFIX)
elif sys.argv[i]=="--once":
ONCE = True
elif sys.argv[i]=="--force":
FORCE = True
else:
# Check if scenario exists
scenario = sys.argv[i]
if not os.path.exists(scenario):
print "Error: file " + scenario + " does not exist"
sys.exit(1)
scenarios.append(scenario)
print "Scenario %s added" % (scenario)
i = i + 1
if len(scenarios) < 1:
print "Error: scenario is required"
sys.exit(1)
# Current date
utc = time.gmtime(None)
day = utc.tm_mday
# Loop foreva
while True:
argv = []
# Anything changed recently?
argv.append("ccdash.py")
argv.append("status")
argv.append("-w")
argv.append("../..")
rc = ccdash.main(argv)
utc = time.gmtime(None)
if utc.tm_mday != day or rc != 0 or FORCE:
group = ""
if utc.tm_mday != day:
day = utc.tm_mday
group = "Nightly" + SUFFIX
elif rc != 0:
group = "Continuous" + SUFFIX
else:
group = "Experimental" + SUFFIX
if DELAY > 0:
print "Will run %s after %f s.." % (group, DELAY)
time.sleep(DELAY)
rc = run_scenarios(scenarios, group)
msg = str(datetime.datetime.now()) + \
": done running " + group + \
"tests, will check again in " + str(INTERVAL) + "s.."
if ONCE:
sys.exit(0)
else:
# Nothing changed
msg = str(datetime.datetime.now()) + \
": No update, will check again in " + str(INTERVAL) + "s.."
if ONCE:
sys.exit(1)
print msg
time.sleep(INTERVAL)

View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
import sys
import ccdash
if __name__ == "__main__":
sys.argv[0] = "ccdash.py"
sys.argv.insert(1, "scenario")
rc = ccdash.main(sys.argv)
sys.exit(rc)

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<!-- *********************************************************
** This file contains scenario for APS and APS-Direct **
********************************************************* -->
<!-- ******************************
** APS **
****************************** -->
<Submit group="Experimental" build="$(OS)-$(S60TARGETNAME)-APS" >
<Update />
<!-- Configure config_site.h -->
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
#include <pj/config_site_sample.h>
]]>
</FileWrite>
<!-- Configure symbian_ua.mmp -->
<FileWrite file="build.symbian/symbian_ua.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 1
#define SND_HAS_VAS 0
#define SND_HAS_MDA 0
]]>
</FileWrite>
<!-- Configure symbian_ua_gui.mmp -->
<FileWrite file="pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 1
#define SND_HAS_VAS 0
#define SND_HAS_MDA 0
]]>
</FileWrite>
<Configure cmd="cmd /c echo success" />
<Build wdir="build.symbian" cmd='cmd /C &quot;bldmake bldfiles &amp;&amp; abld reallyclean $(S60TARGET) &amp;&amp; abld build $(S60TARGET)&quot;' />
</Submit>
<!-- ******************************
** APS-Direct **
****************************** -->
<Submit group="Experimental" build="$(OS)-$(S60TARGETNAME)-APS-Direct" >
<Update />
<!-- Configure config_site.h -->
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_CONFIG_NOKIA_APS_DIRECT
#include <pj/config_site_sample.h>
]]>
</FileWrite>
<Configure cmd="cmd /c echo success" />
<Build wdir="build.symbian" cmd='cmd /C &quot;bldmake bldfiles &amp;&amp; abld reallyclean $(S60TARGET) &amp;&amp; abld build $(S60TARGET)&quot;' />
<!-- Restore symbian_ua.mmp -->
<FileWrite file="build.symbian/symbian_ua.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 0
#define SND_HAS_MDA 1
]]>
</FileWrite>
<!-- Restore symbian_ua_gui.mmp -->
<FileWrite file="pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 0
#define SND_HAS_MDA 1
]]>
</FileWrite>
</Submit>
</Scenario>

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<!-- *********************************************************
** This file contains scenario for VAS and VAS-Direct **
********************************************************* -->
<!-- ******************************
** VAS **
****************************** -->
<Submit group="Experimental" build="$(OS)-$(S60TARGETNAME)-VAS1" >
<Update />
<!-- Configure config_site.h -->
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 1
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 0
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
#include <pj/config_site_sample.h>
]]>
</FileWrite>
<!-- Configure symbian_ua.mmp -->
<FileWrite file="build.symbian/symbian_ua.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 1
#define SND_HAS_MDA 0
]]>
</FileWrite>
<!-- Configure symbian_ua_gui.mmp -->
<FileWrite file="pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 1
#define SND_HAS_MDA 0
]]>
</FileWrite>
<Configure cmd="cmd /c echo success" />
<Build wdir="build.symbian" cmd='cmd /C &quot;bldmake bldfiles &amp;&amp; abld reallyclean $(S60TARGET) &amp;&amp; abld build $(S60TARGET)&quot;' />
</Submit>
<!-- ******************************
** VAS-Direct **
****************************** -->
<Submit group="Experimental" build="$(OS)-$(S60TARGETNAME)-VAS1-Direct" >
<Update />
<!-- Configure config_site.h -->
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#define PJ_CONFIG_NOKIA_VAS_DIRECT
#include <pj/config_site_sample.h>
]]>
</FileWrite>
<Configure cmd="cmd /c echo success" />
<Build wdir="build.symbian" cmd='cmd /C &quot;bldmake bldfiles &amp;&amp; abld reallyclean $(S60TARGET) &amp;&amp; abld build $(S60TARGET)&quot;' />
<!-- Restore symbian_ua.mmp -->
<FileWrite file="build.symbian/symbian_ua.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 0
#define SND_HAS_MDA 1
]]>
</FileWrite>
<!-- Restore symbian_ua_gui.mmp -->
<FileWrite file="pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp" replace_begin="// =BEGIN" replace_end="// =END">
<![CDATA[
#define SND_HAS_APS 0
#define SND_HAS_VAS 0
#define SND_HAS_MDA 1
]]>
</FileWrite>
</Submit>
</Scenario>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" ?>
<Scenario site="$(HOSTNAME)" url="http://my.cdash.org/submit.php?project=PJSIP" wdir="$(PJDIR)">
<!-- Symbian S60 default -->
<Submit group="Experimental" build="$(OS)-$(S60TARGETNAME)-default" >
<Update disabled="1" />
<FileWrite file="pjlib/include/pj/config_site.h">
<![CDATA[
/* Written by ccdash */
#include <pj/config_site_sample.h>
#undef PJ_HAS_IPV6
#define PJ_HAS_IPV6 1
#undef PJMEDIA_HAS_G7221_CODEC
#define PJMEDIA_HAS_G7221_CODEC 1
]]>
</FileWrite>
<Configure cmd="cmd /c devices -setdefault $(S60DEVICE)" />
<Build wdir="build.symbian" cmd='cmd /C &quot;SET EPOCROOT=$(EPOCROOT)&amp;&amp; bldmake bldfiles &amp;&amp; abld reallyclean $(S60TARGET) &amp;&amp; abld build $(S60TARGET)&quot;' />
</Submit>
</Scenario>

View File

@@ -0,0 +1,33 @@
Variables:
-----------------------------
DISABLED = "$(DISABLED)"
GCC = "$(GCC)"
HOSTNAME = "$(HOSTNAME)"
OS = "$(OS)"
PJDIR = "$(PJDIR)"
SUFFIX = "$(SUFFIX)"
NOTEST = "$(NOTEST)"
S60 only:
------------------------------
S60TARGET = "$(S60TARGET)"
S60TARGETNAME = "$(S60TARGETNAME)"
S60DEVICE = "$(S60DEVICE)"
EPOCROOT = "$(EPOCROOT)"
VS only:
------------------------------
VS = "$(VS)"
VSTARGET = "$(VSTARGET)"
PJSUA-TESTS:
------------------------------
$(PJSUA-TESTS)
------------------------------
OTHER:
------------------------------
IPPROOT
IPPSAMPLES
IPPARCH
NOP (cmdline to do nothing)