<?php
    require_once __DIR__.'/vendor/autoload.php';

	use Ramsey\Uuid\Uuid;
    use PhpAmqpLib\Connection\AMQPStreamConnection;
    use PhpAmqpLib\Message\AMQPMessage;
	use Twilio\TwiML\MessagingResponse;


echo PHP_EOL .PHP_EOL ."=== IN 549253 =======" .PHP_EOL .PHP_EOL ;
//+447481337019
$arrRcvTest=array();
$arrRcvTest["sender"] = $_POST['From'] ;
$arrRcvTest["receiver"] = $_POST['To'] ;
$arrRcvTest["text"] = $_POST['Body'] ;
$arrRcvTest["msgdata"] = $_POST['Body'] ;
$arrRcvTest["network"] = "twilio" ;
//$arrRcvTest["network"] = "mtml" ;
$arrRcvTest["recvtime"] = date('Y-m-d H:i:S') ;
$arrRcvTest["msgid"] = $_POST['MessageSid'] ;
$arrRcvTest["twilioData"] = $_POST ;

$_REQUEST = $arrRcvTest;
$_POST = $arrRcvTest;
$_GET = $arrRcvTest;



$connection = new AMQPStreamConnection('197.227.14.52', 5672, 'sam', 'sam');
$channel = $connection->channel();

$msgData =$_REQUEST["msgdata"];
$_REQUEST["msgdata"] = substr(trim($msgData),5);
$sendData=serialize($_REQUEST) ;
$msg = new AMQPMessage($sendData) ;
$channel->basic_publish($msg, '', 'samSpecialIncoming.nsapp01');
$continueProcess=false;

$channel->close();
$connection->close();


//logRequest();

	$response = new MessagingResponse();
	print $response;

