#!/bin/sh # # asterix This shell script takes care of starting and stopping # callweaver PBX # # chkconfig: 345 90 25 # # description: callweaver is an Open Source PBX and telephony development platform that \ \ # can both replace a conventional PBX and act as a platform for \ # developing custom telephony applications for delivering dynamic \ # content over a telephone similarly to how one can deliver dynamic \ # content through a web browser using CGI and a web server. # # pidfile: /var/run/callweaver.pid # config: /etc/callweaver/callweaver.conf # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network CALLWEAVER_REALTIME=yes CALLWEAVER_SAFE=no # Get service config [ -f /etc/sysconfig/callweaver ] && . /etc/sysconfig/callweaver # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down callweaver exit 1 fi else exit 0 fi REALDAEMON=/usr/sbin/callweaver if is_yes "$CALLWEAVER_SAFE"; then DAEMON=/usr/sbin/safe_callweaver else DAEMON=/usr/sbin/callweaver fi if ! is_yes "$CALLWEAVER_REALTIME"; then CALLWEAVER_OPT="$CALLWEAVER_OPT -p" fi RETVAL=0 # See how we were called. start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/callweaver ]; then msg_starting callweaver daemon $DAEMON -U callweaver -G callweaver $CALLWEAVER_OPT RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/callweaver else msg_already_running callweaver fi } stop() { # Stop daemons. if [ -f /var/lock/subsys/callweaver ]; then msg_stopping callweaver daemon $REALDAEMON -rx 'stop now' sleep 2 # make sure it's dead killproc callweaver -KILL > /dev/null 2>&1 rm -f /var/lock/subsys/callweaver >/dev/null 2>&1 else msg_not_running callweaver fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop start ;; reload) if [ -f /var/lock/subsys/callweaver ]; then msg_reloading "callweaver configuration" daemon $DAEMON -rx 'reload' # these AFAIK are also reloaded by -rx reload # msg_reloading "callweaver logger" # daemon $DAEMON -rx 'logger reload' # msg_reloading "callweaver extensions" # daemon $DAEMON -rx 'extensions reload' RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/callweaver ok else msg_not_running callweaver exit 1 fi ;; logger-reload) $DAEMON -rx 'logger reload' ;; status) status callweaver exit $? ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 esac exit $RETVAL