gammu.init (2829B)
1 #!/bin/sh /etc/rc.common 2 # Copyright (C) 2015 villy@sft.ru 3 4 START=98 5 6 USE_PROCD=1 7 PROG=/usr/bin/gammu-smsd 8 CONFPFX=/var/gammu 9 10 start_instance() { 11 local conf="$1" 12 local item 13 local conffile="$CONFPFX-$conf.conf" 14 15 config_get_bool item "$conf" enabled 0 16 [ $item = 0 ] && return 17 18 echo -e "; don't edit. instead look into /etc/config/gammu\n[gammu]\n" > $conffile 19 20 config_get item "$conf" device 21 [ -z "$item" ] && return 22 echo "device = $item" >> $conffile 23 24 config_get item "$conf" connection 25 [ -z "$item" ] && return 26 echo "connection = $item" >> $conffile 27 28 config_get item "$conf" logfile 29 [ -z "$item" ] && item=syslog 30 echo "logfile = $item" >> $conffile 31 32 echo -e "\n[smsd]\nphoneid = $conf\nservice = files\nlogfile = $item" >> $conffile 33 echo -e "checkbattery = 0\nhangupcalls = 1" >> $conffile 34 35 config_get item "$conf" pin 36 [ -n "$item" ] && echo "pin = $item" >> $conffile 37 38 config_get item "$conf" phonecode 39 [ -n "$item" ] && echo "phonecode = $item" >> $conffile 40 41 config_get item "$conf" send 42 [ -n "$item" ] && echo "send = $item" >> $conffile 43 44 config_get item "$conf" receive 45 [ -n "$item" ] && echo "receive = $item" >> $conffile 46 47 config_get item "$conf" timeout 48 [ -n "$item" ] && echo "commtimeout = $item" >> $conffile 49 50 config_get item "$conf" sleep 51 [ -n "$item" ] && echo "loopsleep = $item" >> $conffile 52 53 config_get item "$conf" report 54 [ -n "$item" ] && echo "deliveryreport = $item" >> $conffile 55 56 config_get item "$conf" onreceive 57 [ -n "$item" ] && echo "runonreceive = $item" >> $conffile 58 59 config_get item "$conf" onerror 60 [ -n "$item" ] && echo "runonfailure = $item" >> $conffile 61 62 config_get item "$conf" spool 63 [ -z "$item" ] && item=/var/sms 64 [ ! -d $item ] && { 65 mkdir $item 66 mkdir $item/inbox 67 mkdir $item/outbox 68 mkdir $item/sent 69 mkdir $item/error 70 } 71 echo -e "inboxpath = $item/inbox/\noutboxpath = $item/outbox/" >> $conffile 72 echo -e "sentsmspath = $item/sent/\nerrorsmspath = $item/error/" >> $conffile 73 74 config_get item "$conf" allow 75 [ -n "$item" ] && { 76 local data 77 local allowfile=$CONFPFX-$conf.allow 78 for data in $item ; do 79 echo $data >> $allowfile 80 done 81 82 echo "includenumbersfile = $allowfile" >> $conffile 83 } 84 85 config_get item "$conf" deny 86 [ -n "$item" ] && { 87 local data 88 local denyfile=$CONFPFX-$conf.deny 89 for data in $item ; do 90 echo $data >> $denyfile 91 done 92 93 echo "excludenumbersfile = $denyfile" >> $conffile 94 } 95 96 procd_open_instance 97 98 config_get_bool item "$conf" respawn 0 99 [ $item != 0 ] && procd_set_param respawn 100 101 procd_set_param command $PROG --config=$conffile 102 103 config_get item "$conf" pidfile 104 [ -n "$item" ] && procd_append_param command --pid=$item 105 106 procd_close_instance 107 } 108 109 start_service() { 110 config_load gammu 111 config_foreach start_instance daemon 112 } 113 114 service_triggers() { 115 procd_add_reload_trigger "gammu" 116 }