Задача состояла в том, чтобы отправлять с сайта смс при определенных событиях. Под рукой оказался usb модем 3G от мегафона. В конечном итоге переделал модуль под Drupal 7 для отправки смс и при помощи Rules отправлял смски. Хочу заметить, что мои сайты работают на OpenServer и на ОС Windows 10 64bit. C небольшими исправлениями работает и на Linux.
Скачать модуль отправки смс для Drupal7 и исправить его под Ваши нужды можете здесь sms.zip
Ниже основа кода на php.
include "ucs2cp1251.class.php"; // скачиваем тут
function sms_send($phone, $mess)
{
$num = preg_replace("/[^+0-9]/s", "", strip_tags(trim($phone)));
$text = preg_replace('/\s+/', ' ', strip_tags(trim($mess)));
$textsms = utf8_to_win($text);
$lengthsms = ATSMS($num, $textsms);
$encodesms = sendSMS($smsc_numb, $num, $textsms);
ser_open("COM6", 115200, 8, "None", 1, "None");
if (ser_isopen() == true )
{
ser_setDTR(False);
ser_write("AT+CFUN=1\r\n");
ser_write("AT+CMGF=0\r\n");
ser_write("AT+CMGS=".$lengthsms."\r\n");
ser_write($encodesms.chr(26));
ser_close();
// подключаемся и пишем события в базу
$linkk = mysqli_connect("localhost", "root", "******", "sms_server_sender");
//or die("Error connect " . mysqli_error($link));
$host = $_SERVER['HTTP_HOST'];
$user_ip = $_SERVER['REMOTE_ADDR'];
global $user;
$user_nik = $user->name;
// выполняем операции с базой данных
mysqli_query($linkk, "INSERT INTO `sms_core` (`site`, `user`, `ip`, `phone`, `message`) VALUES ('$host', '$user_nik', '$user_ip', '$num', '$text')");
// закрываем подключение
mysqli_close($linkk);
}
else
echo "Port is not open\r\n";
}
}
?>
Дополнительно картинки примера для настроек Rules
Добавить комментарий