Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Your IP : 13.58.53.112
<?php
/**
* @param description
* @param $funivcode = University code
* @param $fenttype = Event type
* @param $usertype = SMS sent to User level like 900-student, 100-top management etc
* @param $sentuser = user id of the sender
* @param $to = Mobileno of the user
* @param $message = Text message you want to send
*
*/
class SMS
{
public $url = "https://http2.myvfirst.com/smpp/sendsms?";
function __construct($funivcode, $fenttype)
{
//include('/var/www/html/consts.php');
include("/var/www/config.php");
$this->conn = new mysqli(SERVERNAME,USERNAME,PASSWORD,"logisys3_comexam");
if(!$this->conn)
{
die("Connection failed: " . mysqli_connect_error());
}
$query = "select fsmsuser, fsmspasswd, fsmssendid from dbname where funivcode = '{$funivcode}'";
$result = mysqli_query($this->conn,$query);
$res = mysqli_fetch_assoc($result);
$this->smsuser = $res['fsmsuser'];
$this->smspasswd = $res['fsmspasswd'];
$this->smssendid = $res['fsmssendid'];
$this->funivcode = $funivcode;
$this->fenttype = $fenttype;
}
function smsLog($to, $message, $resp, $usertype, $sentuser){
$status = $resp == 'Sent.' ? 'T' : 'F';
$year = date("Y");
$type = date('m') < 6 ? 1 : 2;
$strInsertQuery = "insert into logisys3_logs.smslog(funivcode, fmobileno, fenttype, fackdate, fstatus, fmessage,
fusertype, fguid, fsentuser, fyear, fexamtype)
values ( '{$this->funivcode}', '{$to}', '{$this->fenttype}', now(), '{$status}', '{$message}',
'{$usertype}', '{$resp}', '{$sentuser}', '{$year}', '{$type}')";
// var_dump($strInsertQuery);
$result = mysqli_query($this->conn, $strInsertQuery);
}
function smsBulkLog($to, $message, $resp, $usertype, $sentuser){
$year = date("Y");
$type = date('m') < 6 ? 1 : 2;
$rgExpAmp = explode('&', $resp);
array_walk($rgExpAmp, function($val,$key) use(&$final){
list($key, $value) = explode('=', $val);
$final[$key] = $value;
});
$errorcode = explode(',', $final['errorcode']);
$mobnos = explode(',', $final['seqno']);
$rgInsert = array();
$rgTrimedMobs = array();
for($i = 0; $i < count($mobnos);$i++)
{
$mob = substr($mobnos[$i],2,11);
$status = $errorcode[$i] == 0 ? 'T' : 'F';
$rgInsert[] = "('{$this->funivcode}','{$mob}', '{$this->fenttype}', '{$errorcode[$i]}', now(), '{$status}', '{$message}',
'{$usertype}', '{$final['guid']}', '{$sentuser}', '{$year}', '{$type}')";
$rgTrimedMobs[$i] = substr($mobnos[$i],2,11);
$table = '<tr>
<td width="5%" align="center">'.$i.'</td>
<td width="8%" align="center">'.$mob.'</td>
<td width="10%" align="center">'.$mob.'</td>
<td>'.$message.'</td>
<td width="10%" align="center">'.$status.'</td>
</tr>';
echo $table;
}
$strInsertQuery = "insert into logisys3_logs.smslog(funivcode, fmobileno, fenttype, freasoncode, fackdate, fstatus, fmessage,
fusertype, fguid, fsentuser, fyear, fexamtype)
values ".implode(',',$rgInsert);
$result = mysqli_query($this->conn, $strInsertQuery);
return $rgTrimedMobs;
}
function sendSms($to, $message, $category = ''){
// Build URL
// if($key != 'NULL' || $key != ''){
$api = "https://api.onex-aura.com/api/sms?";
$url = $api;
$url.= "key=hyCR3Tm7";
$url.= "&from=PMSOLU";
$text = urlencode($message);
$url.= "&body={$text}";
$url.= "&entityid=1701160750260327092";
$url.= "&to={$to}";
$url.= "&templateid=1707171885912346766";
// }else{
// $api = "https://http2.myvfirst.com/smpp/sendsms?";
// $url = $api;
// $url .="username={$this->smsuser}&password={$this->smspasswd}";
// $url .="&to={$to}";
// $url .="&udh=0";
// $url .="&from={$this->smssendid}";
// $text = urlencode($message);
// $url .="&text={$text}";
// $url .="&dlr-mask=1&dlr-url";
// if($category !='')
// $url .="&category={$category}";
//}
// Send sms
$session = curl_init($url);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
curl_close($session);
return $response;
}
function sendIndvidualSms($to, $message, $usertype, $sentuser) {
$resp = $this->sendSms($to, $message);
//echo $resp;
$this->smsLog($to, $message, $resp, $usertype, $sentuser);
return $resp;
}
function sendBulkSms($to, $message, $usertype, $sentuser) {
$resp = $this->sendSms($to, $message, 'bulk');
$mobs = $this->smsBulkLog($to, $message, $resp, $usertype, $sentuser);
return $mobs;
}
function sendGeneralizedBulkSms($usertype, $sentuser) {
$query = "select funivcode, group_concat(concat('91', fmobileno)) as mobilenos,
fenttype, fmessage,ifnull(fexamdate,'') as fexamdate, count(fmobileno) as fcount,
if(length(fmessage) > 160, ceiling(307/153), 1) as msg_cnt
from sendsms
where fmobileno is not null
and fstatus = 'F'
and fenttype = '{$this->fenttype}'
and funivcode = '{$this->funivcode}'
and date_format(fupdate,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')
group by funivcode, fmessage";
$result1 = mysqli_query($this->conn, $query);
$row = mysqli_fetch_assoc($result1);
if($row['fcount'] == 1) {
$this->sendCustomizedBulkSms($usertype, $sentuser);
return;
}
$query1 = "SET SESSION group_concat_max_len=10000000";
$result = mysqli_query($this->conn, $query1);
$query = "select funivcode, group_concat(concat('91', fmobileno)) as mobilenos,
fenttype, fmessage,fexamdate,
if(length(fmessage) > 160, ceiling(307/153), 1) as msg_cnt
from sendsms
where fmobileno is not null
and fstatus = 'F'
and fenttype = '{$this->fenttype}'
and funivcode = '{$this->funivcode}'
and date_format(fupdate,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')
group by funivcode, fmessage";
$result = mysqli_query($this->conn, $query);
while($row = mysqli_fetch_assoc($result))
{
$rgBigArr = explode(',', $row['mobilenos']);
$rgSmallArr = array_chunk($rgBigArr,90);
$message = $row['fmessage'];
$table = '
<style>
table{
width:100%;
table-layout: fixed;
}
</style>
<table style="text-align: left;width: 100%;" border="1" cellpadding="10" cellspacing="0" >
<thead style = "">
<tr style = "background-color:#8acc51">
<th width="5%" align="center"><b>Sl. No.</b></th>
<th width="8%" align="center"><b>Reg. No. / Mobile No.</b></th>
<th width="10%" align="center"><b>Mobile No.</b></th>
<th align="center"><b>Message</b></th>
<th width="10%" align="center"><b>Status</b></th>
</tr>
</thead>
<tbody>';
echo $table;
foreach($rgSmallArr as $key => $value)
{
$strTo = implode(',', $value);
$mobs = $this->sendBulkSms($strTo, $message, $usertype, $sentuser);
$srtImplodedMobs = implode("','",$mobs);
$strUpdateQuery = "update sendsms set fstatus = 'T' where fenttype = '{$this->fenttype}'
and fmobileno in ('{$srtImplodedMobs}')";
$updres = mysqli_query($this->conn, $strUpdateQuery);
}
}
$query = "select funivcode, fstaffmobileno from logisys3_comexam.dbname
where ifnull(fstaffmobileno,'') <> '' and funivcode = '{$this->funivcode}'";
$resultn = mysqli_query($this->conn,$query);
$row = mysqli_fetch_assoc($resultn);
$strTo = $row['fstaffmobileno'];
$mobs = $this->sendBulkSms($strTo, $message, $usertype, $sentuser);
}
function sendCustomizedBulkSms($usertype, $sentuser) {
$query = "select funivcode, fregno, fenttype, fmobileno as mobileno,
concat(fmessage, ' Sent Time: ',time(now())) as fmessage,
fmessage, if(length(fmessage) > 160, ceiling(307/153), 1) as msg_cnt
from sendsms
where ifnull(fstatus, 'F') = 'F' and fenttype = '{$this->fenttype}'
and funivcode = '{$this->funivcode}'
and date_format(fupdate,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')
and fmobileno is not null";
$result = mysqli_query($this->conn,$query);
$table = '
<style>
table{
width:100%;
table-layout: fixed;
}
</style>
<table style="text-align: left;width: 100%;" border="1" cellpadding="10" cellspacing="0" >
<thead style = "">
<tr style = "background-color:#8acc51">
<th width="5%" align="center"><b>Sl. No.</b></th>
<th width="8%" align="center"><b>Reg. No. / Mobile No.</b></th>
<th width="10%" align="center"><b>Mobile No.</b></th>
<th align="center"><b>Message</b></th>
<th width="10%" align="center"><b>Status</b></th>
</tr>
</thead>
<tbody>';
echo $table;
$i = 1;
while($row = mysqli_fetch_assoc($result))
{
$to = $row['mobileno'];
$message = $row['fmessage'];
$status = $this->sendIndvidualSms($to, $message, $usertype, $sentuser);
$strUpdateQuery = "update sendsms set fstatus = 'T' where fenttype = '{$this->fenttype}'
and fmobileno = '{$to}' and funivcode = '{$this->funivcode}'";
$result2 = mysqli_query($this->conn,$strUpdateQuery);
$table = '<tr>
<td width="5%" align="center">'.$i.'</td>
<td width="8%" align="center">'.$row['fregno'].'</td>
<td width="10%" align="center">'.$to.'</td>
<td>'.$message.'</td>
<td width="10%" align="center">'.$status.'</td>
</tr>';
echo $table;
$i++;
}
if(substr($this->fenttype,0,2) !== 'AI') {
$query = "select funivcode, fstaffmobileno from logisys3_comexam.dbname
where ifnull(fstaffmobileno,'') <> '' and funivcode = '{$this->funivcode}'";
$resultn = mysqli_query($this->conn,$query);
$row = mysqli_fetch_assoc($resultn);
$strTo = $row['fstaffmobileno'];
$mobs = $this->sendBulkSms($strTo, $message, $usertype, $sentuser);
}
}
}
?>
|