Массовый прием обыкновенных 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=?PORT:${LINE}\n\n<i>${URIENCODE(${TEXT})}</i>\n\nот ${FRM}&chat_id=YOUCHAT" "https://api.telegram.org/botYOUTOKEN/sendMessage") same => n,HangUp()

А вот так выглядит это же СМС полученное в telegram:

УДАЧНОГО АРБИТРАЖИРОВАНИЯ
УДАЧНОГО АРБИТРАЖИРОВАНИЯ

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А Вы еще используете СМС в работе?
26.67% Да 4
33.33% Нет 5
40% Только подтвердить сервисы 6
Проголосовали 15 пользователей. Воздержались 2 пользователя.

ссылка на оригинал статьи https://habr.com/ru/post/668680/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *