Portions created by the Initial Developer are Copyright (C) 2018 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; //check permissions require_once "resources/check_auth.php"; if (permission_exists('message_add') || permission_exists('message_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (isset($_REQUEST["id"])) { $action = "update"; $message_uuid = check_str($_REQUEST["id"]); $id = check_str($_REQUEST["id"]); } else { $action = "add"; } //define the http request function http_request($url, $method, $headers = null, $content) { $options = array( 'http'=>array( 'method'=>$method, 'header'=> $headers, 'content'=>$content )); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); if ($response === false) { throw new Exception("Problem reading data from $url, $php_errormsg"); } return $response; } //get http post variables and set them to php variables if (is_array($_POST)) { //$message_uuid = check_str($_POST["message_uuid"]); //$user_uuid = check_str($_POST["user_uuid"]); $message_type = check_str($_POST["message_type"]); //$message_date = check_str($_POST["message_date"]); $message_from = check_str($_POST["message_from"]); $message_to = check_str($_POST["message_to"]); $message_text = check_str($_POST["message_text"]); //$message_media_type = check_str($_POST["message_media_type"]); //$message_media_url = check_str($_POST["message_media_url"]); //$message_media_content = check_str($_POST["message_media_content"]); //$message_json = check_str($_POST["message_json"]); } //process the user data and save it to the database if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //check for all required data $msg = ''; //if (strlen($user_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-user_uuid']."
\n"; } if (strlen($message_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_type']."
\n"; } //if (strlen($message_direction) == 0) { $msg .= $text['message-required']." ".$text['label-message_direction']."
\n"; } //if (strlen($message_date) == 0) { $msg .= $text['message-required']." ".$text['label-message_date']."
\n"; } if (strlen($message_from) == 0) { $msg .= $text['message-required']." ".$text['label-message_from']."
\n"; } if (strlen($message_to) == 0) { $msg .= $text['message-required']." ".$text['label-message_to']."
\n"; } //if (strlen($message_text) == 0) { $msg .= $text['message-required']." ".$text['label-message_text']."
\n"; } //if (strlen($message_media_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_type']."
\n"; } //if (strlen($message_media_url) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_url']."
\n"; } //if (strlen($message_media_content) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_content']."
\n"; } //if (strlen($message_json) == 0) { $msg .= $text['message-required']." ".$text['label-message_json']."
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //get the source phone number $phone_number = preg_replace('{[\D]}', '', $message_to); //get the contact uuid //$sql = "SELECT trim(c.contact_name_given || ' ' || c.contact_name_family || ' (' || c.contact_organization || ')') AS name, p.phone_number AS number "; $sql = "SELECT c.contact_uuid "; $sql .= "FROM v_contacts as c, v_contact_phones as p "; $sql .= "WHERE p.contact_uuid = c.contact_uuid "; //$sql .= "and p.phone_number = :phone_number "; $sql .= "and p.phone_number like '%".$phone_number."%' "; $sql .= "and c.domain_uuid = '".$domain_uuid."' "; $prep_statement = $db->prepare($sql); //$prep_statement->bindParam(':phone_number', $phone_number); $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_NAMED); $contact_uuid = $row['contact_uuid']; //set the message id $message_uuid = uuid(); //build the message array $message['domain_uuid'] = $_SESSION["domain_uuid"]; $message['message_uuid'] = uuid(); $message['user_uuid'] = $_SESSION["user_uuid"]; $message['contact_uuid'] = $contact_uuid; $message['message_type'] = $message_type; $message['message_direction'] = 'outbound'; $message['message_date'] = 'now()'; $message['message_from'] = $message_from; $message['message_to'] = $message_to; $message['message_text'] = $message_text; //prepare the array $array['messages'][0] = $message; //save to the data $database = new database; $database->app_name = 'messages'; $database->app_uuid = null; $database->uuid($message_uuid); $database->save($array); $message = $database->message; //debug info //echo "
";
			//print_r($message);
			//echo "
"; //exit; //send the message to the provider $array["to"] = $message_to; $array["text"] = $message_text; //$array["media"] = ''; $http_content = json_encode($array); //settings needed for REST API $http_method = $_SESSION['message']['http_method']['text']; $http_content_type = $_SESSION['message']['http_content_type']['text']; $http_destination = $_SESSION['message']['http_destination']['text']; $http_auth_enabled = $_SESSION['message']['http_auth_enabled']['boolean']; $http_auth_type = $_SESSION['message']['http_auth_type']['text']; $http_auth_user = $_SESSION['message']['http_auth_user']['text']; $http_auth_password = $_SESSION['message']['http_auth_password']['text']; //santize the from $message_from = preg_replace('{[\D]}', '', $message_from); //exchange variable name with their values $http_destination = str_replace("\${from}", $message_from, $http_destination); //send the message to the provider $headers[] = "Content-type: ".trim($http_content_type); if ($http_auth_type == 'basic') { $headers[] = "Authorization: Basic ".base64_encode($http_auth_user.':'.$http_auth_password); } $response = http_request($http_destination, $http_method, $headers, $http_content); //echo $response; //redirect the user //$_SESSION["message"] = $text['message-sent']; header('Location: messages.php'); return; } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0) //show the header require_once "resources/header.php"; //show the content echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " "; echo "
".$text['title-message']."

\n"; echo " "; //echo " "; echo "
\n"; echo " ".$text['label-message_type']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-message_type']."\n"; echo "
\n"; echo " ".$text['label-message_from']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-message_from']."\n"; echo "
\n"; echo " ".$text['label-message_to']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-message_to']."\n"; echo "
\n"; echo " ".$text['label-message_text']."\n"; echo "\n"; //echo " \n"; echo " \n"; echo "
\n"; echo $text['description-message_text']."\n"; echo "
\n"; echo " \n"; echo " \n"; echo "
"; echo "
"; echo "

"; //include the footer require_once "resources/footer.php"; ?>