+start() {
+ # Check if the service is already running?
+ if [ -f /var/lock/subsys/asterisk ]; then
+ msg_already_running "Asterisk"
+ return
+ fi
+
+ msg_starting "Asterisk"
+ if [ $AST_USER ] ; then
+ AST_ARGS="-U $AST_USER"
+ fi
+ if [ $AST_GROUP ] ; then
+ AST_ARGS="$AST_ARGS -G $AST_GROUP"
+ fi
+ if [ $AST_CONFIG ]; then
+ AST_ARGS="$AST_ARGS -C $AST_CONFIG"
+ fi
+ daemon /usr/sbin/asterisk -F $AST_ARGS $ASTERISK_OPTS
+
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
+}
+
+stop() {
+ # Stop daemons.
+ if [ ! -f /var/lock/subsys/asterisk ]; then
+ msg_not_running "Asterisk"
+ return
+ fi
+
+ msg_stopping "Asterisk"
+ killproc asterisk
+ rm -f /var/lock/subsys/asterisk >/dev/null 2>&1
+}
+
+condrestart() {
+ if [ ! -f /var/lock/subsys/asterisk ]; then
+ msg_not_running "Asterisk"
+ RETVAL=$1
+ return
+ fi
+
+ stop
+ start
+}
+
+reload() {
+ if [ ! -f /var/lock/subsys/asterisk ]; then
+ msg_not_running "Asterisk"
+ RETVAL=1
+ return
+ fi
+
+ msg_reloading "Asterisk"; busy
+ /usr/sbin/asterisk -rx reload > /dev/null 2>&1
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ touch /var/lock/subsys/asterisk
+ ok
+ else
+ fail
+ fi
+}
+
+ael-reload() {
+ local res
+ res=$(aelparse -n -q | grep -F Error)
+ if [ "$res" ]; then
+ echo >&2 "$res"
+ RETVAL=1
+ return
+ fi
+
+ if [ ! -f /var/lock/subsys/asterisk ]; then
+ msg_not_running "Asterisk"
+ RETVAL=1
+ return
+ fi
+
+ /usr/sbin/asterisk -rx "ael reload"
+}