Как пример опишу реализацию задачи «Очередь на кассе».

Если очередь на кассе — отправь сообщение на номер 050XXXXXXX с текстом «2302». Когда приходит сообщение переправлять в Telegram канал. Сим-карта с номером 050XXXXXXX подключена в Openvox, который в свою очередь настроен на получение СМС.



Решение

Для пересылки полученных сообщений в Telegram нужно использовать SMS to HTTP.
Выставляем в настройках шлюза параметры:

На Web-сервере 192.168.1.10, создаем виртуальный хост с портом 9999 (тут все можно сделать на своё усмотрение: можно создать домен, можно создать каталог, можно скрипт бросить в корневой каталог, можно создать другой порт). Пишем php обработчик полученных с Openwox СМС сообщений.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
header('Content-Type: text/html; charset=Windows-1251');
ini_set('display_errors', 1);
$token = "11111111:AAAAAAAAAAAAAAAAAAA-AAAAAAAA";
$chatid = "-10000000001";
if (((!empty($_GET['phonenumber'])&&!empty($_GET['port']))&&(!empty($_GET['message'])&&!empty($_GET['time'])))&&($_GET['port']=='gsm-2.1')) {
$phonenumber=$_GET['phonenumber'];
$port=$_GET['port'];
$message=mb_convert_encoding($_GET['message'], "windows-1251", "auto");
preg_match('(\b\d{4}\b)', $message, $str);
$time=$_GET['time'];
if(!empty($str)){
$text = 'Сообщение от: '.$phonenumber.' - *'.$str[0].'* '.$time;
exec('"C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\telegram.exe" '.$token.' '.$chatid.' Markdown '.$text);
}
}
?>

В этом скрипте мы отсекаем все сообщения (которые получает Openvox), оставляем только те, которые пришли на порт gsm-2.1 (в нашем случаем это входящий номер 050XXXXXXX). Также отсекаем весь текст, кроме 4-х цифр (пример 2304), если пришло сообщение типа «Передзвоніть мені будь ласка…..», «Я на зв’язку…..», «Акція дійсна до 01.09.2019…», также отсекаются. Всё это делается регулярным выражением preg_match('(\b\d{4}\b)', $message, $str);
Команда exec('"C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\telegram.exe" '.$token.' '.$chatid.' Markdown '.$text);, отправляет сформированное сообщение в Telegram.
Последнюю команду можно заменить на любой другой пример, который я описал в статье Отправка сообщений в Telegram

Похожие статьи:

Защита админ-панели RainLoop при помощи NGINX
Админ-панель почтового Web-клиента доступен по адресу: https://domain?admin Чтобы ограничить доступ к данной станицы определенным IP, нужно внести изменения в файлы конфигураций: nano /etc/nginx/conf.d/default.conf server { listen 80; server_name _; server_tokens off; location /.well-known/acme-challenge/ { ...
Оценка работы оператора FreePBX+Asterisk
Задача: 1) Есть группа операторов Call-центра, нужно сделать возможность после разговора, оценивать звонок. 2) Максимальная интеграция с FreePBX. Решение: В Интернете много вариантов, все они ориентированы на чистый Asterisk. Примеры: https://wiki.merionet.ru/ip-telephoniya/55/ocenka-raboty-operatora-posle-zvonka-na-asterisk/ https://habr.com/ru/post/147122/ http://asterisk-service.com/blog/asterisk-1/post/2-0-53 Моя же реализация заключается в том, что все настройки можно делать в Web-интерфейсе FreePBX. Реализация тестировалась и работает на: - версии Asterisk 1.8.10.1 - ...
Доступ к Slave boards Openvox
Для того, чтобы выполнить запрос из консоли Asterisk (asterisk -rx ""), который установлен на шлюз, или через Web-интерфейс (Дополнительно→Asterisk CLI) то будет доступен только Master модуль. Чтобы работать со Slave модулями, нужно поднимать дополнительное соединение. Как же работает Web-интерфейс с Slave модулями? Так и работает! ...
Мониторинг уровня сигнала SIM-карт в Openvox через Zabbix
При переходе по ссылке http://IP_OPENVOX/service?action=get_gsminfo, или http://IP_OPENVOX/X/service?action=get_gsminfo (где X - номер модуля, больше 1), можно увидеть в json-формате статус портов (span-нов). Если Web-сервер на Openvox, для авторизации использует метод Authorization: Basic, то мониторить статус портов (span-нов), можно средствами zabbix. Но на некоторых (более новых) Openvox-шлюзах ...
Отправка сообщений на e-mail через cmd
Для удобства отправки e-mail с командной строки, написал консольную программу на языке Pascal. Среда разработки PascalABC.NET. uses System.Net.Mail, System.Net, System.Net.Mime, System.IO; var i:integer; s:integer; MAILFrom: string; MAILTo:string; SMTPServer:string; SMTPPort:string; SMTPPass:string; Mail:string; Subject:string; Body:string; begin SMTPServer := ParamStr(1); SMTPPort := ParamStr(2); MAILFrom := ParamStr(3); SMTPPass := ParamStr(4); MAILTo := ParamStr(5); Mail :=''; for i := 6 to ParamCount do begin ...
Отправка сообщений в Telegram
Здесь описаны возможные способы отправки сообщений в Telegram Windows CMD Для удобства отправки с командной строки, написал консольную программу на языке Pascal. Среда разработки PascalABC.NET uses System.IO, System.Net; var i:integer; html : string; chat_id: string; {:='111111111';} token: string; {:= '0000000:AAAAAAAAAAAAAAAAAAAAAA';} parse_mode: string; {:= 'html';} message: string:=''; {:='Сообщение';} url : string; begin token := ParamStr(1); chat_id := ParamStr(2); parse_mode := ...
Восстановление OpenVox после неудачной прошивки
Проблема После прошивки через Web-интерфейс, шлюз OpenVox перестал отвечать на запросы как ping, так и WEB. При визуальном осмотре, все модули, кроме 1-го (master) работают (на остальных модулях - светодиод SYS моргает примерно раз в 1 секунду, также моргают светодиоды сим карт). Решение За основу решения взял Flash ...
Web CallBack FreePBX
Задача Создать кнопку "Перезвоните мне" на сайте, с максимальной интеграцией во FreePBX. Решение Для примера возьмем статью https://asterisk-pbx.ru/wiki/artikle/asterisk_web_callback. Принцип работы этой реализации заключается в том, что php скрипт генерирует (Originate) вызов. Первым делом отправляет вызов по каналу Channel. После того, как соединение установлено (вызов принят оператором), осуществляется ...