]>
Commit | Line | Data |
---|---|---|
68da8345 PG |
1 | #!/bin/sh |
2 | # | |
3 | # asterix This shell script takes care of starting and stopping | |
4 | # Asterisk PBX | |
5 | # | |
2468a25f | 6 | # chkconfig: 345 90 10 |
68da8345 | 7 | # |
a9680595 | 8 | # description: Asterisk is an Open Source PBX and telephony development platform that \ \ |
9 | # can both replace a conventional PBX and act as a platform for \ | |
10 | # developing custom telephony applications for delivering dynamic \ | |
11 | # content over a telephone similarly to how one can deliver dynamic \ | |
68da8345 | 12 | # content through a web browser using CGI and a web server. |
7c21f3c5 | 13 | # |
2468a25f | 14 | # pidfile: /var/run/asterisk/asterisk.pid |
68da8345 PG |
15 | # config: /etc/asterisk/asterisk.conf |
16 | ||
68da8345 PG |
17 | # Source function library |
18 | . /etc/rc.d/init.d/functions | |
19 | ||
20 | # Get network config | |
21 | . /etc/sysconfig/network | |
22 | ||
2468a25f ER |
23 | # Specify the configuration file |
24 | AST_CONFIG=/etc/asterisk/asterisk.conf | |
25 | ||
26 | # The user that Asterisk will run as. | |
27 | AST_USER="asterisk" | |
28 | ||
29 | # If a user is specified above, Asterisk will change the group it runs | |
30 | # as to the primary group of the user, as well as initialize the | |
31 | # supplementary groups. If you want to run Asterisk as a different | |
32 | # group, set AST_GROUP to the group that Asterisk should run as. Note | |
33 | # that this may break DAHDI devices as supplementary groups will not | |
34 | # be initialized. | |
35 | #AST_GROUP="asterisk" | |
36 | ||
68da8345 PG |
37 | # Get service config |
38 | [ -f /etc/sysconfig/asterisk ] && . /etc/sysconfig/asterisk | |
39 | ||
40 | # Check that networking is up. | |
fc0a4ecb | 41 | if is_yes "${NETWORKING}"; then |
6c12883e | 42 | if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then |
cb0433cf | 43 | msg_network_down "Asterisk" |
fc0a4ecb | 44 | exit 1 |
45 | fi | |
46 | else | |
47 | exit 0 | |
68da8345 PG |
48 | fi |
49 | ||
2703c950 | 50 | start() { |
68da8345 | 51 | # Check if the service is already running? |
cb0433cf ER |
52 | if [ -f /var/lock/subsys/asterisk ]; then |
53 | msg_already_running "Asterisk" | |
54 | return | |
68da8345 | 55 | fi |
cb0433cf ER |
56 | |
57 | msg_starting "Asterisk" | |
2468a25f ER |
58 | if [ $AST_USER ] ; then |
59 | AST_ARGS="-U $AST_USER" | |
60 | fi | |
61 | if [ $AST_GROUP ] ; then | |
62 | AST_ARGS="$AST_ARGS -G $AST_GROUP" | |
63 | fi | |
64 | if [ $AST_CONFIG ]; then | |
65 | AST_ARGS="$AST_ARGS -C $AST_CONFIG" | |
66 | fi | |
2d0bc72f | 67 | daemon /usr/sbin/asterisk -F $AST_ARGS $ASTERISK_OPTS |
2468a25f | 68 | |
cb0433cf ER |
69 | RETVAL=$? |
70 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk | |
2703c950 ER |
71 | } |
72 | ||
73 | stop() { | |
68da8345 | 74 | # Stop daemons. |
cb0433cf ER |
75 | if [ ! -f /var/lock/subsys/asterisk ]; then |
76 | msg_not_running "Asterisk" | |
77 | return | |
68da8345 | 78 | fi |
cb0433cf ER |
79 | |
80 | msg_stopping "Asterisk" | |
81 | killproc asterisk | |
82 | rm -f /var/lock/subsys/asterisk >/dev/null 2>&1 | |
2703c950 ER |
83 | } |
84 | ||
5768a4fa ER |
85 | condrestart() { |
86 | if [ ! -f /var/lock/subsys/asterisk ]; then | |
87 | msg_not_running "Asterisk" | |
88 | RETVAL=$1 | |
89 | return | |
90 | fi | |
91 | ||
92 | stop | |
93 | start | |
94 | } | |
95 | ||
96 | reload() { | |
97 | if [ ! -f /var/lock/subsys/asterisk ]; then | |
5768a4fa | 98 | msg_not_running "Asterisk" |
7c6c5751 | 99 | RETVAL=1 |
5768a4fa ER |
100 | return |
101 | fi | |
102 | ||
103 | msg_reloading "Asterisk"; busy | |
104 | /usr/sbin/asterisk -rx reload > /dev/null 2>&1 | |
105 | RETVAL=$? | |
106 | if [ $RETVAL -eq 0 ]; then | |
107 | touch /var/lock/subsys/asterisk | |
108 | ok | |
109 | else | |
110 | fail | |
111 | fi | |
112 | } | |
113 | ||
1b3bd1cb ER |
114 | ael-reload() { |
115 | local res | |
116 | res=$(aelparse -n -q | grep -F Error) | |
117 | if [ "$res" ]; then | |
118 | echo >&2 "$res" | |
119 | RETVAL=1 | |
120 | return | |
121 | fi | |
122 | ||
123 | if [ ! -f /var/lock/subsys/asterisk ]; then | |
124 | msg_not_running "Asterisk" | |
125 | RETVAL=1 | |
126 | return | |
127 | fi | |
128 | ||
129 | /usr/sbin/asterisk -rx "ael reload" | |
130 | } | |
131 | ||
2703c950 ER |
132 | RETVAL=0 |
133 | # See how we were called. | |
134 | case "$1" in | |
135 | start) | |
1b3bd1cb | 136 | start |
2703c950 ER |
137 | ;; |
138 | stop) | |
1b3bd1cb | 139 | stop |
68da8345 | 140 | ;; |
5768a4fa | 141 | restart) |
2703c950 ER |
142 | stop |
143 | start | |
68da8345 | 144 | ;; |
5768a4fa ER |
145 | try-restart) |
146 | condrestart 0 | |
147 | ;; | |
148 | reload|force-reload) | |
1b3bd1cb | 149 | reload |
690701c9 | 150 | ;; |
2b8cb1e2 ER |
151 | dialplan-reload) |
152 | /usr/sbin/asterisk -rx "dialplan reload" | |
153 | ;; | |
95eafd91 | 154 | ael-reload) |
1b3bd1cb | 155 | ael-reload |
95eafd91 | 156 | ;; |
9fa55d52 | 157 | logger-reload) |
5768a4fa ER |
158 | /usr/sbin/asterisk -rx "logger reload" |
159 | ;; | |
68da8345 PG |
160 | status) |
161 | status asterisk | |
162 | exit $? | |
163 | ;; | |
164 | *) | |
95eafd91 | 165 | msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|dialplan-reload|ael-reload|logger-reload|status}" |
fc0a4ecb | 166 | exit 3 |
68da8345 PG |
167 | esac |
168 | ||
169 | exit $RETVAL |