| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # DAHDI:       Loads Asterisk modules | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # Version:      @(#) /etc/rc.d/init.d/dahdi 1.0 | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # chkconfig: 2345 90 10 | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # description: Loads and unloads DAHDI modules at boot time and shutdown. | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # hide: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-04 17:12:35 +00:00
										 |  |  | # $Id$ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | # Source function library. | 
					
						
							|  |  |  | . /etc/rc.d/init.d/functions | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # Default modules - override in /etc/sysconfig/dahdi | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | ###################################### | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | MODULES="usb-uhci dahdi wcfxo wcusb" | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | ###################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-12 17:27:55 +00:00
										 |  |  | # Resolve back to the basename (i.e. dahdi, not S90dahdi) | 
					
						
							| 
									
										
										
										
											2006-07-12 18:39:36 +00:00
										 |  |  | if [ 0`readlink $0` = "0" ]; then | 
					
						
							|  |  |  | 	CONFIGFILE=/etc/sysconfig/`basename $0` | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	CONFIG0=`readlink $0` | 
					
						
							|  |  |  | 	CONFIGFILE=/etc/sysconfig/`basename $CONFIG0` | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ -f $CONFIGFILE ] && . $CONFIGFILE | 
					
						
							| 
									
										
										
										
											2005-03-12 06:50:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | function probe() { | 
					
						
							|  |  |  | 	gprintf "                           $1" | 
					
						
							| 
									
										
										
										
											2005-03-12 06:50:22 +00:00
										 |  |  | 	modprobe -i $1 | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | 	# It has to be in the module list, otherwise something is wrong | 
					
						
							|  |  |  | 	if lsmod | grep -c ^$1 >/dev/null; then | 
					
						
							|  |  |  | 		success | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		failure | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function unprobe() { | 
					
						
							|  |  |  | 	gprintf "                           $1" | 
					
						
							|  |  |  | 	rmmod $1 >/dev/null 2>&1 | 
					
						
							|  |  |  | 	# If it's still in the module list after removing it, there's something wrong. | 
					
						
							|  |  |  | 	if lsmod | grep -c ^$1 >/dev/null; then | 
					
						
							|  |  |  | 		failure | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		success | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function reverse_modules() { | 
					
						
							|  |  |  | 	tmp=$MODULES | 
					
						
							|  |  |  | 	MODULES='' | 
					
						
							|  |  |  | 	for i in $tmp; do | 
					
						
							|  |  |  | 		MODULES="$i $MODULES" ; | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # See how we were called. | 
					
						
							|  |  |  | case "$1" in | 
					
						
							|  |  |  |   start) | 
					
						
							|  |  |  | 	gprintf "Loading Asterisk modules:\n" | 
					
						
							|  |  |  | 	for i in $MODULES; do | 
					
						
							|  |  |  | 		probe $i | 
					
						
							|  |  |  | 		usleep 100000 ; | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 	ztcfg | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   stop) | 
					
						
							|  |  |  | 	gprintf "Unloading Asterisk modules:\n" | 
					
						
							|  |  |  | 	reverse_modules | 
					
						
							|  |  |  | 	for i in $MODULES; do | 
					
						
							|  |  |  | 		unprobe $i | 
					
						
							|  |  |  | 		usleep 100000 ; | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   status) | 
					
						
							| 
									
										
										
										
											2005-03-12 06:50:22 +00:00
										 |  |  |   	#ztcfg -vv | 
					
						
							|  |  |  | 	OK=1 | 
					
						
							|  |  |  | 	gprintf "Checking Asterisk modules" | 
					
						
							|  |  |  | 	for i in $MODULES; do | 
					
						
							|  |  |  | 		if [ `lsmod | grep -c $i` -eq 0 ]; then | 
					
						
							|  |  |  | 			OK=0 | 
					
						
							|  |  |  | 		fi | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 	if [ $OK -gt 0 ]; then | 
					
						
							|  |  |  | 		success | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		failure | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	echo | 
					
						
							| 
									
										
										
										
											2004-01-11 10:17:38 +00:00
										 |  |  | 	;; | 
					
						
							|  |  |  |   restart) | 
					
						
							|  |  |  |   	$0 stop | 
					
						
							|  |  |  | 	$0 start | 
					
						
							|  |  |  | 	;; | 
					
						
							|  |  |  |   *) | 
					
						
							|  |  |  | 	gprintf "*** Usage: $0 {start|stop|status|restart}\n" | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit 0 |