Массовый прием обыкновенных SMS в Telegram (или Viber)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В статье habr от 08.2019 был рассмотрен рабочий способ для приема SMS.
При всей его громоздкости и костыльности - он пользуется популярностью у бизнеса арбитражников и прочих SMS товарищей.

Поэтому упростим настройки чтоб их могли использовать еще больше желающих.

Сам GOIP-SMS-Сервер абсолютно неудобен т.к. требует дополнительный WEBserver, но Шлюзы GoIP умеют отправлять СМСки и по SIP протоколу.
Т.е. с помощью обычного любого Asterisk (или FreePBX)

самое главное УРА - Без SMSсервера, без PHP(Python) Скриптов, без промежуточных Email.

Часть 1я - настройка шлюза GOIP для приема СМС.

1) Рассмотрим настройки SMS на примере GOIP-8 (8 канального GSM шлюза):

Установим сим карточки в любые порты от 1 до 8.
Configurations-SMS тут мы видим меню, заполняем поле SMS to VoIP, пишем что угодно, например goip8, на каждом из каналов как на скрине ниже

2) Configurations-Basic VoIP, тут выбираем режим Trunk Gateway Mode и указываем единственный IP (свой Asterisk в локалке или в интернете). Элементарная настройка шлюза окончена - скрин прилагаю

Часть 2я - настройка Asterisk (или FreePBX) для приема СМС.

1) Настройки ТРАНКА для работы с GOIP (транк минимальный для СМС)
если у нас чистый asterisk, добавляем в sip.conf секцию и так же активируем работу с СМС, добавив в секцию general файла sip.conf

[general]
...
...
...
textsupport=yes
accept_outofcall_message = yes 
outofcall_message_context = messages 
auth_message_requests = no  



[smsgoip]    
 type=peer
 host=192.168.10.11; адрес нашего шлюза GoIP
 qualify=yes

если у нас FreePBX: Connectivity-Trunks - Add TRUNK - Add SIP (ChanSIP) Trunk, указываем host - IP адрес шлюза GoIP.

ВНИМАНИЕ На этих настройках звонки не работают - ЭТО SMS ONLY SETTINGS

Переходим в меню Admin-Config EDIT и в файл sip_general_custom.conf добавим эти строки:

textsupport=yes
accept_outofcall_message = yes 
outofcall_message_context = messages 
auth_message_requests = no  

СМС Активированы - ATC и ШЛЮЗ настроены. Далее нужно протестировать.

Например если какой нибудь сервис, например QIWI сейчас пришлет SMS на симку из 5го порта, то в Астериске в запросе INVITE и секции MESSAGE(body) мы увидим это

"QiwiInfo(L5)Your code to change QIWI Wallet password 9999. Do not disclose it to anyone".
Чтобы в этом выражении отделить нужную инфу распарсим его с помощью астеристического ассемблера обычного диалплана, не прибегая к сторонним скриптам, используем команду CUT, мы добавим в контексты диалплана следующую секцию (extensions.conf если у вас чистый Asterisk или extensions_custom.conf для FreePBX)

также не забываем в строке 5 поставить свой chat_id и токен от месенджера. Все полетят к вам в telegram chat (под viber почти аналогично)

[messages]
exten => _.,1,Set(_LINE=${CUT(CUT(MESSAGE(body),\),1),\(,2)})
same => n,Set(_FRM=${CUT(MESSAGE(body),\(,1)})
same => n,Set(_TEXT=${CUT(MESSAGE(body),\),2)})
same => n,System(curl --data "text=						
Источник: https://habr.com/ru/post/668680/


Интересные статьи

Интересные статьи

Кто про что, а я про телеграм бота… Сейчас я работаю в компании Каруна на позиции старшего Go-разработчика. В свободное от работы время стараюсь смотреть по сторонам (нет — не в поиске работы, и д...
У меня сегодня формат похожий на «читаем статьи за вас» от ODS, только я взяла несколько связанных. Отправной точкой служит статья под названием “Searching Central Difference Convolution...
Мне было необходимо делать 2 раза в сутки бэкап сайта на «1С-Битрикс: Управление сайтом» (файлов и базы mysql) и хранить историю изменений за 90 дней. Сайт расположен на VDS под уп...
Хочу рассказать вам об опыте создания Аркадного автомата с купюроприемником и монетоприемником. Статья не претендует на пошаговое руководство по сборке, скорее является целью поделить...
„Я унаследовал эту неразбериху, начиная с бессовестных Zello; LinkedIn и кончая «всеми прочими» на платформе Telegram в моём мире. А потом икнув, чиновник торопливо и громко добавил: но...