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

Если очередь на кассе — отправь сообщение на номер 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

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

Восстановление OpenVox после неудачной прошивки
Проблема После прошивки через Web-интерфейс, шлюз OpenVox перестал отвечать на запросы как ping, так и WEB. При визуальном осмотре, все модули, кроме 1-го (master) работают (на остальных модулях - светодиод SYS моргает примерно раз в 1 секунду, также моргают светодиоды сим карт). Решение За основу решения взял Flash ...
Установка Bitwarden Server для организации
Проблема Нужно установить Bitwarden Server для работой с организацией. Также не забываем о Docker. Решение Для запуска и установки в личных целях, достаточно воспользоваться официальной инструкцией по ссылке https://help.bitwarden.com/article/install-on-premise/. Не забываем установить Docker и Docker-compose: curl -sSL https://get.docker.com/ | sh sudo usermod -aG docker ${USER} sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o ...
Резервная копия профиля Mozilla Thunderbird
Во время работы с почтовым клиентом Mozilla Thunderbird, возникает вопрос создание резервной копии писем, например при переустановке ОС, либо перенести все письма в другое место. Для этого нужно: закрыть приложение Mozilla Thunderbird; переходим в каталог C:\Users\<Имя пользователя>\AppData\Roaming\Thunderbird\; именно отсюда копируем папку «Profiles» в любое желаемое нам ...
Оценка работы оператора 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 модулями? Так и работает! ...
Bitrix24 cоздание лида через API
Задача - создание лида через API запрос к облачному Bitrix24. Для решения этой задачи, будем использовать webhook. Для создания webhook переходи на портале Bitrix24 по пункту "Дополнения"→"Вебхуки" Нажимаем на кнопку "создать вебхук", из выпадающего списка выбираем "Входящий вебхук". На следующем окне нужно ввести имя вебхука ...
Защита админ-панели 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/ { ...
Мониторинг уровня сигнала 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-шлюзах ...