contrib/package: change luci-app-asterisk dependency to asterisk14-xip-core
[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