/*
/home/www/twiliogw01/logs

echo "Welcome : " .date("Y-m-d H:i:s") ; 



    $skyaceXAuth = "9051964c-bdf6-4c2d-9a77-c7ff30dc0826";
    $skyaceXForwarded = "skyace01.madasava.com";
    $skyaceXPort = "443";
    $skyaceXRealIP = "102.17.42.43";
    $skyaceXContentType = "application/json";
    $skyaceXRequest = "POST";

    $xAuth = null ;
    $xForwardedFor = null ;
    $xForwardedPort = null ;
    $xRealIP = null ;
    $xContentType = null ;
    $xRequestMethod = null ;
    $xRequestMethod = $_SERVER["REQUEST_METHOD"]  ;
    $continue=false;
    $targetExchange = "ex.skyace.outgoing.smpp52" ;

    $AMQP_host="141.94.199.38";
    $AMQP_port= 5672;
    $AMQP_user="sam";
    $AMQP_pass="sam";
    $AMQP_vhost="skyace";

    $uuid = Uuid::uuid4();
    $mdsvID = $uuid->toString();

    $reqReceived = date('r');
    $headers = getRequestHeaders();


    foreach ($headers as $header => $value) {

            switch($header)
            {
                case "X-Authorisation":
                {
                    $xAuth = $value;
                    break;
                }
                case "Content-Type":
                {
                    $xContentType = $value;
                    break;
                }
                case "X-Forwarded-For":
                {
                    $xForwardedFor = $value;
                    break;
                }
                case "X-Forwarded-Port":
                {
                    $xForwardedPort = $value;
                    break;
                }
                case "X-Real-Ip":
                {
                    $xRealIP = $value;
                    break;
                }
            } // switch($header)
        } //foreach ($headers as $header => $value) {

    $continue=false;
$jsonData = file_get_contents('php://input');
$arrJsonDecoded  = json_decode($jsonData);

    if($xRequestMethod==null || $xRequestMethod!=$skyaceXRequest)
    {
        $arrResp = array();
        $arrResp["status"] = 1 ;
        $arrResp["statusMesage"] = "ERROR 100A01 : Forbidden : Invalid Method " ;
        echo json_encode($arrResp);
        $continue=false;
    }
    else if($xForwardedFor==null || $xForwardedFor!=$skyaceXForwarded)
    {
        $arrResp = array();
          $arrResp["status"] = 2 ;
        $arrResp["statusMesage"] = "ERROR 100A02 : Forbidden : Invalid endpoint host" ;
        echo json_encode($arrResp);
        $continue=false;
    }
    else if($xForwardedPort==null || $xForwardedPort!=$skyaceXPort)
    {
        $arrResp = array();
          $arrResp["status"] = 3 ;
        $arrResp["statusMesage"] = "ERROR 100A03 : Forbidden : Invalid endpoint port " ;
        echo json_encode($arrResp);
        $continue=false;
    }
    else if($xContentType==null || $xContentType!=$skyaceXContentType)
    {
        $arrResp = array();
          $arrResp["status"] = 4 ;
        $arrResp["statusMesage"] = "ERROR 100A04 : Forbidden : Invalid content type " ;
        echo json_encode($arrResp);
        $continue=false;
    }
    else if($xAuth==null || $xAuth!=$skyaceXAuth)
    {
        $arrResp = array();
          $arrResp["status"] = 5 ;
        $arrResp["statusMesage"] = "ERROR 100A05 : Forbidden : Invalid Auth key " ;
        echo json_encode($arrResp);
        $continue=false;
    }
    else if(!isset($arrJsonDecoded->receiver) || !isset($arrJsonDecoded->smstext))
    {
        $arrResp = array();
          $arrResp["status"] = 6 ;
        $arrResp["statusMesage"] = "ERROR 100B01 : Invalid request : missing parameter " ;
        
        echo json_encode($arrResp);
        $continue=false;

    }
    else if(trim($arrJsonDecoded->receiver)=="" || $arrJsonDecoded->receiver==null)
    {
        $arrResp = array();
          $arrResp["status"] = 7 ;
        $arrResp["statusMesage"] = "ERROR 100B02 : Invalid request : mobile number " ;        
        echo json_encode($arrResp);
        $continue=false;

    }
    else if(trim($arrJsonDecoded->smstext)=="" || $arrJsonDecoded->smstext==null)
    {
        $arrResp = array();
          $arrResp["status"] = 8 ;
        $arrResp["statusMesage"] = "ERROR 100B03 : Invalid request : smstext " ;
        
        echo json_encode($arrResp);
        $continue=false;

    }
    else
    {
        $continue=true;
    }



    if($continue)
        {


            $MobileNumber=$arrJsonDecoded->receiver ;
            if(substr($MobileNumber,0,1)!="+")
            {
                $MobileNumber="+" .$MobileNumber;
            }

            $arrResp = new stdClass();
            $arrResp->request = new stdClass();
            $arrResp->request->rcvd = $reqReceived ;
            $arrResp->request->receiver = $MobileNumber;
            $arrResp->request->smstext = $arrJsonDecoded->smstext ;
            $arrResp->response = new stdClass();
            $arrResp->response->mdsvID = $mdsvID;
            $arrResp->response->status = 0;
            $arrResp->response->statusMessage = "marked for send";

            $jsonEncoded = json_encode($arrResp);
            echo $jsonEncoded;


            $arrToSend=array();
            $arrToSend['arrSerRequest'] = array();
            $arrToSend['arrSerRequest']['arrSerRequest'] = array();
            $arrToSend['arrSerRequest']['arrSerRequest']['sender'] = $arrResp->request->receiver ;
            $arrToSend['arrSerRequest']['arrSerRequest']['receiver'] = "8683";
            $arrToSend['arrSerRequest']['arrSerRequest']['text'] = $arrResp->request->smstext ;
            $arrToSend['arrSerRequest']['arrSerRequest']['network'] = "mtml";
            $arrToSend['arrSerRequest']['arrSerRequest']['msgid'] = $mdsvID;
            $arrToSend['arrSerRequest']['arrSerRequest']['procid'] = $mdsvID;
            $arrToSend["strReply"] =$arrResp->request->smstext ;
            $arrToSend["mdsvID"] = $mdsvID;
            $arrToSend["type"] = "skyaceNotif";
            $jsonMQSend = json_encode($arrToSend);



            $connection =new AMQPStreamConnection($AMQP_host, $AMQP_port, $AMQP_user, $AMQP_pass,$AMQP_vhost);
            $channel = $connection->channel();
            $msg = new AMQPMessage($jsonMQSend);
            $channel->basic_publish($msg,  $targetExchange );

        } // if($continue)

?><?php

function getRequestHeaders() {
    $headers = array();
    foreach($_SERVER as $key => $value) {
        if (substr($key, 0, 5) <> 'HTTP_') {
            continue;
        }
        $header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
        $headers[$header] = $value;
    }
    return $headers;
}


*/
?><?php


function logRequest()
{
	
	$str= "Notification Received Date : " .date("r") ."
	-------------------------------------------------------------------------------------------------------------------------------------
	GET Array :
	" .json_encode($_GET) ."
	------------------------------------------------------------------------------------------------------------------------------------- 
	POST Array :
	" .json_encode($_POST) ."
	------------------------------------------------------------------------------------------------------------------------------------- 
	REQUEST Array :
	" .json_encode($_REQUEST) ."
	------------------------------------------------------------------------------------------------------------------------------------- 
	SESSION Array :
	" .json_encode($_SESSION) ."
	------------------------------------------------------------------------------------------------------------------------------------- 
	SERVER Array :
	" .json_encode($_SERVER) ."
	------------------------------------------------------------------------------------------------------------------------------------- 
	";

	$logFileName = date('Ymd_His') .".log";
	file_put_contents ("logs/" .$logFileName ,$str );

}//function logRequest(){
?>
