1 | изначальная версия редактировать | |
Потребовалось отправлять длинные sms (более 70 русских букв), через GSM Шлюз OpenVox VoxStack VS-GW1202-8G. Немного переписали php скрипт. Вот собственно делюсь. Скрипту необходимо передать собственно сам текст, ip адрес платы шлюза, номер порта на плате шлюза, номер телефона кому посылаем sms. Так много параметров вынесено так как мы подсчитываем количество sms отправленных через каждый порт в базе mysql дабы не превысить месячный пакет.
#!/usr/bin/php -q
<?php
echo "SMS send";
$text ="$argv[1]";
$text = mb_convert_encoding($text, "utf-8", mb_detect_encoding($text)); #if text in russian
include("/var/lib/asterisk/agi-bin/phpagi-asmanager.php");
$agi=new AGI_AsteriskManager;
function word_chunk($str, $len = 70, $end = "\n") {
$pattern = '~.{1,' . $len . '}~u';
$str = preg_replace($pattern, '$0' . $end, $str);
return rtrim($str, $end);
}
$array = explode('-=||=-',word_chunk($text, 67, '-=||=-'));
print_r($array[0]);
$vst_host="$argv[2]"; #YOUR VOXSTACK GSM GATEWAY IP ADDRESS
$vst_user="admin"; #Corresponding to your GSM gateway API settings
$vst_pwd="admin"; #Corresponding to your GSM gateway API settings
$vst_port="5038"; #Corresponding to your GSM gateway API settings
$agi_status=$agi->connect($vst_host.":".$vst_port,$vst_user,$vst_pwd);
if(!$agi_status)
{
$msg="Failed to connected Asterisk,exit..";
exit(0);
}
$type="gsm";
$method="send sync";
$sync="csms";
$span="$argv[3]"; #YOUR SIMcard for sending sms
$destination="$argv[4]"; #YOUR DESTINATION NUMBER
$timeout="10";
$total=count($array);
foreach ($array as $index => $chunk) {
$i=$index+1;
$agi->Command("$type $method $sync $span $destination \"$chunk\" 00 $total $inde $timeout");
}
exit(0);
?>
Для работы скрипта необходимо ещё положить в доступное стандартный скрипт phpagi-asmanager.php
2 | No.2 Revision редактировать |
Потребовалось отправлять длинные sms (более 70 русских букв), через GSM Шлюз OpenVox VoxStack VS-GW1202-8G. Немного переписали php скрипт. Вот собственно делюсь. Скрипту необходимо передать собственно сам текст, ip адрес платы шлюза, номер порта на плате шлюза, номер телефона кому посылаем sms. Так много параметров вынесено так как мы подсчитываем количество sms отправленных через каждый порт в базе mysql дабы не превысить месячный пакет.
#!/usr/bin/php -q
<?php
echo "SMS send";
$text ="$argv[1]";
$text = mb_convert_encoding($text, "utf-8", mb_detect_encoding($text)); #if text in russian
include("/var/lib/asterisk/agi-bin/phpagi-asmanager.php");
$agi=new AGI_AsteriskManager;
function word_chunk($str, $len = 70, $end = "\n") {
$pattern = '~.{1,' . $len . '}~u';
$str = preg_replace($pattern, '$0' . $end, $str);
return rtrim($str, $end);
}
$array = explode('-=||=-',word_chunk($text, 67, '-=||=-'));
print_r($array[0]);
$vst_host="$argv[2]"; #YOUR VOXSTACK GSM GATEWAY IP ADDRESS
$vst_user="admin"; #Corresponding to your GSM gateway API settings
$vst_pwd="admin"; #Corresponding to your GSM gateway API settings
$vst_port="5038"; #Corresponding to your GSM gateway API settings
$agi_status=$agi->connect($vst_host.":".$vst_port,$vst_user,$vst_pwd);
if(!$agi_status)
{
$msg="Failed to connected Asterisk,exit..";
exit(0);
}
$type="gsm";
$method="send sync";
$sync="csms";
$span="$argv[3]"; #YOUR SIMcard for sending sms
$destination="$argv[4]"; #YOUR DESTINATION NUMBER
$timeout="10";
$total=count($array);
foreach ($array as $index => $chunk) {
$i=$index+1;
$agi->Command("$type $method $sync $span $destination \"$chunk\" 00 $total $inde $i $timeout");
}
exit(0);
?>
Для работы скрипта необходимо ещё положить в доступное стандартный скрипт phpagi-asmanager.php
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.