#!/bin/sh # # Start/stop/restart Asterisk PBX # # Version: 1.1 - Chris Walker # Version: 1.0 - Paul Belanger # # 2025.02.03 - Stop asterisk via asterisk cli # 2005.03.29 - Initial Version # # $Id$ ### BEGIN INIT INFO # Provides: asterisk # Required-Start: $network $syslog $named $local_fs $remote_fs # Required-Stop: $network $syslog $named $local_fs $remote_fs # Should-Start: dahdi misdn lcr wanrouter mysql postgresql # Should-Stop: dahdi misdn lcr wanrouter mysql postgresql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Asterisk PBX # Description: the Asterisk Open Source PBX ### END INIT INFO asterisk_start() { if [ -x /usr/sbin/asterisk ]; then # Check if Asterisk is already running. If it is, then bug out, because # starting safe_asterisk when Asterisk is running is very bad. VERSION=`/usr/sbin/asterisk -rx 'core show version' 2>/dev/null` if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then echo "Asterisk is already running. $0 will exit now." exit 1 fi echo "Starting Asterisk /usr/sbin/asterisk" mkdir -p /var/run/asterisk chown asterisk:asterisk /var/run/asterisk /usr/sbin/asterisk fi } asterisk_stop() { # If there is no PID file, ignore this request... if [ -r /var/run/asterisk/asterisk.pid ]; then /usr/sbin/asterisk -x 'core stop gracefully' fi } asterisk_restart() { if [ -r /var/run/asterisk/asterisk.pid ]; then echo "Restarting Asterisk /usr/sbin/asterisk -x 'core restart gracefully'" /usr/sbin/asterisk -x 'core restart gracefully' else asterisk_start fi } asterisk_reload() { if [ -r /var/run/asterisk/asterisk.pid ]; then echo "Reloading Asterisk /usr/sbin/asterisk -x 'core reload'" /usr/sbin/asterisk -x 'core reload' fi } case "$1" in 'start') asterisk_start ;; 'stop') asterisk_stop ;; 'reload') asterisk_reload ;; 'restart') asterisk_restart ;; *) echo "usage $0 start|stop|restart" ;; esac