All pastes #58018 Raw Edit

Anonymous

public text v1 · immutable
#58018 ·published 2006-05-22 14:02 UTC
rendered paste body
#!/bin/bash

ROOT_UID=0       # root uid is 0
E_NOTROOT=67     # Non-root exit error


echo
# check to see if we are root
if [ "$UID" -ne "$ROOT_UID" ]
then
        echo "Sorry, you must be root to run this script."
        echo
        exit $E_NOTROOT
fi

# make sure config file exists
if [ ! -e "/etc/amportal.conf" ]       # Check if file exists.
  then
    echo;
    echo "/etc/amportal.conf does not exist!";
        echo "Have you installed the AMP configuration?";
        exit;
fi
source /etc/amportal.conf

chown_asterisk() {
        echo SETTING FILE PERMISSIONS
        chown -R asterisk:asterisk /var/run/asterisk
        chown -R asterisk:asterisk /etc/asterisk
        chown -R asterisk:asterisk /var/lib/asterisk
        chown -R asterisk:asterisk /var/log/asterisk
        chown -R asterisk:asterisk /var/spool/asterisk
        if [ -d /dev/zap ]
                then
                        chown -R asterisk:asterisk /dev/zap
                fi
        chown asterisk /dev/tty9
        chown -R asterisk:asterisk $AMPWEBROOT/admin
        chown -R asterisk:asterisk $FOPWEBROOT
        chown -R asterisk:asterisk $AMPWEBROOT/recordings
        chown -R asterisk:asterisk $AMPWEBROOT/_asterisk
        chown -R asterisk:asterisk $AMPCGIBIN/vmail.cgi
        chmod u+x /var/lib/asterisk/bin/*.pl
        chmod u+x /var/lib/asterisk/bin/archive_recordings
        chmod u+x /var/lib/asterisk/bin/retrieve_conf
        chmod u+x /var/lib/asterisk/agi-bin/*
        chmod u+x $AMPWEBROOT/admin/bounce_op.sh
        chmod u+x $AMPCGIBIN/vmail.cgi
        chmod u+x $FOPWEBROOT/*.pl
        chmod u+x $FOPWEBROOT/safe_opserver
        echo Permissions OK
}

check_asterisk() {
# check to see if asterisk is running
# Note, this isn't fool-proof.  If safe_asterisk is constantly restarting a dying asterisk, then there is a chance pidof will return non zero.  We call this twice to reduce chances of this happening
pid_length=`pidof asterisk|awk '{print length($0)}'`
        if [ "$pid_length" == "0" -a "$pid_length" != "" ]
                then
                                killall -9 safe_asterisk
                                killall -9 mpg123 > /dev/null
                                echo
                                echo "-----------------------------------------------------"
                                echo "Asterisk could not start!"
                                echo "Use 'tail /var/log/asterisk/full' to find out why."
                                echo "-----------------------------------------------------"
                                exit 0
                fi
}

run_asterisk() {
# check to see if asterisk is running
echo
echo "STARTING ASTERISK"
pid_length=`pidof asterisk|awk '{print length($0)}'`
        if [ "$pid_length" != "0" -a "$pid_length" != "" ]
                then
                        echo "Asterisk is already running"
                else
                        # su - asterisk -c "export PATH=$PATH:/usr/sbin && export LD_LIBRARY_PATH=/usr/local/lib && /usr/sbin/safe_asterisk"
                        export LD_LIBRARY_PATH=/usr/local/lib
                        /usr/sbin/safe_asterisk -U asterisk -G asterisk
                        sleep 5
                        check_asterisk
                        sleep 1
                        check_asterisk
                        echo "Asterisk Started"
                fi
}

stop_asterisk() {
echo
echo "STOPPING ASTERISK"
pid_length=`pidof asterisk|awk '{print length($0)}'`
        if [ "$pid_length" != "0" -a "$pid_length" != "" ]
                then
                        /usr/sbin/asterisk -rx "stop gracefully"
                        echo "Asterisk Stopped"
                fi
}

check_fop() {
#check to see if FOP is running
        pid_length=`pidof -x op_server.pl|awk '{print length($0)}'`
        if [ "$pid_length" == "0" -a "$pid_length" != "" ]
                then
                                killall -9 safe_opserver
                                echo
                                echo "-----------------------------------------------------"
                                echo "The FOP's server (op_server.pl) could not start!"
                                echo "Please correct this problem"
                                echo "-----------------------------------------------------"
                                exit 0
                fi
}

run_fop() {
# check to see if FOP is running
echo
echo "STARTING FOP SERVER"
pid_length=`pidof -x op_server.pl|awk '{print length($0)}'`
        if [ "$pid_length" != "0" -a "$pid_length" != "" ]
                then
                        echo "FOP server is already running"
                else
                        su - asterisk -c "cd $FOPWEBROOT && $FOPWEBROOT/safe_opserver &"
                        sleep 1
                        check_fop
                        echo "FOP Server Started"
                fi
}

stop_fop() {
        echo
        echo "STOPPING FOP SERVER"
        pid_length=`pidof -x op_server.pl|awk '{print length($0)}'`
                if [ "$pid_length" != "0" -a "$pid_length" != "" ]
                        then
                                killall -9 safe_opserver
                                killall -9 op_server.pl
                                echo "FOP Server Stopped"
                        fi
}

kill_amp() {
        echo
        echo "KILLING AMP PROCESSES"
        killall -9 safe_asterisk
        killall -9 asterisk
        killall -9 mpg123
        killall -9 safe_opserver
        killall -9 op_server.pl
}

case "$1" in
        start)
                chown_asterisk
                run_asterisk
                run_fop
        ;;
        stop)
                stop_asterisk
                stop_fop
        ;;
        restart)
                stop_asterisk
                stop_fop
                sleep 1
                chown_asterisk
                run_asterisk
                run_fop
        ;;
        chown)
                chown_asterisk
        ;;
        kill)
                kill_amp
        ;;
        *)
                echo "----------AMP Control Script-----------"
                echo "Usage: amportal start|stop|kill|chown"
                echo
                echo "start: Starts Asterisk and Flash Operator Panel server"
                echo "stop: Gracefully stops Asterisk and the FOP server"
                echo "restart: Stop and Starts"
                echo "kill: Kills Asterisk and the FOP server"
                echo "chown: Sets appropriate permissions on files"
                echo
                exit 1
        ;;
esac