Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2016-08-04 16:48:28 +0400

bandys Gravatar bandys

Скрипт для отправки длинных sms через OpenVox

Потребовалось отправлять длинные 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

Скрипт для отправки длинных sms через OpenVox

Потребовалось отправлять длинные 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.