#!/bin/sh /etc/rc.common

START=50
USE_PROCD=1

CONFIGFILE="/tmp/smsd.conf"
SPOOL=/var/spool/sms

update_configfile()        
{                          
        echo -e "#File generated from /etc/config/smsd.\n" > $CONFIGFILE

        devices=$(uci get smsd.@smsd[0].devices  | sed 's/ /, /g' 2>/dev/null)       
        echo "devices = $devices" >> $CONFIGFILE                   
        logfile=$(uci get smsd.@smsd[0].logfile 2>/dev/null)       
        echo "logfile = $logfile" >> $CONFIGFILE                   
        loglevel=$(uci get smsd.@smsd[0].loglevel 2>/dev/null)     
        echo "loglevel = $loglevel" >> $CONFIGFILE                 
        alarmhandler=$(uci get smsd.@smsd[0].alarmhandler 2>/dev/null)
        echo "alarmhandler = $alarmhandler" >> $CONFIGFILE
	echo "" >> $CONFIGFILE
        i=0                                                           
        while [ true ]                                                
        do                                                            
                device=$(uci show smsd.@device["$i"] | grep "=device" | cut -d '=' -f 1 | cut -d '.' -f 2 2>/dev/null)
                if [ -z $device ]; then                               
                        break                                         
                fi                                            
                echo "[$device]" >> $CONFIGFILE                
                device=$(uci get smsd.@device["$i"].device 2>/dev/null)
                echo "device = $device" >> $CONFIGFILE                 
                incoming=$(uci get smsd.@device["$i"].incoming 2>/dev/null)
                echo "incoming = $incoming" >> $CONFIGFILE                 
                init=$(uci get smsd.@device["$i"].init 2>/dev/null)        
                echo "init = $init" >> $CONFIGFILE                         
                pin=$(uci get smsd.@device["$i"].pin 2>/dev/null)          
                echo "#pin = $pin" >> $CONFIGFILE                          
                eventhandler=$(uci get smsd.@device["$i"].eventhandler 2>/dev/null)
                echo "eventhandler = $eventhandler" >> $CONFIGFILE                 
                phonecalls=$(uci get smsd.@device["$i"].phonecalls 2>/dev/null)    
                echo "phonecalls = $phonecalls" >> $CONFIGFILE                     
	        keep_open=$(uci get smsd.@device["$i"].keep_open 2>/dev/null)
        	echo "keep_open = $keep_open" >> $CONFIGFILE            
		echo "" >> $CONFIGFILE
                let i++                                                            
        done                                                                       
}     

start_service() {
        mkdir -p $SPOOL/outgoing
        mkdir -p $SPOOL/incoming
        mkdir -p $SPOOL/checked
	update_configfile
        procd_open_instance
        #respawn automatically if something died, be careful
        procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-0}
        #reload
        procd_set_param file /etc/config/smsd
        procd_set_param user root
        procd_set_param command /usr/bin/smsd -t -c$CONFIGFILE
        procd_close_instance
}

stop() {
	procd_kill smsd ''
}

reload_service() {
	stop
	start
}

service_triggers() {
        procd_add_reload_trigger "smsd"
}


