64a7d906ca7dd192fa11ae5e22393c8766732d8e
[project/luci.git] / contrib / asterisk-xip / files / asterisk.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2006 OpenWrt.org
3 START=50
4 STOP=50
5
6 DEST=
7 OPTIONS=""
8 DEFAULT=$DEST/etc/default/asterisk
9 UCILIB=$DEST/usr/lib/asterisk/uci
10 EXTRAPARAM=$1
11
12 export EXTRA_COMMANDS="console check down"
13 export EXTRA_HELP="\
14 console Start asterisk console
15 check Test asterisk uci config
16 down Force asterisk to stop"
17
18 reboot_ata() {
19 cd /tmp
20 wget -q http://ata.lan/admin/reboot -O - >&- 2>&-
21 }
22
23 load_ucilib() . ${UCILIB}/asteriskuci
24
25 start_uci() {
26 load_ucilib
27
28 start_uci_asterisk $DEST
29 }
30 restart_uci() {
31 load_ucilib
32
33 restart_uci_asterisk $DEST
34 }
35
36 stop_uci() {
37 load_ucilib
38
39 stop_uci_asterisk $DEST
40 }
41 reload_uci() {
42 load_ucilib
43
44 reload_uci_asterisk "$DEST"
45 }
46
47 start() {
48 [ -f $DEFAULT ] && . $DEFAULT
49 case ${ENABLE_ASTERISK-no} in
50 uci) start_uci ;;
51 yes)
52 [ -d /var/run ] || mkdir -p /var/run
53 [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
54 [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
55 [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
56 [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
57 $DEST/usr/sbin/asterisk $OPTIONS -f 2>&1 > $DEST/var/log/asterisk/asterisk_proc &
58 ( sleep 5; reboot_ata ) &
59 ;;
60 *) return 1 ;;
61 esac
62 }
63
64 stop() {
65 [ -f $DEFAULT ] && . $DEFAULT
66 case ${ENABLE_ASTERISK} in
67 uci) stop_uci ;;
68 *) [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
69 esac
70 }
71
72 console() {
73 [ -f $DEFAULT ] && . $DEFAULT
74 case ${ENABLE_ASTERISK} in
75 uci) $DEST/usr/sbin/asterisk $UCIOPTIONS -C /tmp/asterisk/asterisk.conf -r ;;
76 yes) $DEST/usr/sbin/asterisk $OPTIONS -r ;;
77 esac
78
79 }
80 check() {
81 load_ucilib
82
83 setup_asterisk "$DEST" test "$EXTRAPARAM"
84 }
85
86 reload() {
87 [ -f $DEFAULT ] && . $DEFAULT
88 case ${ENABLE_ASTERISK-no} in
89 uci) reload_uci ;;
90 yes) restart ;;
91 esac
92
93 }
94
95 restart() {
96 [ -f $DEFAULT ] && . $DEFAULT
97 case ${ENABLE_ASTERISK-no} in
98 uci) restart_uci ;;
99 yes)
100 if [ -r /var/run/asterisk.ctl ] ; then
101 if $DEST/usr/sbin/asterisk -r -x "restart gracefully" 2>&- >&- ; then
102 echo "Restarting when convenient"
103 return 0
104 fi
105 fi
106 stop
107 start
108 esac
109 }
110
111 down() {
112 if [ -r /var/run/asterisk.ctl ] ; then
113 [ -f $DEFAULT ] && . $DEFAULT
114 case ${ENABLE_ASTERISK} in
115 uci) $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf -r -x "stop now" 2>&- >&- ;;
116 *) $DEST/usr/sbin/asterisk $OPTIONS -r -x "stop now" 2>&- >&-
117 esac
118 [ -f /var/run/asterisk.pid ] && sleep 1
119 fi
120 [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
121 [ -f /var/run/asterisk.pid ] && sleep 2
122 [ -f /var/run/asterisk.pid ] && kill -9 $(cat /var/run/asterisk.pid) 2>&- >&-
123 }
124
125 # vim:ts=2 sw=2