#!/bin/sh
#
# apps
#
# start the applications here

echo entering $0 ...

. /etc/init.d/rc.config
. /etc/profile

#
# Configuration file for canned configuration.  Path and file must match
# the expected location in 'apps/isa/src/cfg/isaCfgCanned.c'
#
ISA_CFG_ROOT=/nvdata/isa
ISA_CFG_VIDEO_FILE=video.cfg
ISA_CFG_VOICE_FILE=voice.cfg
ISA_CFG_CMGR_FILE=cmgr.cfg
WINS_CFG_FILE=config.txt
WINS_CFG_BAK_FILE=config.txt_bak
WINS_MMISET_FILE=1.mmiset

case "$1" in
   start|"")
		# Start up the VoIP framework first such that the Android application making
		# use of it (such as the dialer application) are going to work.
		#
		printf "\nStarting VoIP framework.\n"
		#
		# Configuration files management for the VoIP application.
		#
		if [ ! -d $ISA_CFG_ROOT ]; then mkdir -p $ISA_CFG_ROOT; fi
		if [ ! -f $ISA_CFG_ROOT/$ISA_CFG_VIDEO_FILE ]; then
			if [ -f /etc/$ISA_CFG_VIDEO_FILE ]; then
				cp -f /etc/$ISA_CFG_VIDEO_FILE $ISA_CFG_ROOT/$ISA_CFG_VIDEO_FILE;
				sync
			fi
		else
			validtmp=`ls -l $ISA_CFG_ROOT/$ISA_CFG_VIDEO_FILE |  awk '{print $5}'`
			if [ $validtmp -eq 0 ]; then
			   cp -f /etc/$ISA_CFG_VIDEO_FILE $ISA_CFG_ROOT/$ISA_CFG_VIDEO_FILE;
			   sync
			fi
		fi
		
		if [ ! -f $ISA_CFG_ROOT/$ISA_CFG_VOICE_FILE ]; then
			if [ -f /etc/$ISA_CFG_VOICE_FILE ]; then
				cp -f /etc/$ISA_CFG_VOICE_FILE $ISA_CFG_ROOT/$ISA_CFG_VOICE_FILE;
				sync
			fi
		#else current voice.cfg is blank
		fi
		if [ ! -f $ISA_CFG_ROOT/$ISA_CFG_CMGR_FILE ]; then
			if [ -f /etc/$ISA_CFG_CMGR_FILE ]; then
				cp -f /etc/$ISA_CFG_CMGR_FILE $ISA_CFG_ROOT/$ISA_CFG_CMGR_FILE;
				sync
			fi
		else
			  validtmp=`ls -l $ISA_CFG_ROOT/$ISA_CFG_CMGR_FILE |  awk '{print $5}'`
			  if [ $validtmp -eq 0 ]; then
				  cp -f /etc/$ISA_CFG_CMGR_FILE $ISA_CFG_ROOT/$ISA_CFG_CMGR_FILE;
				  sync
			  fi
		fi

    if [ -f /home/factoryreset ]; then
         /usr/sbin/mtd-utils/flash_eraseall /dev/mtd8
         # rm /nvdata/isa/config.*
         rm $ISA_CFG_ROOT/$WINS_MMISET_FILE
         rm /home/factoryreset
         touch /home/config_blank
         chmod 777 -R /home
    fi
    # phenix 2012-1-14 11:56 add copy mmiset file feature
    if [ -f $ISA_CFG_ROOT/$WINS_MMISET_FILE ]; then
        if [ -f $ISA_CFG_ROOT/mmiset_mark ]; then
            echo mmiset_mark > $ISA_CFG_ROOT/mmiset_mark 
            cp -f /etc/$WINS_MMISET_FILE $ISA_CFG_ROOT/$WINS_MMISET_FILE
            sync
            rm $ISA_CFG_ROOT/mmiset_mark
            sync
        fi
    else
        if [ -f /etc/$WINS_MMISET_FILE ]; then
            echo mmiset_mark > $ISA_CFG_ROOT/mmiset_mark 
            cp -f /etc/$WINS_MMISET_FILE $ISA_CFG_ROOT/$WINS_MMISET_FILE
            sync
            rm $ISA_CFG_ROOT/mmiset_mark
            sync
        fi
    fi    
    
    if [ -f $ISA_CFG_ROOT/$WINS_CFG_FILE ]; then
    	cat $ISA_CFG_ROOT/$WINS_CFG_FILE | grep "<TR069 CONFIG MODULE>"
    	y=$?
    	if [ $y = 1 ]; then 
    	# invalid config.txt need do copy backup config.txt
    	  if [ -f $ISA_CFG_ROOT/$WINS_CFG_BAK_FILE ]; then
        	cat $ISA_CFG_ROOT/$WINS_CFG_BAK_FILE | grep "<TR069 CONFIG MODULE>"
    	    y=$?
    	    if [ $y = 0 ]; then
    	       cp $ISA_CFG_ROOT/$WINS_CFG_BAK_FIL $ISA_CFG_ROOT/$WINS_CFG_FILE
    	    else
    	      rm $ISA_CFG_ROOT/$WINS_CFG_FILE
    	    fi
    	  else
    	    rm $ISA_CFG_ROOT/$WINS_CFG_FILE
    	  fi
    	fi
    fi

		if [ ! -f $ISA_CFG_ROOT/$WINS_CFG_FILE ]; then
			if [ -f /etc/$WINS_CFG_FILE ]; then
				cp -f /etc/$WINS_CFG_FILE $ISA_CFG_ROOT/$WINS_CFG_FILE;
			fi
		fi
		sync
		#phenix 2012-2-8 16:07
		if [ -f $ISA_CFG_ROOT/$WINS_CFG_FILE ]; then
		    diff $ISA_CFG_ROOT/$WINS_CFG_FILE /etc/$WINS_CFG_FILE >/dev/null 2>&1
		    if [ $? -eq 0 ]; then
                echo vpIsDefault > /tmp/vpIsDefault
            fi
		fi
		
		
		#
		# Instantiate the endpoint (video) module first.  Allow time to settle.
		#
		modprobe vidcon
		sleep 1
		insmod /lib/modules/2.6.32.9/kernel/drivers/mmc/host/sdhci.ko
		insmod /lib/modules/2.6.32.9/kernel/drivers/mmc/host/sdhci-platform-bcmring.ko		
    # Start the telnet daemon
    if [ -f /usr/sbin/telnetd ]; then
         telnetd &
    fi
    if [ -f /bin/callmanager.bak ]; then
         mv /bin/callmanager.bak /bin/callmanager
         chmod a+x /bin/callmanager
    fi

		# Start up the ISA application which will kick in the VoIP framework.
		#
		if [ -f /system/bin/servicemanager ]; then
			/vp/systest 0
			
			if [ $? -eq 1 ]; then
			  rm /tmp/stopslider
			  /vp/initSlider &
			fi
		else
            # Start the http daemon
            if [ -f /usr/sbin/httpd ]; then
                 httpd -h /webroot &
            fi
		
			/vp/systest 1
          read -t 3 -n 1 -p "${PROMPT}"
          if [ "$?" == "0" ]; then
             exit 255
          fi
			
			/sbin/reboot			
		fi
		#printf "\nStarting ISA.\n"
		#isa &
		#phenix 2012-2-8 16:10
		if [ -f /nvdata/isa/config_vlan.sh ]; then
		    /nvdata/isa/config_vlan.sh
		fi
		mknod /dev/ppp c 108 0		
		#Chrissie 2012-7-20 10:30:57 add video core check deamon
		/usr/sbin/vc_reboot_deamon.sh &
		/usr/sbin/vc_check.sh &
		portmap &
		callmanager &
		sleep 3
		/usr/sbin/system_demo.sh &
      
      ;;
   stop)
      ;;
   *)
      echo "Usage $0 {start|stop}" >&2
      exit 1
      ;;
esac

echo leaving $0 ...
