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

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