Ver código fonte

new package: openser 0.9.5 (Open SIP Express Router)

Ralf S. Engelschall 20 anos atrás
pai
commit
09b6d60b12

+ 16 - 0
openser/fsl.openser

@@ -0,0 +1,16 @@
+##
+##  fsl.openser -- OSSP fsl configuration
+##
+
+ident .*(openser)/.+ q{
+    prefix(
+        prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+    )
+    -> {
+        debug: file(
+            path="@l_prefix@/var/openser/openser.log",
+            perm=0664
+        )
+    }
+};
+

+ 58 - 0
openser/openser.cfg

@@ -0,0 +1,58 @@
+##
+##  openser.cfg -- OpenSER 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/openser/openser.fifo"
+workdir="@l_prefix@/var/openser"
+
+#   network configuration
+alias="example.com"
+listen="127.0.0.1"
+port=5060
+
+#
+#   EXTENSION MODULE LOADING
+#
+
+loadmodule "@l_prefix@/lib/openser/modules/dbtext.so"
+loadmodule "@l_prefix@/lib/openser/modules/sl.so"
+loadmodule "@l_prefix@/lib/openser/modules/tm.so"
+loadmodule "@l_prefix@/lib/openser/modules/rr.so"
+loadmodule "@l_prefix@/lib/openser/modules/maxfwd.so"
+loadmodule "@l_prefix@/lib/openser/modules/usrloc.so"
+loadmodule "@l_prefix@/lib/openser/modules/registrar.so"
+loadmodule "@l_prefix@/lib/openser/modules/textops.so"
+loadmodule "@l_prefix@/lib/openser/modules/auth.so"
+loadmodule "@l_prefix@/lib/openser/modules/auth_db.so"
+
+#
+#   EXTENSION MODULE CONFIGURATION
+#
+
+#   module usrloc:
+modparam("usrloc", "db_mode", 2)
+modparam("usrloc|auth_db", "db_url", "dbtext://@l_prefix@/var/openser/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 rr:
+modparam("rr", "enable_full_lr", 1)
+

+ 12 - 0
openser/openser.patch

@@ -0,0 +1,12 @@
+Index: Makefile.defs
+--- Makefile.defs.orig	2005-07-01 14:13:43 +0200
++++ Makefile.defs	2005-10-09 18:37:26 +0200
+@@ -982,6 +982,8 @@
+ 		found_lock_method=yes
+ endif
+ 
++LDFLAGS += -L$(prefix)/lib
++LIBS    += -lfsl
+ 
+ 
+ 

+ 8 - 0
openser/openser.schema-dbtext.txt

@@ -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

+ 205 - 0
openser/openser.spec

@@ -0,0 +1,205 @@
+##
+##  openser.spec -- OpenPKG RPM Package Specification
+##  Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
+##  Copyright (c) 2000-2005 Ralf S. Engelschall <http://engelschall.com/>
+##
+##  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 information
+Name:         openser
+Summary:      Open SIP Express Router
+URL:          http://openser.org/
+Vendor:       FhG FOKUS
+Packager:     OpenPKG
+Distribution: OpenPKG
+Class:        EVAL
+Group:        Network
+License:      GPL
+Version:      0.9.5
+Release:      20051009
+
+#   package options
+%option       with_fsl  yes
+
+#   list of sources
+Source0:      http://openser.org/pub/openser/%{version}/src/openser-%{version}_src.tar.gz
+Source1:      rc.openser
+Source2:      fsl.openser
+Source3:      openser.cfg
+Source4:      openser.schema-dbtext.txt
+Patch0:       openser.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20040130, make, gcc, flex, bison
+PreReq:       OpenPKG, openpkg >= 20040130
+%if "%{with_fsl}" == "yes"
+BuildPreReq:  fsl >= 1.2.0
+PreReq:       fsl >= 1.2.0
+%endif
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    OpenSER is a project 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 openser = {
+        version   = %{version}
+        url       = http://openser.org/pub/openser/
+        regex     = (\d+\.\d+\.\d+)/
+        url       = http://openser.org/pub/openser/__NEWVER__/src/
+        regex     = openser-(__VER__)_src\.tar\.gz
+    }
+
+%prep
+    %setup -q
+    %patch -p0
+
+%build
+    #   build dependencies
+    %{l_make} %{l_mflags} \
+        CC="%{l_cc}" \
+        prefix=%{l_prefix} \
+        dep >/dev/null 2>&1 || true
+
+    #   build program
+    %{l_make} %{l_mflags} \
+        CC="%{l_cc}" \
+        prefix=%{l_prefix}
+
+    #   build modules
+    %{l_make} %{l_mflags} \
+        CC="%{l_cc}" \
+        prefix=%{l_prefix} \
+        modules \
+        skip_modules="mysql jabber"
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install program
+    %{l_make} %{l_mflags} \
+        basedir=$RPM_BUILD_ROOT \
+        prefix=%{l_prefix} \
+        cfg-prefix=$RPM_BUILD_ROOT \
+        cfg-target=%{l_prefix}/etc/openser/ \
+        doc-dir=share/openser/doc/ \
+        man-dir=man/ \
+        install
+
+    #   install modules
+    %{l_make} %{l_mflags} \
+        basedir=$RPM_BUILD_ROOT \
+        prefix=%{l_prefix} \
+        cfg-prefix=$RPM_BUILD_ROOT \
+        cfg-target=%{l_prefix}/etc/openser/ \
+        doc-dir=share/openser/doc/ \
+        man-dir=man/ \
+        install-modules \
+        skip_modules="mysql jabber"
+
+    #   strip down installation
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/openser_mysql.sh
+
+    #   post-adjust installation
+    %{l_shtool} subst \
+        -e 's;/etc/ser/.openserctlrc;%{l_prefix}/etc/openser/openserctlrc;g' \
+        -e 's;\(PID_FILE\)=.*;\1=%{l_prefix}/var/openser/openser.pid;' \
+        -e 's;\(SER_FIFO\)=.*;\1=%{l_prefix}/var/openser/openser.fifo;' \
+        $RPM_BUILD_ROOT%{l_prefix}/sbin/openserctl
+
+    #   install default configuration
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/openser
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE openser.cfg} \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/openser/
+
+    #   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.openser} \
+        $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.openser} \
+        $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/openser
+    %{l_shtool} install -c -m 644 \
+        %{SOURCE openser.schema-dbtext.txt} \
+        $RPM_BUILD_ROOT%{l_prefix}/share/openser/
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%not %dir %{l_prefix}/etc/fsl' \
+        '%config %{l_prefix}/etc/fsl/*' \
+        '%config %{l_prefix}/etc/openser/*' \
+        '%doc %{l_prefix}/share/openser/doc/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/openser'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+
+%post
+    #   on install, setup database
+    if [ ! -d $RPM_INSTALL_PREFIX/var/openser/db ]; then
+        mkdir $RPM_INSTALL_PREFIX/var/openser/db
+        chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/openser/db
+        chmod 755 $RPM_INSTALL_PREFIX/var/openser/db
+        schema="$RPM_INSTALL_PREFIX/share/openser/openser.schema-dbtext.txt"
+        for table in `sed -e 's;\([^:]*\):.*;\1;' <$schema | sort -u`; do
+            grep "^${table}:" $schema | sed -e "s;^${table}: *;;" \
+                >$RPM_INSTALL_PREFIX/var/openser/db/$table
+        done
+        chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/openser/db/* 2>/dev/null || true
+        chmod 644 $RPM_INSTALL_PREFIX/var/openser/db/* 2>/dev/null || true
+    fi
+
+    #   after upgrade, restart service
+    [ $1 -eq 2 ] || exit 0
+    eval `%{l_rc} openser status 2>/dev/null`
+    [ ".$openser_active" = .yes ] && %{l_rc} openser restart
+    exit 0
+
+%preun
+    #   before erase, stop service and remove log files
+    [ $1 -eq 0 ] || exit 0
+    %{l_rc} openser stop 2>/dev/null
+    rm -rf $RPM_INSTALL_PREFIX/var/openser/db 2>/dev/null || true
+    rm -f  $RPM_INSTALL_PREFIX/var/openser/*  2>/dev/null || true
+    exit 0
+

+ 57 - 0
openser/rc.openser

@@ -0,0 +1,57 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.openser -- Run-Commands
+##
+
+%config
+    openser_enable="$openpkg_rc_def"
+    openser_flags=""
+    openser_log_prolog="true"
+    openser_log_epilog="true"
+    openser_log_numfiles="10"
+    openser_log_minsize="1M"
+    openser_log_complevel="9"
+
+%common
+    openser_pidfile="@l_prefix@/var/openser/openser.pid"
+
+%status -u @l_susr@ -o
+    openser_usable="no"
+    openser_active="no"
+    if [ ".`@l_prefix@/sbin/openser -c 2>/dev/null | grep 'config file ok'`" != . ]; then
+        openser_usable="yes"
+    fi
+    if @l_prefix@/sbin/openserctl ps >/dev/null 2>&1; then
+        openser_active="yes"
+    fi
+    echo "openser_enable=\"$openser_enable\""
+    echo "openser_usable=\"$openser_usable\""
+    echo "openser_active=\"$openser_active\""
+
+%start -p 100 -u @l_susr@
+    rcService openser enable yes || exit 0
+    rcService openser active yes && exit 0
+    @l_prefix@/sbin/openser \
+        -P $openser_pidfile \
+        ${openser_flags}
+
+%stop -p 900 -u @l_susr@
+    rcService openser enable yes || exit 0
+    rcService openser active no  && exit 0
+    @l_prefix@/sbin/openserctl stop
+    sleep 2
+
+%restart -p 100 -u @l_susr@
+    rcService openser enable yes || exit 0
+    rcService openser active no  && exit 0
+    rc openser stop start
+
+%daily -u @l_susr@
+    rcService openser enable yes || exit 0
+    shtool rotate -f \
+        -n ${openser_log_numfiles} -s ${openser_log_minsize} -d \
+        -z ${openser_log_complevel} -m 644 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${openser_log_prolog}" \
+        -E "${openser_log_epilog}; rc openser reload" \
+        @l_prefix@/var/openser/openser.log
+