[ifxmips]
[openwrt.git] / package / tapi_sip / files / telephony.init
diff --git a/package/tapi_sip/files/telephony.init b/package/tapi_sip/files/telephony.init
new file mode 100755 (executable)
index 0000000..082024c
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh /etc/rc.common
+START=80
+
+download_fw()
+{
+       config_load telephony
+       config_get fw_url config fw_url
+       config_get fw_file config fw_file
+       wget $fw_url -O /tmp/$fw_file || {
+               echo "failed to load $fw_url"
+               exit 1
+       }
+}
+
+load_module()
+{
+       M=`lsmod | grep vmmc`
+       [ -z "$M" ] || return
+       config_load telephony
+       config_get fw_file config fw_file
+       [ -z "fw_file" ] && exit 1
+       F=/lib/firmware/$fw_file
+       [ ! -f "$F" -a ! -L "$F" ] && {
+               echo "missing firmware file"
+               exit 1
+       }
+       [ -L "$F" -a -f /tmp/$fw_file ] && F=/tmp/$fw_file
+       insmod vmmc
+       sleep 3
+}
+
+stop()
+{
+       killall tapi-sip 2>/dev/null
+}
+
+start()
+{
+       stop
+       config_load telephony
+       config_get fw_url config fw_url
+       config_get fw_file config fw_file
+       config_get netdev config netdev
+       config_get disable config disable
+       [ "$disable" != "1" ]  && {
+               [ ! -z "$fw_url" -a ! -f "/tmp/$fw_file" ] && download_fw
+               load_module
+               /usr/bin/tapi-sip $netdev &
+       }
+}