if ($DEBUG) echo date("Y-m-d H:i:s")." DEBUG $row->DestAddr/n";
if ($DEBUG) echo date("Y-m-d H:i:s")." DEBUG $sms_text/n";
$pdu_text = hex2str(gb2unicode($sms_text));
$invert_msisdn = InvertNumbers($msisdn);
// 拆分发送超过70汉字的短信(todo: 没有判断全英文的情况)
do {
$pdu_len = strlen($pdu_text);
if ( $pdu_len > $max_len ) {
$pdu_text1 = substr($pdu_text, 0, $max_len);
$pdu_text = substr($pdu_text, $max_len, $pdu_len - $max_len);
} else {
$pdu_text1 = $pdu_text;
$pdu_text = "";
}
$pdu_len1 = sprintf("%02X", strlen($pdu_text1)/2);
$pdu_text1 = $pdu_len1 . $pdu_text1;
$pdu_text1 = "11000D91" . $invert_msisdn ."000800" . $pdu_text1;
$atcmd = "AT+CMGS=" . sprintf("%d", strlen($pdu_text1)/2) . chr(13);
$l = strlen($atcmd);
$ll = @dio_write($fd,$atcmd);
while ($l != $ll) {
sleep(10);
$ll = @dio_write($fd,$atcmd);
}
if ($DEBUG) echo date("Y-m-d H:i:s")." DEBUG $atcmd/n";
do {
$data = dio_read($fd, $len);
echo $data;
} while ( $data != $s );
sleep(1);
$pdu_text1 = "0891" . $invert_smsc . $pdu_text1 . chr(26).chr(13);
$l = strlen($pdu_text1);
$ll = @dio_write($fd,$pdu_text1);
while ($l != $ll) {
sleep(10);
$ll = @dio_write($fd,$pdu_text1);
}
if ($DEBUG) echo date("Y-m-d H:i:s")." DEBUG $pdu_text1/n";
do {
$data = dio_read($fd, $len);
echo $data;
} while ( $data != $s );
sleep(7);
} while ( $pdu_text != "" );
mysql_query("update sm_submit set stat=1 where smid=$row->smid", $sql);
}
mysql_close($sql);
dio_close($fd);
?>