diff options
-rw-r--r-- | main/sems/0003-cc-and-cflags.patch | 45 | ||||
-rw-r--r-- | main/sems/APKBUILD | 228 | ||||
-rw-r--r-- | main/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch (renamed from testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch) | 0 | ||||
-rw-r--r-- | main/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch (renamed from testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch) | 0 | ||||
-rw-r--r-- | main/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch (renamed from testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch) | 0 | ||||
-rw-r--r-- | main/sems/sems-0010-Move-CMake-defines.patch (renamed from testing/sems/sems-0010-Move-CMake-defines.patch) | 0 | ||||
-rw-r--r-- | main/sems/sems-0011-Avoid-using-private-Glibc-functions.patch (renamed from testing/sems/sems-0011-Avoid-using-private-Glibc-functions.patch) | 0 | ||||
-rw-r--r-- | main/sems/sems.conf | 352 | ||||
-rwxr-xr-x[-rw-r--r--] | main/sems/sems.initd | 51 | ||||
-rw-r--r-- | main/sems/sems.post-install | 6 | ||||
-rw-r--r-- | main/sems/sems.pre-install | 7 | ||||
-rw-r--r-- | testing/sems/APKBUILD | 204 | ||||
-rwxr-xr-x | testing/sems/sems.initd | 48 | ||||
-rw-r--r-- | testing/sems/sems.pre-install | 10 |
14 files changed, 217 insertions, 734 deletions
diff --git a/main/sems/0003-cc-and-cflags.patch b/main/sems/0003-cc-and-cflags.patch deleted file mode 100644 index a17c1f774a..0000000000 --- a/main/sems/0003-cc-and-cflags.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b411106aa364fd13e87d85e94ade9eeb1d6aeb8e Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Fri, 18 Dec 2009 09:13:58 +0000 -Subject: [PATCH] cc and cflags - ---- - core/plug-in/binrpcctrl/Makefile | 2 +- - core/plug-in/gsm/gsm-1.0-pl10/Makefile | 6 +++--- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/core/plug-in/binrpcctrl/Makefile b/core/plug-in/binrpcctrl/Makefile -index 71680f3..753779a 100644 ---- a/core/plug-in/binrpcctrl/Makefile -+++ b/core/plug-in/binrpcctrl/Makefile -@@ -35,7 +35,7 @@ libbinrpc: - $(MAKE) all - - $(LIBBINRPC_LIB)/libbinrpc.a: -- $(MAKE) -C $(LIBBINRPC_DIR) all CC=$(CC) LD=$(LD) AR=$(AR) -+ $(MAKE) -C $(LIBBINRPC_DIR) all CC="$(CC)" LD="$(LD)" AR="$(AR)" - - libbinrpc_clean: - $(MAKE) -C $(LIBBINRPC_DIR) clean -diff --git a/core/plug-in/gsm/gsm-1.0-pl10/Makefile b/core/plug-in/gsm/gsm-1.0-pl10/Makefile -index 396fb7f..6a1a1a1 100644 ---- a/core/plug-in/gsm/gsm-1.0-pl10/Makefile -+++ b/core/plug-in/gsm/gsm-1.0-pl10/Makefile -@@ -43,11 +43,11 @@ WAV49 = - # CC = /usr/lang/acc - # CCFLAGS = -c -O - --CC = gcc -ansi -pedantic --CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 -fPIC -+CC ?= gcc -+CCFLAGS += -ansi -pedantic -c -O2 -DNeedFunctionPrototypes=1 -fPIC - MODULE_CFLAGS = -I inc -DHAS_STDLIB_H - --LD = $(CC) -+LD ?= $(CC) - - # LD = gcc - # LDFLAGS = --- -1.6.5.6 - diff --git a/main/sems/APKBUILD b/main/sems/APKBUILD index 04ab8bc5b8..80a387e028 100644 --- a/main/sems/APKBUILD +++ b/main/sems/APKBUILD @@ -1,72 +1,204 @@ # Contributor: Francesco Colista <francesco.colista@gmail.com> -# Maintainer: Francesco Colista <francesco.colista@gmail.com> +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=sems -pkgver=1.2.1 +pkgver=1.4.0 pkgrel=1 -pkgdesc="High performance, extensible media server for SIP (RFC3261) based VoIP services" +pkgdesc="SIP Express Media Server, an extensible SIP media server" url="http://iptel.org/sems/" arch="all" -license="GPL-2" -install="$pkgname.pre-install $pkgname.post-install" -makedepends="python-dev openssl-dev cmake bash" +license="GPLv2+" +pkgusers="sems" +pkggroups="sems" +install="$pkgname.pre-install" +makedepends="python-dev cmake bash openssl-dev + libsamplerate-dev spandsp-dev flite-dev gsm-dev speex-dev + " +subpackages="$pkgname-doc $pkgname-conf_auth $pkgname-conference + $pkgname-diameter_client $pkgname-dsm $pkgname-early_announce + $pkgname-g722 $pkgname-gsm $pkgname-ivr $pkgname-mailbox + $pkgname-pin_collect $pkgname-speex $pkgname-xmlrpc2di" + source="http://ftp.iptel.org/pub/sems/sems-$pkgver.tar.gz - 0003-cc-and-cflags.patch - sems.conf + sems-0001-Force-to-use-system-wide-GSM-includes.patch + sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch + sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch + sems-0011-Avoid-using-private-Glibc-functions.patch + sems.initd " +# sems-0005-Add-sw_prepaid_sip-plugin-to-default-exclude-list-du.patch +# sems-0006-last-minute-fix-proper-version.patch +# sems-0008-Install-email-template.patch +# sems-0009-Don-t-start-py_sems-by-default.patch +# applied: +# sems-0007-Fix-gateway-module-s-version-passing-in-CMake.patch +# sems-0010-Move-CMake-defines.patch + +_builddir="$srcdir/$pkgname-$pkgver" prepare() { - cd "$srcdir"/$pkgname-$pkgver - for i in "$srcdir"/*.patch; do - [ -f "$i" ] || continue - msg "Applying $i" - patch -p1 -i $i || return 1 + cd "$_builddir" + rm -rf core/plug-in/gsm/gsm-1.0-pl10/ + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac done +} - sed -i -e 's:^cfg-prefix.*:cfg-prefix = $(basedir):' \ - -e 's:^cfg-target.*:cfg-target = $(cfg-dir):' \ - Makefile.defs \ + +build() { + cd "$_builddir" + cmake \ + -DSEMS_USE_SPANDSP=yes \ + -DSEMS_USE_LIBSAMPLERATE=yes \ + -DSEMS_USE_ZRTP=NO \ + -DSEMS_USE_MP3=NO \ + -DSEMS_USE_ILBC=NO \ + -DSEMS_USE_TTS=yes \ + -DSEMS_USE_OPENSSL=yes \ + -DSEMS_USE_MONITORING=yes \ + -DSEMS_USE_IPV6=NO \ + -DSEMS_CFG_PREFIX= \ + -DSEMS_AUDIO_PREFIX=/usr/share \ + -DSEMS_EXEC_PREFIX=/usr \ + -DSEMS_LIBDIR=lib \ || return 1 + make +} + +package() { + cd "$_builddir" + make install DESTDIR="$pkgdir" + install -m755 -D "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/$pkgname || return 1 + # is empty + rm -f "$pkgdir"/etc/sems/etc/conf_auth.conf - # Patch for fixin unistd.h - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' core/AmArg.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' core/AmMediaProcessor.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' core/AmRtpReceiver.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' core/plug-in/sipctrl/udp_trsp.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' core/plug-in/stats/query_stats.cxx - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' apps/annrecorder/AnnRecorder.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' apps/callback/CallBack.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' apps/diameter_client/ServerConnection.cpp - sed -i -e 's:\*\/:\n*\/\n#include <unistd.h>:' apps/dsm/mods/mod_sys/ModSys.cpp + install -o sems -g sems -d "$pkgdir"/var/spool/voicebox + install -d -o sems "$pkgdir"/var/run/sems } +_mv_sub() { + local i + for i in "$@"; do + mkdir -p "$subpkgdir"/${i%/*} + mv "$pkgdir"/$i "$subpkgdir"/$i + done +} -build() { - cd "$srcdir"/$pkgname-$pkgver +conf_auth() { + pkgdesc="Conference with authorization for SEMS" + depends="sems sems-ivr" + cd "$pkgdir" + _mv_sub usr/lib/sems/ivr/conf_auth* +} - make PREFIX=/usr \ - cfg-target=/etc/sems/ \ - exclude_modules+="ivr examples py_sems speex gateway mp3 echo g722" \ - WITH_MPG123DECODER=no \ - all || return 1 +conference() { + pkgdesc="Conferencing application for SEMS" + depends="sems" + cd "$pkgdir" + _mv_sub etc/sems/etc/conference.conf \ + usr/lib/sems/plug-in/conference.so \ + usr/share/sems/audio/conference } -package() { - cd "$srcdir"/$pkgname-$pkgver +diameter_client() { + pkgdesc="A simple DIAMETER client implementation for SEMS" + depends="sems" + cd "$pkgdir" + _mv_sub usr/lib/sems/plug-in/diameter_client.so +} - make PREFIX=/usr \ - DESTDIR="$pkgdir" \ - cfg-target=/etc/sems/ \ - cfg-prefix="$pkgdir" \ - exclude_modules+="ivr examples py_sems speex gateway mp3 echo g722" \ - WITH_MPG123DECODER=no \ - install || return 1 +dsm() { + pkgdesc="The state machine interpreter for SEMS" + depends="sems" + cd "$pkgdir" + _mv_sub etc/sems/etc/dsm* \ + usr/lib/sems/plug-in/dsm.so \ + usr/lib/sems/dsm +} - install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname - install -m644 -D "$srcdir"/$pkgname.conf "$pkgdir"/etc/sems/$pkgname.conf +early_announce() { + pkgdesc="Early announce application for SEMS" + depends="sems" + cd "$pkgdir" + _mv_sub etc/sems/etc/early_announce.conf \ + usr/lib/sems/plug-in/early_announce.so } -md5sums="f0545c0708849e1a723d453244c2a79e sems-1.2.1.tar.gz -0054e6ed7e11393e71204876179d3199 0003-cc-and-cflags.patch -8b74528c8605b7adb01a0133fcd0c247 sems.conf -14aee84a05afc347b6e6b34889ed9504 sems.initd" +g722() { + pkgdesc="G.722 support for SEMS" + depends="sems" + _mv_sub usr/lib/sems/plug-in/g722.so +} + +#gateway() { +# pkgdesc="ISDN gateway for SEMS" +# depends="sems" +#} + +gsm() { + pkgdesc="GSM support for SEMS" + depends="sems" + _mv_sub usr/lib/sems/plug-in/gsm.so +} + +ivr() { + pkgdesc="IVR functionallity for SEMS" + depends="sems python" + cd "$pkgdir" + _mv_sub etc/sems/etc/ivr.conf \ + usr/lib/sems/plug-in/ivr.so \ + usr/lib/sems/ivr/log.* +} + +mailbox() { + pkgdesc="Mailbox application for SEMS" + depends="sems sems-ivr" + cd "$pkgdir" + _mv_sub etc/sems/etc/mailbox*.conf \ + usr/share/sems/audio/mailbox \ + usr/lib/sems/plug-in/ivr.so \ + usr/lib/sems/ivr/*mailbox* +} + +pin_collect() { + pkgdesc="Collects a PIN for SEMS" + depends="sems sems-ivr" + cd "$pkgdir" + _mv_sub etc/sems/etc/pin_collect.conf \ + usr/share/sems/audio/pin_collect \ + usr/lib/sems/plug-in/ivr.so \ + usr/lib/sems/ivr/pin_collect* +} + +_python() { + pkgdesc="Python bindings for SEMS" + depends="python sems" + cd "$pkgdir" + _mv_sub \ + usr/lib/sems/plug-in/py_sems* +} + +speex() { + pkgdesc="Speex support for SEMS" + depends="sems" + _mv_sub usr/lib/sems/plug-in/speex.so +} + +xmlrpc2di() { + pkgdesc="XMLRPC interface for SEMS" + depends="sems" + _mv_sub \ + etc/sems/etc/xmlrpc2di.conf \ + usr/lib/sems/plug-in/xmlrpc2di.so +} + + +md5sums="ebd5d646f71c8f62c7da51d1f4b89b9d sems-1.4.0.tar.gz +5b2fded836b44bda33f39adc37de4de7 sems-0001-Force-to-use-system-wide-GSM-includes.patch +b8efd1a6415afa08f7c676f6976fca36 sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch +331e7529833c906b4738006f32a65fde sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch +bf4070f110489ef21540b009347fcd81 sems-0011-Avoid-using-private-Glibc-functions.patch +36c2f993ba874781f5d3974b4f4c1503 sems.initd" diff --git a/testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch b/main/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch index d09b793395..d09b793395 100644 --- a/testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch +++ b/main/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch diff --git a/testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch b/main/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch index 0cfeab8c83..0cfeab8c83 100644 --- a/testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch +++ b/main/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch diff --git a/testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch b/main/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch index df0a5ad405..df0a5ad405 100644 --- a/testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch +++ b/main/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch diff --git a/testing/sems/sems-0010-Move-CMake-defines.patch b/main/sems/sems-0010-Move-CMake-defines.patch index be1b8be7a8..be1b8be7a8 100644 --- a/testing/sems/sems-0010-Move-CMake-defines.patch +++ b/main/sems/sems-0010-Move-CMake-defines.patch diff --git a/testing/sems/sems-0011-Avoid-using-private-Glibc-functions.patch b/main/sems/sems-0011-Avoid-using-private-Glibc-functions.patch index 048a0a9ba4..048a0a9ba4 100644 --- a/testing/sems/sems-0011-Avoid-using-private-Glibc-functions.patch +++ b/main/sems/sems-0011-Avoid-using-private-Glibc-functions.patch diff --git a/main/sems/sems.conf b/main/sems/sems.conf deleted file mode 100644 index 5e0ba4935e..0000000000 --- a/main/sems/sems.conf +++ /dev/null @@ -1,352 +0,0 @@ -# $Id: sems.conf.sample 1541 2009-10-14 12:00:58Z sayer $ -# -# sems.conf.sample -# -# Sip Express Media Server (sems) -# -# sample configuration file -# -# -# whitespaces (spaces and tabs) are ignored -# comments start with a "#" and may be used inline -# -# example: option=value # i like this option -# -# @filename includes mod_config_path/filename -# @/absolute/path/to/file includes file - -############################################################ -# Network configuration - -# optional parameter: media_ip=<ip_address>|<device> -# -# - this informs SEMS about the IP address or interface that -# SEMS uses to send and receive media. If not set, defaults -# to first non-loopback interface. -# -# Examples: -# media_ip=10.0.0.34 -# media_ip=eth0 - -# optional parameter: sip_ip=<ip_address> -# -# - this informs SEMS about the SIP IP where its SIP stack is -# bound to or should be bound to. If 'sipctrl' SIP stack is used, -# the SIP stack will bind to this address. This also sets -# the value used for contact header in outgoing calls and -# registrations. If not set, defaults to first non-loopback -# interface. -# -# Example: -# sip_ip=10.0.0.34 -# - -# optional parameter: public_ip=<ip_address> -# -# - when running SEMS behind certain simple NAT configurations, -# you can use this parameter to inform SEMS of its public IP -# address. If this parameter is set, SEMS will write this value -# into SDP bodies. -# If this parameter is not set, the local IP address is used. -# N.B., there is no support for port translation; the local -# RTP port is advertised in SDP in either case. -# -# Example: -# public_ip=75.101.219.48 -# - -# optional parameter: sip_port=<port_number> -# -# - this informs SEMS about the port where its SIP stack is -# bound to or should be bound to. SEMS needs this information -# to correctly set the contact header in outgoing calls -# and registrations. Should be set to equal the 'port' -# configuration option in ser_sems.cfg. -# This does not need to be set if sipctrl SIP stack, outgoing -# calls and registrations from SEMS are not used. -# -# default: 5060 -# -sip_port=5080 - -# optional parameter: outbound_proxy=uri -# -# - this sets a next hop for calls and registrations outgoing -# from SEMS. This does not apply to requests in a dialog that -# is initiated by someone else and incoming to SEMS, as in -# this case the next_hop is taken by SEMS from the incoming -# request that established the dialog. -# If this is not set (default setting), then for dialogs -# initiated by SEMS the r-uri is resolved and the request -# is sent there directly. -# This is resolved by the SIP stack with DNS if a name is given. -# Warning: If the value set here can not be resolved, no -# requests will be sent out at all! -# -# default: empty -# -# Example: -# outbound_proxy=sip:proxy.mydomain.net - -# optional parameter: rtp_low_port=<port> -# -# - sets lowest for RTP used port -rtp_low_port=10000 - -# optional parameter: rtp_high_port=<port> -# -# - sets highest for RTP used port -rtp_high_port=60000 - -############################################################ -# modules and application configuration -# -# Configuration of plugin (module) loading: -# - if load_plugins is set, only those are loaded. -# - if load_plugins is not set, all modules in the plugin_path -# directory are loaded, except those which are listed -# in exclude_plugins. -# - -# optional parameter: plugin_path=<path> -# -# - sets the path to the plug-ins' binaries -# - may be absolute or relative to CWD -plugin_path=/usr/lib/sems/plug-in/ - -# optional parameter: load_plugins=<modules list> -# -# semicolon-separated list of modules to load. -# If empty, all modules in plugin_path are loaded. -# One of [sipctrl,unixsockctrl,binrpcctrl] must be loaded. -# -# example for announcement with only g711 and ilbc codecs -# load_plugins=wav;ilbc;announcement;sipctrl - -# optional parameter: exclude_plugins=<modules list> -# -# semicolon-separated list of modules to exclude from loading -# ('blacklist'). If empty, all modules in plugin_path are loaded. -# This has only effect it load_plugins is not set. -# -# o binrpcctrl and unixsockctrl: excluded as sipctrl is default ctrl -# o precoded_announce: no precoded sample files present -exclude_plugins=binrpcctrl;unixsockctrl;precoded_announce - -# optional parameter: application -# -# This controls which application is to be executed if there -# is no explicit application requested from the SIP stack -# (i.e. unixsockctrl and second parameter of t_write_unix). -# -# This can be one of -# $(ruri.user) - user part of ruri is taken as application, -# e.g. sip:announcement@host -# $(ruri.param) - uri parameter "app", e.g. -# sip:joe@host.net;app=announcement -# $(apphdr) - the value of the P-App-Name header is used -# -# $(mapping) - regex=>application mapping is read from -# app_mapping.conf (see app_mapping.conf) -# <application name> - application name configured here, e.g. -# application=announcement -# -# examples: -# application = conference -# application = $(mapping) -# application = $(ruri.user) -# application = $(ruri.param) -application = $(apphdr) - -# parameter: plugin_config_path=<path> -# -# - in this path configuration files of the applications -# (e.g. announcement.conf) are searched -plugin_config_path=/etc/sems/etc/ - -# optional parameter: exclude_payloads=<payload list> -# -# semicolon-separated list of payloads to exclude from loading -# ('blacklist'). -# -# For example, to only use low bandwidth codecs: -# exclude_payloads=PCMU;PCMA;G726-40;G726-32;G721;L16 -# or, to use only codecs which are not CPU-intensive: -# exclude_payloads=iLBC;speex; -# only use G711 (exclude everything else): -# exclude_payloads=iLBC;speex;G726-40;G726-32;G721;G726-24;G726-16;GSM;L16 - -############################################################ -# logging and running - -# optional parameter: fork={yes|no} -# -# - specifies if sems should run in daemon mode (background) -# (fork=no is the same as -E) -fork=yes - -# optional parameter: stderr={yes|no} -# -# - debug mode: do not fork and log to stderr -# (stderr=yes is the same as -E) -stderr=no - -# optional parameter: loglevel={0|1|2|3} -# -# - sets log level (error=0, warning=1, info=2, debug=3) -# (same as -D) -loglevel=2 - -# optional parameter: syslog_facility={DAEMON|USER|LOCAL[0-7]} -# -# - sets the log facility that is used for syslog. Using this, -# the log can for example be filtered into a special file -# by the syslog daemon. -# -# Default: DAEMON -# -# Example: -# syslog_facility=LOCAL0 - -# optional parameter: log_sessions=[yes|no] -# -# Default: no -# -# If log_sessions=yes is set, INFO level log messages are generated -# for each session when it is started and stopped. -# -# log_sessions=yes - -# optional parameter: log_events=[yes|no] -# -# Default: no -# -# If log_eventy=yes is set, generic DBG level log messages are -# generated for each event that is posted into an event queue. -# -# log_events=yes - - -############################################################ -# tuning - -# optional parameter: media_processor_threads=<num_value> -# -# - controls how many threads should be created that -# process media - on single-processor systems set this -# parameter to 1 (default), on MP systems to a higher -# value -# -# media_processor_threads=1 - - -# optional parameter: session_limit=<limit>;<err code>;<err reason> -# -# - this sets a maximum active session limit. If that limit is -# reached, no further calls are accepted, but the error reply -# with err code/err reason is sent out. -# -# Default: 0 (None) -# -# Example: -# session_limit="1000;503;Server overload" - -# optional parameter: options_session_limit=<limit>;<err code>;<err reason> -# -# - this sets a custom response to OPTIONS, if the session count reaches -# a certain limit. This way health monitor could raise an alarm to syste -# administrator. -# -# Default: 0 (None) -# -# Example: -# options_session_limit="900;503;Warning, server soon overloaded" - - -# optional parameter: dead_rtp_time=<unsigned int> -# -# - if != 0, after this time (in seconds) of no RTP -# a session is considered dead and stopped. If set -# to 0 no check is done for rtp timeout. -# -# default=300 (5 minutes) -# -# Examples: -# # disable RTP timeout -# dead_rtp_time=0 -# # RTP timeout after 10 seconds -# dead_rtp_time=10 - -# optional parameter: use_default_signature={yes|no} -# -# - use a Server/User-Agent header with the SEMS server -# signature and version. -# Set server_signature=0 in ser_sems.cfg if you use SER -# as SIP stack. -# -# default=no -# -use_default_signature=yes - -# optional parameter: signature=<signature string> -# -# - use a Server/User-Agent header with a custom user agent -# signature. -# Overridden by default signature if -# use_default_signature is set. -# Set server_signature=0 in ser_sems.cfg if you use it. -# -# -# signature="SEMS media server 1.0" - -# optional parameter: single_codec_in_ok={yes|no} -# -# - use single codec in 200 OK response -# -# default=no -# -# single_codec_in_ok=no - -# optional parameter: codec_order=codec_name_1,codec_name2,... -# -# - Codec order used when sending INVITE requests. Codecs in codec_order -# will be on the top of the list followed by other supported codecs -# (if any). -# -# default=empty -# -# codec_order=iLBC,GSM - -# optional parameter: ignore_rtpxheaders={yes|no} -# -# - if this is set to yes, RTP extension headers (e.g. when using ZRTP) -# are ignored. If set to no, the whole RTP packets with extension -# headers will be ignored and a debug message is printed on every -# received packet. -# -# default=no -# -# ignore_rtpxheaders=yes - -# optional parameter: dtmf_detector={spandsp|internal} -# -# sets inband DTMF detector to use. spandsp support must be compiled in -# for this to have effect if dtmf_detector=spandsp. -# -# default: internal -# -# dtmf_detector=spandsp - -# optional parameter: unhandled_reply_loglevel={error|warn|info|debug|no} -# -# the default application logic implemented in the applications is to stop -# the session right after sending BYE, without waiting for a reply. this -# leads to many log entries of the form -# ERROR: [b6fa6bb0] handleSipMsg (AmSipDispatcher.cpp:48): unhandled -# reply: [code:200;phrase:[OK];... ] -# -# This parameter sets the log lovel of unhandled positive (200 class) replies. -# -# default: error -# -# unhandled_reply_loglevel=info diff --git a/main/sems/sems.initd b/main/sems/sems.initd index 0e96f8a21a..3b6973b55c 100644..100755 --- a/main/sems/sems.initd +++ b/main/sems/sems.initd @@ -3,35 +3,46 @@ # Follows Gentoo/AlpineLinux standards # GPL 2 License - N. Angelacos 2011 -CONFDIR="/etc/sems" SVC="${SVCNAME#*.}" -if [ -n "${SVC}" ] && [ "${SVCNAME}" != "sems" ]; then - SEMSPID="/var/run/sems/${SVC}.pid" - else - SEMSPID="/var/run/sems/sems.pid" - fi -SEMSCONF="${CONFDIR}/${SVC}.conf" -daemon=/usr/sbin/sems +SEMS_CFG_FILE=${SEMS_CFG_FILE:-/etc/sems/${SVC}.conf} +SEMS_PIDDIR=/var/run/sems +SEMS_PIDFILE=${SEMS_PIDFILE:-${SEMS_PIDDIR}/${SVC}.pid} +SEMS_BINARY=${SEMS_BINARY:-/usr/sbin/sems} +SEMS_USER=${SEMS_USER:-sems} +SEMS_GROUP=${SEMS_GROUP:-sems} -depend() { - need net - after firewall +checkconfig() { + if [ ! -f "${SEMS_CFG_FILE}" ] ; then + eerror "You need a "${SEMS_CFG_FILE}" file to run sems" + return 1; + fi } + start() { - ebegin "Starting ${SVCNAME}" - echo $SEMSPID $SEMSCONF - start-stop-daemon --start --quiet --pidfile $SEMSPID --exec $daemon \ + checkconfig || return 1 + ebegin "Starting ${SVCNAME}" + mkdir -p "${SEMS_PIDDIR}" + chown ${SEMS_USER}:${SEMS_GROUP} "${SEMS_PIDDIR}" + + start-stop-daemon --start --exec "${SEMS_BINARY}" \ + --pidfile "${SEMS_PIDFILE}" \ + --wait ${SEMS_WAIT:-500} \ -- \ - -u sems \ - -g sems \ - -P $SEMSPID \ - -f $SEMSCONF + -f "${SEMS_CFG_FILE}" \ + -P "${SEMS_PIDFILE}" \ + -u "${SEMS_USER}" \ + -g "${SEMS_GROUP}" eend $? } stop() { - ebegin "Stopping ${SVCNAME}" - start-stop-daemon --stop --quiet --pidfile $SEMSPID + if [ "${RC_CMD}" = "restart" ] ; then + checkconfig || return 1 + fi + + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --exec "${SEMS_BINARY}" \ + --pidfile "${SEMS_PIDFILE}" --quiet eend $? } diff --git a/main/sems/sems.post-install b/main/sems/sems.post-install deleted file mode 100644 index cd800bdcd6..0000000000 --- a/main/sems/sems.post-install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -mkdir -p /var/run/sems 2>/dev/null -chown -R sems:sems /var/run/sems 2>/dev/null -chgrp sems /etc/sems/sems.cfg 2>/dev/null -exit 0 diff --git a/main/sems/sems.pre-install b/main/sems/sems.pre-install index 3e82578a3e..f126694087 100644 --- a/main/sems/sems.pre-install +++ b/main/sems/sems.pre-install @@ -1,5 +1,10 @@ #!/bin/sh -adduser -H -h /var/empty -s /bin/false -D sems 2>/dev/null +if ! getent group sems >/dev/null; then + addgroup -S sems +fi +if ! getent passwd sems >/dev/null; then + adduser -S -H -h /var/empty -s /bin/false -D -G sems sems 2>/dev/null +fi exit 0 diff --git a/testing/sems/APKBUILD b/testing/sems/APKBUILD deleted file mode 100644 index 80a387e028..0000000000 --- a/testing/sems/APKBUILD +++ /dev/null @@ -1,204 +0,0 @@ -# Contributor: Francesco Colista <francesco.colista@gmail.com> -# Maintainer: Natanael Copa <ncopa@alpinelinux.org> -pkgname=sems -pkgver=1.4.0 -pkgrel=1 -pkgdesc="SIP Express Media Server, an extensible SIP media server" -url="http://iptel.org/sems/" -arch="all" -license="GPLv2+" -pkgusers="sems" -pkggroups="sems" -install="$pkgname.pre-install" -makedepends="python-dev cmake bash openssl-dev - libsamplerate-dev spandsp-dev flite-dev gsm-dev speex-dev - " -subpackages="$pkgname-doc $pkgname-conf_auth $pkgname-conference - $pkgname-diameter_client $pkgname-dsm $pkgname-early_announce - $pkgname-g722 $pkgname-gsm $pkgname-ivr $pkgname-mailbox - $pkgname-pin_collect $pkgname-speex $pkgname-xmlrpc2di" - -source="http://ftp.iptel.org/pub/sems/sems-$pkgver.tar.gz - sems-0001-Force-to-use-system-wide-GSM-includes.patch - sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch - sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch - sems-0011-Avoid-using-private-Glibc-functions.patch - - sems.initd - " -# sems-0005-Add-sw_prepaid_sip-plugin-to-default-exclude-list-du.patch -# sems-0006-last-minute-fix-proper-version.patch -# sems-0008-Install-email-template.patch -# sems-0009-Don-t-start-py_sems-by-default.patch - -# applied: -# sems-0007-Fix-gateway-module-s-version-passing-in-CMake.patch -# sems-0010-Move-CMake-defines.patch - -_builddir="$srcdir/$pkgname-$pkgver" -prepare() { - cd "$_builddir" - rm -rf core/plug-in/gsm/gsm-1.0-pl10/ - for i in $source; do - case $i in - *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; - esac - done -} - - -build() { - cd "$_builddir" - cmake \ - -DSEMS_USE_SPANDSP=yes \ - -DSEMS_USE_LIBSAMPLERATE=yes \ - -DSEMS_USE_ZRTP=NO \ - -DSEMS_USE_MP3=NO \ - -DSEMS_USE_ILBC=NO \ - -DSEMS_USE_TTS=yes \ - -DSEMS_USE_OPENSSL=yes \ - -DSEMS_USE_MONITORING=yes \ - -DSEMS_USE_IPV6=NO \ - -DSEMS_CFG_PREFIX= \ - -DSEMS_AUDIO_PREFIX=/usr/share \ - -DSEMS_EXEC_PREFIX=/usr \ - -DSEMS_LIBDIR=lib \ - || return 1 - make -} - -package() { - cd "$_builddir" - make install DESTDIR="$pkgdir" - install -m755 -D "$srcdir"/$pkgname.initd \ - "$pkgdir"/etc/init.d/$pkgname || return 1 - # is empty - rm -f "$pkgdir"/etc/sems/etc/conf_auth.conf - - install -o sems -g sems -d "$pkgdir"/var/spool/voicebox - install -d -o sems "$pkgdir"/var/run/sems -} - -_mv_sub() { - local i - for i in "$@"; do - mkdir -p "$subpkgdir"/${i%/*} - mv "$pkgdir"/$i "$subpkgdir"/$i - done -} - -conf_auth() { - pkgdesc="Conference with authorization for SEMS" - depends="sems sems-ivr" - cd "$pkgdir" - _mv_sub usr/lib/sems/ivr/conf_auth* -} - -conference() { - pkgdesc="Conferencing application for SEMS" - depends="sems" - cd "$pkgdir" - _mv_sub etc/sems/etc/conference.conf \ - usr/lib/sems/plug-in/conference.so \ - usr/share/sems/audio/conference -} - -diameter_client() { - pkgdesc="A simple DIAMETER client implementation for SEMS" - depends="sems" - cd "$pkgdir" - _mv_sub usr/lib/sems/plug-in/diameter_client.so -} - -dsm() { - pkgdesc="The state machine interpreter for SEMS" - depends="sems" - cd "$pkgdir" - _mv_sub etc/sems/etc/dsm* \ - usr/lib/sems/plug-in/dsm.so \ - usr/lib/sems/dsm -} - -early_announce() { - pkgdesc="Early announce application for SEMS" - depends="sems" - cd "$pkgdir" - _mv_sub etc/sems/etc/early_announce.conf \ - usr/lib/sems/plug-in/early_announce.so -} - -g722() { - pkgdesc="G.722 support for SEMS" - depends="sems" - _mv_sub usr/lib/sems/plug-in/g722.so -} - -#gateway() { -# pkgdesc="ISDN gateway for SEMS" -# depends="sems" -#} - -gsm() { - pkgdesc="GSM support for SEMS" - depends="sems" - _mv_sub usr/lib/sems/plug-in/gsm.so -} - -ivr() { - pkgdesc="IVR functionallity for SEMS" - depends="sems python" - cd "$pkgdir" - _mv_sub etc/sems/etc/ivr.conf \ - usr/lib/sems/plug-in/ivr.so \ - usr/lib/sems/ivr/log.* -} - -mailbox() { - pkgdesc="Mailbox application for SEMS" - depends="sems sems-ivr" - cd "$pkgdir" - _mv_sub etc/sems/etc/mailbox*.conf \ - usr/share/sems/audio/mailbox \ - usr/lib/sems/plug-in/ivr.so \ - usr/lib/sems/ivr/*mailbox* -} - -pin_collect() { - pkgdesc="Collects a PIN for SEMS" - depends="sems sems-ivr" - cd "$pkgdir" - _mv_sub etc/sems/etc/pin_collect.conf \ - usr/share/sems/audio/pin_collect \ - usr/lib/sems/plug-in/ivr.so \ - usr/lib/sems/ivr/pin_collect* -} - -_python() { - pkgdesc="Python bindings for SEMS" - depends="python sems" - cd "$pkgdir" - _mv_sub \ - usr/lib/sems/plug-in/py_sems* -} - -speex() { - pkgdesc="Speex support for SEMS" - depends="sems" - _mv_sub usr/lib/sems/plug-in/speex.so -} - -xmlrpc2di() { - pkgdesc="XMLRPC interface for SEMS" - depends="sems" - _mv_sub \ - etc/sems/etc/xmlrpc2di.conf \ - usr/lib/sems/plug-in/xmlrpc2di.so -} - - -md5sums="ebd5d646f71c8f62c7da51d1f4b89b9d sems-1.4.0.tar.gz -5b2fded836b44bda33f39adc37de4de7 sems-0001-Force-to-use-system-wide-GSM-includes.patch -b8efd1a6415afa08f7c676f6976fca36 sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch -331e7529833c906b4738006f32a65fde sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch -bf4070f110489ef21540b009347fcd81 sems-0011-Avoid-using-private-Glibc-functions.patch -36c2f993ba874781f5d3974b4f4c1503 sems.initd" diff --git a/testing/sems/sems.initd b/testing/sems/sems.initd deleted file mode 100755 index 3b6973b55c..0000000000 --- a/testing/sems/sems.initd +++ /dev/null @@ -1,48 +0,0 @@ -#!/sbin/runscript -# SIP Express Media Server configuration file -# Follows Gentoo/AlpineLinux standards -# GPL 2 License - N. Angelacos 2011 - -SVC="${SVCNAME#*.}" -SEMS_CFG_FILE=${SEMS_CFG_FILE:-/etc/sems/${SVC}.conf} -SEMS_PIDDIR=/var/run/sems -SEMS_PIDFILE=${SEMS_PIDFILE:-${SEMS_PIDDIR}/${SVC}.pid} -SEMS_BINARY=${SEMS_BINARY:-/usr/sbin/sems} -SEMS_USER=${SEMS_USER:-sems} -SEMS_GROUP=${SEMS_GROUP:-sems} - -checkconfig() { - if [ ! -f "${SEMS_CFG_FILE}" ] ; then - eerror "You need a "${SEMS_CFG_FILE}" file to run sems" - return 1; - fi -} - - -start() { - checkconfig || return 1 - ebegin "Starting ${SVCNAME}" - mkdir -p "${SEMS_PIDDIR}" - chown ${SEMS_USER}:${SEMS_GROUP} "${SEMS_PIDDIR}" - - start-stop-daemon --start --exec "${SEMS_BINARY}" \ - --pidfile "${SEMS_PIDFILE}" \ - --wait ${SEMS_WAIT:-500} \ - -- \ - -f "${SEMS_CFG_FILE}" \ - -P "${SEMS_PIDFILE}" \ - -u "${SEMS_USER}" \ - -g "${SEMS_GROUP}" - eend $? -} - -stop() { - if [ "${RC_CMD}" = "restart" ] ; then - checkconfig || return 1 - fi - - ebegin "Stopping ${SVCNAME}" - start-stop-daemon --stop --exec "${SEMS_BINARY}" \ - --pidfile "${SEMS_PIDFILE}" --quiet - eend $? -} diff --git a/testing/sems/sems.pre-install b/testing/sems/sems.pre-install deleted file mode 100644 index f126694087..0000000000 --- a/testing/sems/sems.pre-install +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -if ! getent group sems >/dev/null; then - addgroup -S sems -fi -if ! getent passwd sems >/dev/null; then - adduser -S -H -h /var/empty -s /bin/false -D -G sems sems 2>/dev/null -fi - -exit 0 |