отравка смс при пропадении питания через Asterisk

Обсуждаем сайт и форум.

Модератор: f0s

strelokr
мл. сержант
Сообщения: 93
Зарегистрирован: 2011-01-11 15:17:14
Контактная информация:

отравка смс при пропадении питания через Asterisk

Непрочитанное сообщение strelokr » 2013-06-05 15:58:30

Нужно что бы на мобильный приходило смс в случае исчезновении питания на сервере.
Есть Freebsd демон apcupsd управления УПС и asterisk с подключеными GSM модемами.
Если у вас данный демон стоит на той же машине что и астериск можно написать скрипт

Код: Выделить всё

#!/usr/local/bin/bash

/usr/local/sbin/asterisk  -rx "dongle sms KS_out +380501111234 Power fackup"

Но у меня управляет УПС другой сервак и тут на помошь приходит AMI Asterisk

Первое что необходимо сделать, это включить AMI и завести пользователя с помощью которого клиентская программа будет аутентифицироваться:

/etc/asterisk/manager.conf

Код: Выделить всё

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0


/etc/asterisk/manager.conf

Код: Выделить всё

[admin]
secret=FrUyHn6FSaX
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
read=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate


Для применения изменений выполним reload:

Код: Выделить всё

asterisk -rx "module reload manager"


создаем два скрипта на базе PHP. Основа взята от сюда http://habrahabr.ru/company/centosadmin/blog/161521/
poweroff.php

Код: Выделить всё

<?php

# --- define globals ---
$strhost = "192.168.1.6";
$strport = "5038";
$timeout = "10";
$d=date(DATE_RFC822);
$errno=0 ;
$errstr=0 ;

$sconn = fsockopen ($strhost, $strport, &$errno, &$errstr, $timeout) or die("Connection to $strhost:$strport failed");

if (!$sconn) { echo "$errstr ($errno)<br>\n"; }

  else {

  fputs ($sconn, "Action: login\r\n");
  fputs ($sconn, "Username: admin\r\n");
  fputs ($sconn, "Secret: FrUyHn6FSaX\r\n");
  fputs ($sconn, "Events: on\r\n\r\n");
  usleep(1000);
  fputs ($sconn, "Action: Command\r\n");
  fputs ($sconn, "Command: dongle sms MTS_out +380661111234 Power failure. $d \r\n");
  fputs ($sconn, "Action: Logoff\r\n\r\n");
  usleep (500);

  fclose ($sconn);

  }



и poweron.php
такой же только строчка

Код: Выделить всё

  fputs ($sconn, "Command: dongle sms MTS_out +380661111234 Power is back. $d \r\n");

далее преходим

Код: Выделить всё

# cd /usr/local/etc/apcupsd/

и редактируем два файла onbattery - событие при переключении на батарею и offbattery - переходим на основное питание.
добавляем строчки в начале файла

/usr/local/bin/php -f /root/scripts/poweroff.php
и так же для poweron.php

Результат - при переходе УПС на работу от батарей приходит смс с текстом "Power failure. Wed, 05 Jun 13 15:53:59 +0300
И обратная смс при возвращении питания.
Если вынесете это в отдельную статью буду только рад
Последний раз редактировалось f_andrey 2013-06-05 23:27:00, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34924
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: отравка смс при пропадении питания через Asterisk

Непрочитанное сообщение Alex Keda » 2014-03-22 12:50:35

типа инструкция?
раздел тока не тот, надо было в "про сайт"
Убей их всех! Бог потом рассортирует...


Вернуться в «Про сайт»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя