]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | # | |
3 | # asterix This shell script takes care of starting and stopping | |
4 | # Asterisk PBX | |
5 | # | |
6 | # chkconfig: 345 90 10 | |
7 | # | |
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 \ | |
12 | # content through a web browser using CGI and a web server. | |
13 | # | |
14 | # pidfile: /var/run/asterisk/asterisk.pid | |
15 | # config: /etc/asterisk/asterisk.conf | |
16 | ||
17 | # Source function library | |
18 | . /etc/rc.d/init.d/functions | |
19 | ||
20 | # Get network config | |
21 | . /etc/sysconfig/network | |
22 | ||
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 | ||
37 | # Get service config | |
38 | [ -f /etc/sysconfig/asterisk ] && . /etc/sysconfig/asterisk | |
39 | ||
40 | # Check that networking is up. | |
41 | if is_yes "${NETWORKING}"; then | |
42 | if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then | |
43 | msg_network_down "Asterisk" | |
44 | exit 1 | |
45 | fi | |
46 | else | |
47 | exit 0 | |
48 | fi | |
49 | ||
50 | start() { | |
51 | # Check if the service is already running? | |
52 | if [ -f /var/lock/subsys/asterisk ]; then | |
53 | msg_already_running "Asterisk" | |
54 | return | |
55 | fi | |
56 | ||
57 | msg_starting "Asterisk" | |
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 | |
67 | daemon /usr/sbin/asterisk -F $AST_ARGS $ASTERISK_OPTS | |
68 | ||
69 | RETVAL=$? | |
70 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk | |
71 | } | |
72 | ||
73 | stop() { | |
74 | # Stop daemons. | |
75 | if [ ! -f /var/lock/subsys/asterisk ]; then | |
76 | msg_not_running "Asterisk" | |
77 | return | |
78 | fi | |
79 | ||
80 | msg_stopping "Asterisk" | |
81 | killproc asterisk | |
82 | rm -f /var/lock/subsys/asterisk >/dev/null 2>&1 | |
83 | } | |
84 | ||
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 | |
98 | msg_not_running "Asterisk" | |
99 | RETVAL=1 | |
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 | ||
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 | ||
132 | RETVAL=0 | |
133 | # See how we were called. | |
134 | case "$1" in | |
135 | start) | |
136 | start | |
137 | ;; | |
138 | stop) | |
139 | stop | |
140 | ;; | |
141 | restart) | |
142 | stop | |
143 | start | |
144 | ;; | |
145 | try-restart) | |
146 | condrestart 0 | |
147 | ;; | |
148 | reload|force-reload) | |
149 | reload | |
150 | ;; | |
151 | dialplan-reload) | |
152 | /usr/sbin/asterisk -rx "dialplan reload" | |
153 | ;; | |
154 | ael-reload) | |
155 | ael-reload | |
156 | ;; | |
157 | logger-reload) | |
158 | /usr/sbin/asterisk -rx "logger reload" | |
159 | ;; | |
160 | status) | |
161 | status asterisk | |
162 | exit $? | |
163 | ;; | |
164 | *) | |
165 | msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|dialplan-reload|ael-reload|logger-reload|status}" | |
166 | exit 3 | |
167 | esac | |
168 | ||
169 | exit $RETVAL |