# HG changeset patch # User Michael Schloh von Bennewitz # Date 1316606533 -7200 # Node ID 8f552d1cd6717580fabfbc14768674a1e6a9c6ed # Parent 255a25bcf7b0963a43153903fad3df87923eea83 Import package vendor original specs for necessary manipulations. diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/fsl.opensips --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/fsl.opensips Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,16 @@ +## +## fsl.opensips -- OSSP fsl configuration +## + +ident .*(opensips)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/opensips/opensips.log", + perm=0664 + ) + } +}; + diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/opensips.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/opensips.cfg Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,198 @@ +## +## opensips.cfg -- OpenSIPS server configuration +## + +# +# GLOBAL CONFIGURATION PARAMETERS +# + +# process configuration +debug=1 +log_stderror=no +fork=yes +check_via=no +dns=no +rev_dns=no +children=4 +user="@l_rusr@" +group="@l_rgrp@" +fifo="@l_prefix@/var/opensips/opensips.fifo" +workdir="@l_prefix@/var/opensips" + +# network configuration +alias="sip.example.com" +listen="127.0.0.1" +port=5060 + +# +# EXTENSION MODULE LOADING +# + +#loadmodule "@l_prefix@/lib/opensips/modules/dbtext.so" + +loadmodule "@l_prefix@/lib/opensips/modules/sl.so" +loadmodule "@l_prefix@/lib/opensips/modules/tm.so" +loadmodule "@l_prefix@/lib/opensips/modules/rr.so" +loadmodule "@l_prefix@/lib/opensips/modules/maxfwd.so" +loadmodule "@l_prefix@/lib/opensips/modules/usrloc.so" +loadmodule "@l_prefix@/lib/opensips/modules/registrar.so" +loadmodule "@l_prefix@/lib/opensips/modules/textops.so" + +#loadmodule "@l_prefix@/lib/opensips/modules/auth.so" +#loadmodule "@l_prefix@/lib/opensips/modules/auth_db.so" + +#loadmodule "@l_prefix@/lib/opensips/modules/nathelper.so" + +# +# EXTENSION MODULE CONFIGURATION +# + +# module rr: +modparam("rr", "enable_full_lr", 1) + +# module usrloc: +modparam("usrloc", "db_mode", 0) +#modparam("usrloc", "db_mode", 2) +#modparam("usrloc|auth_db", "db_url", "dbtext://@l_prefix@/var/opensips/db") + +# module auth: +#modparam("auth_db", "calculate_ha1", 1) +#modparam("auth_db", "password_column", "password") +#modparam("auth_db", "user_column", "username") +#modparam("auth_db", "domain_column", "domain") + +# module nathelper: +#modparam("registrar", "nat_flag", 6) +#modparam("nathelper", "natping_interval", 30) +#modparam("nathelper", "ping_nated_only", 1) +#modparam("nathelper", "rtpproxy_sock", "unix:@l_prefix@/var/opensips/opensips_rtpproxy.sock") +#modparam("nathelper", "rtpproxy_disable", 0) +#modparam("nathelper", "rtpproxy_disable_tout", 20) +#modparam("nathelper", "sipping_from", "sip:pinger@sip.example.com") + +# +# MAIN ROUTING LOGIC +# + +route{ + # initial sanity checks -- messages with + # max_forwards==0, or excessively long requests + if (!mf_process_maxfwd_header("10")) { + sl_send_reply("483", "Too Many Hops"); + exit; + }; + if (msg:len >= max_len) { + sl_send_reply("513", "Message too big"); + exit; + }; + + #if (method == "INVITE" && uri != myself) { + # sl_send_reply("403", "No relaying"); + # exit; + #}; + + # NAT: special handling for NAT'ed clients; first, NAT test is + # executed: it looks for via!=received and RFC1918 addresses in + # Contact (may fail if line-folding is used); also, the received + # test should, if completed, should check all vias for presence of + # received. + #if (nat_uac_test("3")) { + # # allow RR-ed requests, as these may indicate that NAT-enabled + # # aproxy takes care of it; unless it is REGISTER + # if (method == "REGISTER" || ! search("^Record-Route:")) { + # log("LOG: Someone trying to register from private IP, rewriting\n"); + # fix_nated_contact(); # rewrite contact with source IP of signalling + # if (method == "INVITE") { + # fix_nated_sdp("1"); # add direction=active to SDP + # }; + # force_rport(); # add rport parameter to topmost Via + # setflag(6); # mark as NAT'ed + # }; + #}; + + # we record-route all messages -- to make sure that + # subsequent messages will go through our proxy; that's + # particularly good if upstream and downstream entities + # use different transport protocol + if (method != "REGISTER") { + record_route(); + }; + + # subsequent messages withing a dialog should take the + # path determined by record-routing + if (loose_route()) { + # mark routing logic in request + append_hf("P-hint: rr-enforced\r\n"); + route(1); + }; + + if (uri != myself) { + # mark routing logic in request + append_hf("P-hint: outbound\r\n"); + route(1); + }; + + # if the request is for other domain use USRLOC + # (in case, it does not work, use the following command + # with proper names and addresses in it) + if (uri == myself) { + if (method == "REGISTER") { + # uncomment this if you want to use digest authentication + #if (!www_authorize("sip.example.com", "subscriber")) { + # www_challenge("sip.example.com", "0"); + # exit; + #}; + save("location"); + exit; + }; + + lookup("aliases"); + if (uri != myself) { + append_hf("P-hint: outbound alias\r\n"); + route(1); + }; + + # native SIP destinations are handled using our USRLOC DB + if (!lookup("location")) { + sl_send_reply("404", "Not Found"); + exit; + }; + append_hf("P-hint: usrloc applied\r\n"); + }; + + route(1); +} + +route[1] { + # disable RFC1918 peers + if (uri =~ "[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" && !search("^Route:")) { + sl_send_reply("479", "We don't forward to RFC 1918 IPv4 addresses"); + exit; + }; + + # NAT: if client or server know to be behind a NAT, enable relay + #if (isflagset(6)) { + # force_rtp_proxy(); + #}; + + # NAT: processing of replies; apply to all transactions + #t_on_reply("1"); + + # send it out now; use stateful forwarding as it works reliably even for UDP2TCP + if (!t_relay()) { + sl_reply_error(); + }; +} + +#onreply_route[1] { + # NAT: is it a NAT'ed transaction ? + # otherwise, is it a transaction behind a NAT and we did not + # know at time of request processing ? (RFC1918 contacts) + #if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") { + # fix_nated_contact(); + # force_rtp_proxy(); + #} else if (nat_uac_test("1")) { + # fix_nated_contact(); + #}; +#} + diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/opensips.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/opensips.patch Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,65 @@ +Index: Makefile.defs +--- Makefile.defs.orig 2009-03-23 19:32:01 +0100 ++++ Makefile.defs 2009-03-24 19:10:36 +0100 +@@ -1161,6 +1161,8 @@ + + endif #mode=release + ++LDFLAGS += -L$(prefix)/lib ++LIBS += -lfsl + + #*FLAGS used for compiling the modules + ifeq ($(CC_NAME), gcc) +@@ -1397,8 +1399,8 @@ + + #add libssl if needed + ifneq ($(TLS),) +-DEFS+= -I$(LOCALBASE)/ssl/include -I$(LOCALBASE)/include -I$(SYSBASE)/include/openssl +-LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl -lcrypto ++DEFS+= -I$(prefix)/include ++LIBS+= -L$(prefix)/lib -lssl -lcrypto + endif + + #add libsctp if needed +Index: modules/permissions/parse_config.c +--- modules/permissions/parse_config.c.orig 2009-03-23 19:31:32 +0100 ++++ modules/permissions/parse_config.c 2009-03-24 19:10:36 +0100 +@@ -114,8 +114,11 @@ + except = strstr(str, " EXCEPT "); + if (except) { + /* exception found */ +- strncpy(str2, str, except-str); +- str2[except-str] = '\0'; ++ int l = except - str; ++ if (l > sizeof(str2) - 1) ++ l = sizeof(str2) - 1; ++ strncpy(str2, str, l); ++ str2[l] = '\0'; + /* except+8 points to the exception */ + if (parse_expression_list(except+8, e_exceptions)) { + /* error */ +@@ -124,7 +127,8 @@ + } + } else { + /* no exception */ +- strcpy(str2, str); ++ strncpy(str2, str, sizeof(str2)-1); ++ str2[sizeof(str2)-1] = '\0'; + *e_exceptions = NULL; + } + +Index: rtpproxy-1.2.1/main.c +--- rtpproxy-1.2.1/main.c.orig 2009-03-24 05:46:13 +0100 ++++ rtpproxy-1.2.1/main.c 2009-03-24 19:10:36 +0100 +@@ -88,7 +88,11 @@ + bindhost = NULL; + + if ((n = resolve(ia, pf, bindhost, servname, AI_PASSIVE)) != 0) ++#if defined(__sun__) ++ errx(1, "setbindhost"); ++#else + errx(1, "setbindhost: %s", gai_strerror(n)); ++#endif + } + + static void diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/opensips.schema-dbtext.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/opensips.schema-dbtext.txt Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,8 @@ +subscriber: username(str) domn(str) password(str) first_name(str) last_name(str) phone(str) email_address(str) datetime_created(int) datetime_modified(int) confirmation(str) flag(str) sendnotification(str) greeting(str) ha1(str) ha1b(str) perms(str) allow_find(str) timezone(str,null) rpid(str,null) uuid(str,null) +subscriber: admin:default:admin:Initial:Admin:123:root@localhost::::::::::::: +location: username(str) domain(str,null) contact(str,null) expires(int,null) q(double,null) callid(str,null) cseq(int,null) last_modified(str) replicate(int,null) state(int,null) flags(int) user_agent(str) received(str) +aliases: username(str) domain(str,null) contact(str,null) expires(int,null) q(double,null) callid(str,null) cseq(int,null) last_modified(str) replicate(int,null) state(int,null) flags(int) user_agent(str) received(str) +version: table_name(str) table_version(int) +version: subscriber:3 +version: location:6 +version: aliases:6 diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/opensips.spec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/opensips.spec Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,248 @@ +## +## opensips.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2010 OpenPKG Foundation e.V. +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package options +%define V_opensips 1.6.4 +%define V_rtpproxy 1.2.1 + +# package information +Name: opensips +Summary: Open SIP Server +URL: http://www.opensips.org/ +Vendor: FhG FOKUS et al. +Packager: OpenPKG Foundation e.V. +Distribution: OpenPKG Community +Class: PLUS +Group: VoIP +License: GPL +Version: %{V_opensips} +Release: 20101221 + +# package options +%option with_fsl yes +%option with_ssl no + +# list of sources +Source0: http://www.opensips.org/pub/opensips/%{version}/src/opensips-%{V_opensips}-tls_src.tar.gz +Source1: http://b2bua.org/chrome/site/rtpproxy-%{V_rtpproxy}.tar.gz +Source2: rc.opensips +Source3: fsl.opensips +Source4: opensips.cfg +Source5: opensips.schema-dbtext.txt +Patch0: opensips.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20100101, make, gcc, flex, bison, sed +PreReq: OpenPKG, openpkg >= 20100101 +BuildPreReq: pcre +PreReq: pcre +%if "%{with_fsl}" == "yes" +BuildPreReq: fsl +PreReq: fsl +%endif +%if "%{with_ssl}" == "yes" +BuildPreReq: openssl +PreReq: openssl +%endif + +%description + OpenSIPS is (beside Kamailio) a successor to OpenSER, which in + turn was spawned from FhG FOKUS' SIP Express Router (SER). It + provides SIP (RFC3621) registrar, proxy and routing functionality. + A C shell like scripting language provides full control over the + server's behaviour. It's modular architecture allows only required + functionality to be loaded. + +%track + prog opensips = { + version = %{V_opensips} + url = http://www.opensips.org/pub/opensips/ + regex = (\d+\.\d+\.\d+)/ + url = http://www.opensips.org/pub/opensips/__NEWVER__/src/ + regex = opensips-(__VER__)-tls_src\.tar\.gz + } + prog opensips:rtpproxy = { + version = %{V_rtpproxy} + url = http://www.rtpproxy.org/ + regex = rtpproxy-(\d+(?:\.\d+)+)\.tar\.gz + } + +%prep + %setup -q -n opensips-%{version}-tls + %setup -q -n opensips-%{version}-tls -T -D -a 1 + %patch -p0 + +%build + # build dependencies + %{l_make} %{l_mflags} \ + CC="%{l_cc} %{l_cflags} %{l_cppflags}" \ +%if "%{with_ssl}" == "yes" + TLS=1 \ +%endif + prefix=%{l_prefix} \ + dep >/dev/null 2>&1 || true + + # build program + %{l_make} %{l_mflags} \ + CC="%{l_cc} %{l_cflags} %{l_cppflags}" \ +%if "%{with_ssl}" == "yes" + TLS=1 \ +%endif + prefix=%{l_prefix} + + # build modules + %{l_make} %{l_mflags} \ + CC="%{l_cc} %{l_cflags} %{l_cppflags}" \ +%if "%{with_ssl}" == "yes" + TLS=1 \ +%endif + prefix=%{l_prefix} \ + modules \ + skip_modules="mysql jabber" + + # build rtpproxy extension + ( cd rtpproxy-%{V_rtpproxy} + export CC="%{l_cc}" + export CFLAGS="%{l_cflags -O}" + export LIBS="" + case "%{l_platform -t}" in + *-sunos* ) LIBS="$LIBS -lsocket -lnsl -lrt" ;; + esac + ./configure + %{l_make} %{l_mflags} + ) || exit $? + +%install + + # install program + %{l_make} %{l_mflags} \ + INSTALL="%{l_shtool} install%{l_nil} -c" \ + basedir=$RPM_BUILD_ROOT \ + prefix=%{l_prefix} \ + cfg-prefix=$RPM_BUILD_ROOT \ + cfg-target=%{l_prefix}/etc/opensips/ \ + doc-dir=share/opensips/doc/ \ + man-dir=man/ \ + install + + # install modules + %{l_make} %{l_mflags} \ + INSTALL="%{l_shtool} install%{l_nil} -c" \ + basedir=$RPM_BUILD_ROOT \ + prefix=%{l_prefix} \ + cfg-prefix=$RPM_BUILD_ROOT \ + cfg-target=%{l_prefix}/etc/opensips/ \ + doc-dir=share/opensips/doc/ \ + man-dir=man/ \ + install-modules \ + skip_modules="mysql jabber" + + # install rtpproxy extension + %{l_shtool} install -c -s -m 755 \ + rtpproxy-%{V_rtpproxy}/rtpproxy $RPM_BUILD_ROOT%{l_prefix}/sbin/opensips_rtpproxy + + # strip down installation + strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true + rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/opensips_mysql.sh + + # post-adjust installation + %{l_shtool} subst \ + -e 's;/etc/opensips/opensipsctlrc;%{l_prefix}/etc/opensips/opensipsctlrc;g' \ + $RPM_BUILD_ROOT%{l_prefix}/sbin/opensipsctl + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/opensips + %{l_shtool} install -c -m 644 \ + -e 's;^# \(PID_FILE\)=.*;\1=%{l_prefix}/var/opensips/opensips.pid;' \ + -e 's;^# \(OSIPS_FIFO\)=.*;\1=%{l_prefix}/var/opensips/opensips.fifo;' \ + scripts/opensipsctlrc \ + $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/opensipsctlrc + + # install default configuration + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/opensips + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE opensips.cfg} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/opensips/ + + # install OSSP fsl configuration + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE fsl.opensips} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ + + # install run-command script + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.opensips} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + + # create database directory and install database schema definitions + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/var/opensips + %{l_shtool} install -c -m 644 \ + %{SOURCE opensips.schema-dbtext.txt} \ + $RPM_BUILD_ROOT%{l_prefix}/share/opensips/ + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%config %{l_prefix}/etc/fsl/*' \ + '%config %{l_prefix}/etc/opensips/*' \ + '%doc %{l_prefix}/share/opensips/doc/*' \ + '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/opensips' + +%files -f files + +%clean + +%post + # on install, setup database + if [ ! -d $RPM_INSTALL_PREFIX/var/opensips/db ]; then + mkdir $RPM_INSTALL_PREFIX/var/opensips/db + chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/opensips/db + chmod 755 $RPM_INSTALL_PREFIX/var/opensips/db + schema="$RPM_INSTALL_PREFIX/share/opensips/opensips.schema-dbtext.txt" + for table in `sed -e '/^#.*/d' -e '/^$/d' -e 's;\([^:]*\):.*;\1;' <$schema | sort -u`; do + grep "^${table}:" $schema | sed -e "s;^${table}: *;;" \ + >$RPM_INSTALL_PREFIX/var/opensips/db/$table + done + chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/opensips/db/* 2>/dev/null || true + chmod 644 $RPM_INSTALL_PREFIX/var/opensips/db/* 2>/dev/null || true + fi + + # after upgrade, restart service + [ $1 -eq 2 ] || exit 0 + eval `%{l_rc} opensips status 2>/dev/null` + [ ".$opensips_active" = .yes ] && %{l_rc} opensips restart + exit 0 + +%preun + # before erase, stop service and remove log files + [ $1 -eq 0 ] || exit 0 + %{l_rc} opensips stop 2>/dev/null + rm -rf $RPM_INSTALL_PREFIX/var/opensips/db 2>/dev/null || true + rm -f $RPM_INSTALL_PREFIX/var/opensips/* 2>/dev/null || true + exit 0 + diff -r 255a25bcf7b0 -r 8f552d1cd671 opensips/rc.opensips --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opensips/rc.opensips Wed Sep 21 14:02:13 2011 +0200 @@ -0,0 +1,75 @@ +#!@l_prefix@/bin/openpkg rc +## +## rc.opensips -- Run-Commands +## + +%config + opensips_enable="$openpkg_rc_def" + opensips_flags="" + opensips_rtpproxy="yes" + opensips_log_prolog="true" + opensips_log_epilog="true" + opensips_log_numfiles="10" + opensips_log_minsize="1M" + opensips_log_complevel="9" + +%common + opensips_cfgfile="@l_prefix@/etc/opensips/opensips.cfg" + opensips_pidfile="@l_prefix@/var/opensips/opensips.pid" + opensips_rtpproxy_pidfile="@l_prefix@/var/opensips/opensips_rtpproxy.pid" + opensips_rtpproxy_socket="@l_prefix@/var/opensips/opensips_rtpproxy.sock" + opensips_rtpproxy_listen=`grep '^listen=' $opensips_cfgfile | sed -e 's/^listen="\(.*\)".*/\1/'` + opensips_rtpproxy_signal () { + [ -f $opensips_rtpproxy_pidfile ] && kill -$1 `cat $opensips_rtpproxy_pidfile` + } + +%status -u @l_susr@ -o + opensips_usable="no" + opensips_active="no" + if @l_prefix@/sbin/opensips -c >/dev/null 2>&1; then + opensips_usable="yes" + fi + if @l_prefix@/sbin/opensipsctl ps >/dev/null 2>&1; then + opensips_active="yes" + fi + echo "opensips_enable=\"$opensips_enable\"" + echo "opensips_usable=\"$opensips_usable\"" + echo "opensips_active=\"$opensips_active\"" + +%start -u @l_susr@ + rcService opensips enable yes || exit 0 + rcService opensips active yes && exit 0 + if rcVarIsYes opensips_rtpproxy; then + cmd="@l_prefix@/sbin/opensips_rtpproxy" \ + cmd="$cmd -l $opensips_rtpproxy_listen" + cmd="$cmd -s unix:$opensips_rtpproxy_socket" + cmd="$cmd -p $opensips_rtpproxy_pidfile" + su @l_rusr@ -c "$cmd" + fi + @l_prefix@/sbin/opensips \ + -P $opensips_pidfile \ + ${opensips_flags} + +%stop -u @l_susr@ + rcService opensips enable yes || exit 0 + rcService opensips active no && exit 0 + @l_prefix@/sbin/opensipsctl stop + if rcVarIsYes opensips_rtpproxy; then + opensips_rtpproxy_signal TERM + fi + sleep 2 + +%restart -u @l_susr@ + rcService opensips enable yes || exit 0 + rcService opensips active no && exit 0 + rc opensips stop start + +%daily -u @l_susr@ + rcService opensips enable yes || exit 0 + shtool rotate -f \ + -n ${opensips_log_numfiles} -s ${opensips_log_minsize} -d \ + -z ${opensips_log_complevel} -m 644 -o @l_rusr@ -g @l_rgrp@ \ + -P "${opensips_log_prolog}" \ + -E "${opensips_log_epilog}; rc opensips reload" \ + @l_prefix@/var/opensips/opensips.log +