4 $HOMECU_LONGCODE_API_KEY =
"2A5625EB08229DA1179F36ED064EF52F9ED14E30";
5 $HOMECU_LONGCODE_URL =
'https://sms.tsgglobal.com/jsonrpc?apiVersion=1.0&key=#key#';
6 $HOMECU_LOGFILE =
"/home/homecu/smslog/transport_longcode.log";
25 function SendLongCodeSMS($p_hb_api_key, $p_hb_url, $p_hb_from_nbr, $p_hb_to_nbr, $p_hb_msg) {
31 if ($debug) {WriteTransportLog($GLOBALS[
'HOMECU_LOGFILE'],
"\nStart: " . date(
'Ymd-H:i:s'));}
33 $pattern =
'/^[+]{0,1}[0-9]{1,12}$/';
34 if (!preg_match($pattern, $p_hb_from_nbr)) {
35 if ($debug) {WriteTransportLog($GLOBALS[
'HOMECU_LOGFILE'],
"Fail: Invalid FROM: {$p_hb_from_nbr}");}
39 if (!preg_match($pattern, $p_hb_to_nbr)) {
40 if ($debug) {WriteTransportLog($GLOBALS[
'HOMECU_LOGFILE'],
"Fail: Invalid To: {$p_hb_to_nbr}");}
48 if (strlen($p_hb_to_nbr) == 10) {
49 $p_hb_to_nbr =
"1" . $p_hb_to_nbr;
52 $api_url = str_replace(
'#key#', $p_hb_api_key, $p_hb_url);
59 "params"=>Array($p_hb_from_nbr, $p_hb_to_nbr, $p_hb_msg, 1),
62 $api_msg_json = json_encode($api_msg_ary);
68 $api_msg_json = EscapeCmd($api_msg_json);
73 $opts =
"--connect-timeout 5 --retry 3 --retry-delay 2";
78 if ($debug) {WriteTransportLog($GLOBALS[
'HOMECU_LOGFILE'],
"PHCMD: " .
"/usr/bin/curl -k -N --silent $opts -X POST -H 'Content-Type: application/json' -d '$api_msg_json' '$api_url'");}
80 $fd = popen(
"/usr/bin/curl -k -N --silent $opts -X POST -H 'Content-Type: application/json' -d '$api_msg_json' '$api_url'",
"r");
84 $api_response =
'{"result":null,"error":{"code":"FAILOPEN","message":"Unable to open open portal.","data":null},"id":null}';
86 while ($buff = fread ($fd, 1500)) {
87 $api_response .= $buff;
89 $pipe_err = pclose($fd);
93 if ($debug) {WriteTransportLog($GLOBALS[
'HOMECU_LOGFILE'],
"From:{$p_hb_from_nbr}\tTo:{$p_hb_to_nbr}\tSEND:{$api_msg_json}\tAPI:$api_url\tRESPONSE:{$api_response}");}
95 $api_response = json_decode($api_response,
true);
96 if (!is_array($api_response)) {
102 } elseif (HCU_array_key_value(
'error', $api_response) !=
'') {
112 } elseif (HCU_array_key_value(
'nvs_code', $api_response[
'result'][
'status']) !=
'S') {
133 function SendAwsSMS($pPhoneNbr, $pSubject, $pMessage, $pTransaction=
false) {
142 if ($pPhoneNbr ==
'' || $pSubject ==
'' || $pMessage ==
'') {
143 throw new exception (
"Empty parameters");
148 if (strlen($pPhoneNbr) == 10) {
149 $pPhoneNbr =
"1" . $pPhoneNbr;
154 $pyFile = dirname(__FILE__) .
"/../../shared/scripts/sendAwsSms.py";
157 $opts =
"-p " . escapeshellarg($pPhoneNbr) .
" -s " . escapeshellarg($pSubject) .
" -m " . escapeshellarg($pMessage) .
" ";
163 $command = escapeshellcmd(
'python3') .
" {$pyFile} $opts ";
166 $smsResponse = exec($command);
168 if ($smsResponse !=
'') {
171 $dataResp = json_decode($smsResponse,
true);
172 switch (json_last_error()) {
173 case JSON_ERROR_NONE:
176 case JSON_ERROR_DEPTH:
177 case JSON_ERROR_STATE_MISMATCH:
178 case JSON_ERROR_CTRL_CHAR:
179 case JSON_ERROR_SYNTAX:
180 case JSON_ERROR_UTF8:
182 throw new Exception (
"Invalid Format");
192 if (is_array($dataResp)) {
193 if (array_key_exists(
'status', $dataResp)) {
194 $respStatus = $dataResp[
'status'];
196 if ($respStatus ==
'000') {
203 }
catch (exception $ex) {
224 function WriteTransportLog($p_logfile, $p_msg) {
226 $fh = fopen ($p_logfile,
"a");
227 fwrite($fh, $p_msg.
"\n");
242 function EscapeCmd ($p_str) {
244 $p_str = preg_replace(
"/'/",
"'\"'\"'", $p_str);