#!/usr/bin/php-cgi
<?php
header('Access-Control-Allow-Origin: *');

/****************************************************************************88

REDPORT GPS TRACKING FUNCTION

AUTHOR: JOSE MARI REYES

HISTORY:

10-01-2017   	VERSION 1.0
03-06-2018	Compute IMEI for display  

MANUAL:

			FIELDS:
			========

			enabled						on | off (bool)			
			interval					integer seconds
			GSATisatphone				on | off
			GSATfbb						on | off
			GSATiop						on | off
			GSATvsat					on | off
			GSATiridium					on | off
			IsatEmail					on | off
			IridiumEmail				on | off
			EmailAddr					string email
			GSATvsat_imei				alpha numeric long

			
			SET A FIELD (enabled)
			
			http://10.1.5.1/cgi-bin/nmea?enabled=on
			
			(GSATfbb)
			
			http://10.1.5.1/cgi-bin/nmea?GSATfbb=on
			
			
			
			GET TRACKING VALUES
			
			http://10.1.5.1/cgi-bin/tracking?read
			
				RETURN:
				
				interval='60'
				GSATisatphone='off'
				GSATfbb='off'
				GSATiop='off'
				GSATvsat='off'
				GSATiridium='off'
				IsatEmail='off'
				IridiumEmail='off'
				EmailAddr='user@domain.com'
				GSATvsat_imei='101375999214'
				enabled='on'
			
				*the result is not ordered

			TO APPLY CHANGES
			
			http://10.1.5.1/cgi-bin/tracking?start	

			
			DISPLAY IMEI
			
			http://10.1.5.1/cgi-bin/tracking?getimei		

********************************************************************************/

echo "<pre>";



	if (isset($_REQUEST['enabled']))
	{
	 	$v = $_REQUEST['enabled'];
		if (strlen($v) < 1) { echo -1; exit; }
		tracking("enabled", $v);
	}

	if (isset($_REQUEST['interval']))
	{
	 	$v = $_REQUEST['interval'];
		if (strlen($v) < 1) { echo -1; exit; }
		tracking("interval", $v);
	}

	if (isset($_REQUEST['GSATisatphone']))
	{
	 	$v = $_REQUEST['GSATisatphone'];
		if (strlen($v) < 1) { echo -1; exit; }
		tracking("GSATisatphone", $v);
	}
	
	if (isset($_REQUEST['GSATfbb']))
	{
	 	$v = $_REQUEST['GSATfbb'];
		if (strlen($v) < 1) { echo -1; exit; }
		tracking("GSATfbb", $v);
	}
	
	if (isset($_REQUEST['GSATiop']))
	{
	 	$v = $_REQUEST['GSATiop'];
		tracking("GSATiop", $v);
	}
	
	if (isset($_REQUEST['GSATvsat']))
	{
	 	$v = $_REQUEST['GSATvsat'];
		tracking("GSATvsat", $v);
	}
	
	if (isset($_REQUEST['GSATiridium']))
	{
	 	$v = $_REQUEST['GSATiridium'];
		tracking("GSATiridium", $v);
	}
	
	if (isset($_REQUEST['IsatEmail']))
	{
	 	$v = $_REQUEST['IsatEmail'];
		tracking("IsatEmail", $v);
	}
	
	if (isset($_REQUEST['IridiumEmail']))
	{
	 	$v = $_REQUEST['IridiumEmail'];
		tracking("IridiumEmail", $v);
	}
	
	if (isset($_REQUEST['IridiumEmail']))
	{
	 	$v = $_REQUEST['IridiumEmail'];
		tracking("IridiumEmail", $v);
	}
	
	if (isset($_REQUEST['EmailAddr']))
	{
	 	$v = $_REQUEST['EmailAddr'];
		tracking("EmailAddr", $v);
	}
	
	if (isset($_REQUEST['GSATvsat_imei']))
	{
	 	$v = $_REQUEST['GSATvsat_imei'];
		tracking("GSATvsat_imei", $v);
	}
	
	if (isset($_REQUEST['read']))
	{
		echo get_tracking();
	}
	

	if (isset($_REQUEST['start']))
	{
		tracking_restart();
	}

	if (isset($_REQUEST['getimei']))
	{
		echo display_imei();
	}


function tracking_restart()
{
	$cmd = "/etc/init.d/tracking restart";
	exec($cmd);
}


function get_tracking()
{
/*$v = "tracking.@tracking[0]=tracking
tracking.@tracking[0].interval='60'
tracking.@tracking[0].GSATisatphone='off'
tracking.@tracking[0].GSATfbb='off'
tracking.@tracking[0].GSATiop='off'
tracking.@tracking[0].GSATvsat='off'
tracking.@tracking[0].GSATiridium='off'
tracking.@tracking[0].IsatEmail='off'
tracking.@tracking[0].IridiumEmail='off'
tracking.@tracking[0].EmailAddr='user@domain.com'
tracking.@tracking[0].GSATvsat_imei='101375999214'
tracking.@tracking[0].enabled='on'";*/

	$cmd = "uci show tracking";
	$v = shell_exec($cmd);
	
	$v = str_replace("tracking.@tracking[0].", "", $v);
	$v = str_replace("tracking.@tracking[0]=tracking", "", $v);

	return $v;
	
}


function tracking($field, $v)
{
	$cmd = "uci set tracking.@tracking[0].$field='$v'";
	exec($cmd);
	exec("commit tracking");
}


function display_imei()
{
        $cmd = "/sbin/ifconfig wlan0 | grep HWaddr | awk '{print $5}' | tr -d ':'";
        $v = trim(shell_exec($cmd));
        $maclo = substr($v, 0, 4);
        $machi = substr($v, -8);
        $imeilo = to_number($maclo);
        $imeihi = to_number($machi);
        return $imeilo . $imeihi;
}

function to_number($v)
{
        return hexdec($v);
}


?>
