modules/admin-full: fix wifi join
[project/luci.git] / contrib / package / 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                         # Handle zappseudo in the wrong place.
53                         [ -e /dev/zappseudo ] && [ ! -d /dev/zap -o ! -e /dev/zap/pseudo ] && mkdir -p /dev/zap && ln -s /dev/zappseudo /dev/zap/pseudo
54                         [ -d /var/run ] || mkdir -p /var/run
55                         [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
56                         [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
57                         [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
58                         [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
59                         $DEST/usr/sbin/asterisk $OPTIONS -f 2>&1 > $DEST/var/log/asterisk/asterisk_proc &
60                         ( sleep 5; reboot_ata ) &
61                         ;;
62                 *) return 1 ;;
63         esac
64 }
65
66 stop() {
67         [ -f $DEFAULT ] && . $DEFAULT
68         case ${ENABLE_ASTERISK} in
69                 uci) stop_uci ;;
70                 *) [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
71         esac
72 }
73
74 console() {
75         [ -f $DEFAULT ] && . $DEFAULT
76         case ${ENABLE_ASTERISK} in
77                 uci) $DEST/usr/sbin/asterisk $UCIOPTIONS -C /tmp/asterisk/asterisk.conf -r ;;
78                 yes) $DEST/usr/sbin/asterisk $OPTIONS -r ;;
79         esac
80
81 }
82 check() {
83         load_ucilib
84
85         setup_asterisk "$DEST" test "$EXTRAPARAM"
86 }
87
88 reload() {
89         [ -f $DEFAULT ] && . $DEFAULT
90         case ${ENABLE_ASTERISK-no} in
91                 uci) reload_uci ;;
92                 yes)  restart ;;
93         esac
94
95 }
96
97 restart() {
98         [ -f $DEFAULT ] && . $DEFAULT
99         case ${ENABLE_ASTERISK-no} in
100                 uci)  restart_uci ;;
101                 yes)
102                         if [ -r /var/run/asterisk.ctl ] ; then
103                                 if $DEST/usr/sbin/asterisk -r -x "restart gracefully" 2>&- >&- ; then
104                                         echo "Restarting when convenient"
105                                         return 0
106                                 fi
107                         fi
108                         stop
109                         start
110         esac
111 }
112
113 down() {
114         if [ -r /var/run/asterisk.ctl ] ; then
115                 [ -f $DEFAULT ] && . $DEFAULT
116                 case ${ENABLE_ASTERISK} in
117                         uci) $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf -r -x "stop now" 2>&- >&- ;;
118                         *) $DEST/usr/sbin/asterisk $OPTIONS -r -x "stop now" 2>&- >&-
119                 esac
120                 [ -f /var/run/asterisk.pid ] && sleep 1
121         fi
122         [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
123         [ -f /var/run/asterisk.pid ] && sleep 2
124         [ -f /var/run/asterisk.pid ] && kill -9  $(cat /var/run/asterisk.pid) 2>&- >&-
125 }
126
127 # vim:ts=2 sw=2