| 
									
										
										
										
											2006-01-09 23:20:50 +00:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # $Id: asterisk,v 1.3 2005/11/17 22:30:01 Gregory Boehnlein <damin@nacs.net> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # asterisk    Starts, Stops and Reloads Asterisk. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # chkconfig: 2345 40 60 | 
					
						
							|  |  |  | # description: Asterisk PBX and telephony daemon. | 
					
						
							|  |  |  | # processname: asterisk | 
					
						
							|  |  |  | # pidfile: /var/run/asterisk.pid | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Thu Nov 17 2005 Gregory Boehnlein <damin@nacs.net> | 
					
						
							|  |  |  | # - Updated Version to 1.3 | 
					
						
							|  |  |  | # - Reversed behavior of LD_ASSUME_KERNEL=2.4.1 | 
					
						
							|  |  |  | # - Added detailed failure messages | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Sun Jul 18 2004 Gregory Boehnlein <damin@nacs.net> | 
					
						
							|  |  |  | # - Updated Version to 1.2 | 
					
						
							|  |  |  | # - Added test for safe_asterisk | 
					
						
							|  |  |  | # - Verified SIGTERM issued by "killproc" ensures "stop gracefully" | 
					
						
							|  |  |  | # - Added support for -U and -G command line options | 
					
						
							|  |  |  | # - Modified "reload" to call asterisk -rx 'reload'  | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-30 23:39:06 +00:00
										 |  |  | ### BEGIN INIT INFO | 
					
						
							|  |  |  | # Provides:                    asterisk | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # Required-Start:      +dahdi $network $named | 
					
						
							| 
									
										
										
										
											2007-01-30 23:39:06 +00:00
										 |  |  | # Required-Stop: | 
					
						
							|  |  |  | # Default-Start:     3 5 | 
					
						
							|  |  |  | # Default-Stop:      0 1 2 4 6 | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # Description: dahdi - dahdi modules for Asterisk | 
					
						
							| 
									
										
										
										
											2007-01-30 23:39:06 +00:00
										 |  |  | ### END INIT INFO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-09 23:20:50 +00:00
										 |  |  | # Source function library. | 
					
						
							|  |  |  | . /lib/lsb/init-functions | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ! [ -x /usr/sbin/asterisk ] ; then | 
					
						
							|  |  |  | 	echo "ERROR: /usr/sbin/asterisk not found" | 
					
						
							|  |  |  | 	exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ! [ -d /etc/asterisk ] ; then | 
					
						
							|  |  |  | 	echo "ERROR: /etc/asterisk directory not found" | 
					
						
							|  |  |  | 	exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Uncomment this ONLY if you know what you are doing. | 
					
						
							|  |  |  | # export LD_ASSUME_KERNEL=2.4.1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Full path to asterisk binary | 
					
						
							|  |  |  | DAEMON=/usr/sbin/asterisk | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Full path to safe_asterisk script | 
					
						
							|  |  |  | SAFE_ASTERISK=/usr/sbin/safe_asterisk | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Uncomment the following and set them to the user/groups that you | 
					
						
							|  |  |  | # want to run Asterisk as. NOTE: this requires substantial work to | 
					
						
							|  |  |  | # be sure that Asterisk's environment has permission to write the | 
					
						
							|  |  |  | # files required  for  its  operation, including logs, its comm | 
					
						
							|  |  |  | # socket, the asterisk database, etc. | 
					
						
							|  |  |  | #AST_USER="asterisk" | 
					
						
							|  |  |  | #AST_GROUP="asterisk" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | RETVAL=0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | start() { | 
					
						
							|  |  |  | 	# Start daemons. | 
					
						
							| 
									
										
										
										
											2008-05-05 03:25:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	# Check if Asterisk is already running.  If it is, then bug out, because | 
					
						
							|  |  |  | 	# starting Asterisk when Asterisk is already running is very bad. | 
					
						
							|  |  |  | 	VERSION=`/usr/sbin/asterisk -rx 'core show version'` | 
					
						
							| 
									
										
										
										
											2008-05-30 16:47:24 +00:00
										 |  |  | 	if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then | 
					
						
							| 
									
										
										
										
											2008-05-05 03:25:35 +00:00
										 |  |  | 		echo "Asterisk is already running.  $0 will exit now." | 
					
						
							|  |  |  | 		exit 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-09 23:20:50 +00:00
										 |  |  | 	echo -n $"Starting asterisk: " | 
					
						
							|  |  |  |         if [ -f $SAFE_ASTERISK ] ; then | 
					
						
							|  |  |  | 		DAEMON=$SAFE_ASTERISK | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	if [ $AST_USER ] ; then | 
					
						
							|  |  |  | 		ASTARGS="-U $AST_USER" | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	if [ $AST_GROUP ] ; then | 
					
						
							|  |  |  | 		ASTARGS="`echo $ASTARGS` -G $AST_GROUP" | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	$DAEMON $ASTARGS | 
					
						
							|  |  |  | 	RETVAL=$? | 
					
						
							|  |  |  | 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | 	return $RETVAL | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | stop() { | 
					
						
							|  |  |  | 	# Stop daemons. | 
					
						
							|  |  |  | 	echo -n $"Shutting down asterisk: " | 
					
						
							|  |  |  | 	killproc asterisk | 
					
						
							|  |  |  | 	RETVAL=$? | 
					
						
							|  |  |  | 	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | 	return $RETVAL | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | restart() { | 
					
						
							|  |  |  | 	stop | 
					
						
							|  |  |  | 	start | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | reload() { | 
					
						
							|  |  |  | 	$DAEMON -rx 'reload' > /dev/null 2> /dev/null | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # See how we were called. | 
					
						
							|  |  |  | case "$1" in | 
					
						
							|  |  |  |   start) | 
					
						
							|  |  |  | 	start | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   stop) | 
					
						
							|  |  |  | 	stop | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   restart) | 
					
						
							|  |  |  | 	restart | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   reload) | 
					
						
							|  |  |  | 	reload | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   condrestart) | 
					
						
							|  |  |  | 	[ -f /var/lock/subsys/asterisk ] && restart || : | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   status) | 
					
						
							|  |  |  | 	status asterisk | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   *) | 
					
						
							|  |  |  | 	echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}" | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit $? |