Ad Widget

Collapse

Отправка смс в Zabbix без модема

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dyuha85
    Member
    • Aug 2012
    • 41

    #1

    Отправка смс в Zabbix без модема

    Добрый день всем!

    Пытаюст реализовать отправку смс. До этого такое проделывал с Google Calendar, но из-за бесплатности он не подошёл, так как отпраляет через раз, а то и вообще не отправляет.

    Теперь хочу сделать по этой статье

    http://www.zabbix.com/wiki/howto/config/alerts/smsapi

    А именно второй скрипт через smstrade.de.

    Регистрацию на этом сайте прошёл, есть у них и тестовые смски.
    С консоли всё отправляется без проблем, даже можно сказать молниеносно. А фот Zabbix никак не хочет парсить этот скрипт. В Администрирование -> Уведомления подсчитывает количество смс при срабатывании триггера, но смс я не получаю

    Вот сам скрипт:

    #!/usr/bin/php
    <?php
    /**
    * smstrade.de
    *
    * A simple script to send an SMS via
    * www.smstrade.de
    *
    * $Id: smstrade.php 185 2008-04-08 17:42:08Z antondollmaier $
    */

    //Set the following three values:
    $key = "xxxxxxxxxx";
    $route = "basic";

    // sms-sender
    $from = "Zabbix";
    // if $from is set, route is automatically gold!

    // Debugging?
    $debug = true;

    /************************************************** ********************
    do not change below
    ************************************************** ********************/

    if (count($argv)<3) {
    die ("Usage: ".$argv[0]." recipientmobilenumber \"subject\" \"message\"\n");
    }

    if ( $debug ) file_put_contents("/tmp/smstrade_".date("YmdHis"), serialize($argv));

    $to = $argv[1];
    $subject = $argv[2]; // not being used
    $message = $argv[3];

    if ( $message == "" || !is_numeric($to) ) {
    die("missing params!\n");
    }

    $apiargs = array(
    "key" => $key,
    "to" => $to,
    "message" => $message,
    "route" => $route
    );


    if ( $from != "") {
    $apiargs["route"] = "gold";
    $apiargs["from"] = $from;
    }

    $url = "https://gateway.smstrade.de/?";
    $params = "";

    foreach ($apiargs as $k=>$v) {
    if ( $params != "" ) {
    $params .= "&";
    }
    $params .= $k."=".urlencode($v);
    }

    $url .= $params;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url );
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);

    if ( $result === false ) {
    file_put_contents("/tmp/smstrade_error_".date("YmdHis"), curl_error($curl));
    die(curl_error($curl)."\n");
    } else {
    if ( $debug || $result != 100 ) file_put_contents("/tmp/smstrade_answer_".date("YmdHis"), $result);
    }

    ?>


    Если кто сталкивался с ткой проблемкой, помогите пожалуйста.

    Спасибо заранее.
    Last edited by dyuha85; 25-10-2012, 12:14.
  • dyuha85
    Member
    • Aug 2012
    • 41

    #2
    Originally posted by dyuha85
    Добрый день всем!

    Пытаюст реализовать отправку смс. До этого такое проделывал с Google Calendar, но из-за бесплатности он не подошёл, так как отпраляет через раз, а то и вообще не отправляет.

    Теперь хочу сделать по этой статье

    http://www.zabbix.com/wiki/howto/config/alerts/smsapi

    А именно второй скрипт через smstrade.de.

    Регистрацию на этом сайте прошёл, есть у них и тестовые смски.
    С консоли всё отправляется без проблем, даже можно сказать молниеносно. А фот Zabbix никак не хочет парсить этот скрипт. В Администрирование -> Уведомления подсчитывает количество смс при срабатывании триггера, но смс я не получаю

    Вот сам скрипт:

    #!/usr/bin/php
    <?php
    /**
    * smstrade.de
    *
    * A simple script to send an SMS via
    * www.smstrade.de
    *
    * $Id: smstrade.php 185 2008-04-08 17:42:08Z antondollmaier $
    */

    //Set the following three values:
    $key = "xxxxxxxxxx";
    $route = "basic";

    // sms-sender
    $from = "Zabbix";
    // if $from is set, route is automatically gold!

    // Debugging?
    $debug = true;

    /************************************************** ********************
    do not change below
    ************************************************** ********************/

    if (count($argv)<3) {
    die ("Usage: ".$argv[0]." recipientmobilenumber \"subject\" \"message\"\n");
    }

    if ( $debug ) file_put_contents("/tmp/smstrade_".date("YmdHis"), serialize($argv));

    $to = $argv[1];
    $subject = $argv[2]; // not being used
    $message = $argv[3];

    if ( $message == "" || !is_numeric($to) ) {
    die("missing params!\n");
    }

    $apiargs = array(
    "key" => $key,
    "to" => $to,
    "message" => $message,
    "route" => $route
    );


    if ( $from != "") {
    $apiargs["route"] = "gold";
    $apiargs["from"] = $from;
    }

    $url = "https://gateway.smstrade.de/?";
    $params = "";

    foreach ($apiargs as $k=>$v) {
    if ( $params != "" ) {
    $params .= "&";
    }
    $params .= $k."=".urlencode($v);
    }

    $url .= $params;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url );
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);

    if ( $result === false ) {
    file_put_contents("/tmp/smstrade_error_".date("YmdHis"), curl_error($curl));
    die(curl_error($curl)."\n");
    } else {
    if ( $debug || $result != 100 ) file_put_contents("/tmp/smstrade_answer_".date("YmdHis"), $result);
    }

    ?>


    Если кто сталкивался с ткой проблемкой, помогите пожалуйста.

    Спасибо заранее.
    Всё, разобрался. Если кому то понадобится. Разобрался благодаря этой статье


    Сообщение не должно превышать 160 символов, иначе смс не дойдёт.
    Notepad++ умеет хорошо считать количество символов.

    Тему можно закрывать.

    Всем удачи.

    Comment

    • rekby
      Member
      • Jul 2010
      • 91

      #3
      Мне еще нравится сервис sms.ru - я через него смс шлю. Там можно и русские смс и длинные и API простой, удобный.

      Comment

      • dyuha85
        Member
        • Aug 2012
        • 41

        #4
        Originally posted by rekby
        Мне еще нравится сервис sms.ru - я через него смс шлю. Там можно и русские смс и длинные и api простой, удобный.
        Работают ли они на Узбекистан?

        Comment

        • rekby
          Member
          • Jul 2010
          • 91

          #5
          Да

          Рассылка СМС от имени вашей компании. Быстрое согласование и импорт номеров из Excel. Отчет о проведении смс рассылки рекламы в реальном времени. Все цены на СМС рассылку смотрите на сайте.

          Comment

          • dyuha85
            Member
            • Aug 2012
            • 41

            #6
            Originally posted by rekby
            Спасибо

            Comment

            • dyuha85
              Member
              • Aug 2012
              • 41

              #7
              rekby

              Не поделитесь пожалуйста вашим скриптом отправки смс через службу sms.ru?

              Comment

              • rekby
                Member
                • Jul 2010
                • 91

                #8
                Мой будет бесполезен (я не из заббикса и вообще не из командной строки отправляю), но у них на сайте есть примеры, там всё просто:

                Через HTTP: http://sms.ru/?panel=api&subpanel=method&show=sms/send
                Путем отправки email: http://sms.ru/?panel=api&subpanel=method&show=sms/mail

                Comment

                • Sonic007
                  Junior Member
                  • May 2021
                  • 1

                  #9
                  В ПростоСМС вообще реализовано все очень просто. Гляньте сами https://sms-prosto.ru/uslugi/rassylka-telegram/.

                  Comment

                  Working...