Как стать автором
Обновить

Комментарии 60

а если использовать модемы с поддержкой голоса, вроде проверенных временем E1550, E173 и подобных, то можно поставить asterisk с модулем chan_dongle и получить кроме отправки смс, ещё и приём, а до кучи и голосовые вызовы с этих сим карт и полный блэкджек с sip телефонией…
Я не претендую на уникальность решения – это как один из множества вариантов. Всё до нас уже кто-то изобрёл :) То, что я предлагаю в этой серии статей – это самописный, простой в работе сервис, который не потребует никаких особых навыков для старта. И да, если отклик будет, напишу третью часть с обработкой приёма сообщений

А с asterisk всё таки надо уметь работать… У меня такого опыта увы нет, поэтому поделиться мне нечем. Я думаю если вы можете, будет отличная статья.
если вкратце, то у меня сделано так:
— есть несколько модемов E1550 (специально их искал и покупал на авито, т.к. лично у меня они более стабильно себя ведут)
* у всех модемов изменён imei на «телефонный»
* почему несколько — есть пара номеров которые не хочу терять и они «ждут лучшего часа»
* завёл специально один номер, который указан в банках, госуслугах и прочих важных сервисах
— всё это воткнуто в usb hub и в домашний «роутер»
— на роутере поднят asterisk с chan_dongle
— при приходе смс на любой номер дёргается скрипт, который пересылает текст смс в телеграм (через бота) + убивает ненужные от мчс и ряд других. если вдруг нет интернет или ошибки отправки через бота в течении 5 минут, то отправляется на номер который с собой обычной смс
— через этого же бота можно отправить обычное смс наружу через любую симку
— входящие звонки сначала попадают в ivr, где радостно сообщается что не могу говорить, но если вы хотите сообщить что то важное, нажмите «1», скажите кто\что, сообщите номер и я перезвоню — это отсекает вообще весь голосовой спам. было один раз что человек реальный так сделал, запись так же прилетела в телегу (+ в почту для резерва)
— так же написана своя обёртка над tg2sip чтобы через телегу-tg2sip-asterisk-sim можно было позвонить наружу при острой необходимости, если для какой то идентификации требуется чтобы при звонке был нужный номер

это работает давно и не замечаю уже, зато когда на номер который в телефоне с собой приходят звонки из банков и прочие разводы — точно знаешь что ничего у тебя не украли и радостно их тролишь…
Интересная схема. По сути у меня тот же функционал, но без варианта приема голоса
С банками прикольно … однозначно + :)
— всё это воткнуто в usb hub и в домашний «роутер»
— на роутере поднят asterisk с chan_dongle

Под роутером подразумевается комп на линуксе? Или на обычном wi-fi роутере можно завести asterisk с chan_dongle? Было бы любопытно узнать подробности решения )
сейчас да, купленный в китае миникомп с 6 гигабитными портами, ссд, wifi, bt, пассивное охлаждение… там сейчас всё
до этого были асусы с entware
собственно в последнем entware был/есть asterisk11-chan-dongle
но тут есть нюанс, надо чтобы или в ядре уже поддержка модемов (точнее модули usb, usbcom) или возможность под ядро докачивать из пакетов эти модули и была совместимость с используемым модемом
и из минусов — может быть не самая свежая версия, а там буквально недавно исправили проблему с отправкой юникодных смс…
в этом отношении Е1550 хороший вариант, т.к. много кем поддерживается из коробки

я тоже все это делал но современем ушел от е1550 на openvox-gsm(aster)
так надёжнее и ставил переадресацию для мошенников на 8-800 (тех поддержки сбера), раз в месяц заходил послушать-поржать

А готового мануала не найдется, чтобы не искать по частям?

Я, кстати, так делал. По идее этом можно и в Raspberry Pi запихать. Но тогда у меня был железный сервер на Linux. Изначально был сервер на FreeBSD. Тоже работает. Я даже голосовалку делал для местного конкурса красоты пару раз, когда люди слали СМС, а система считала голоса и публиковала на сайт. За месяц накидывали по несколько тысяч сообщений. Всё было в норме, но нужно проверять периодически, что модем работает, иначе можно потерять СМС.
Ну и входящие/исходящие звонки в таком случае, конечно, тоже доступны. Читал как СМС отправлять, но руки так и не дошли. Да и каждая СМС денег стоила на тех SIM-картах, что стояли в модемах.

При написании следующих частей не забудьте указать, что при использовании SIM-карт, зарегистрированных на физ. лицо, есть высокая вероятность получить блокировку от оператора мобильной связи. В договорах прописано, что нельзя использовать номера как шлюзы.
тут на помощь приходит смена imei )
А вот это уже не законно ;) я такое не практикую.
На самом деле во всем нужна мера. Если не отсылать с одной сим-карты 5, 10, 50 тысяч смс, а ограничиться – 500 или 1000 и просто завести несколько номеров и балансировать нагрузку на карты, то уверен ни один оператор ничего не скажет
так речи про 5, 10, 50 тысяч и не было…
и у автора в оригинальном описании про количество сообщений ни слова…

про законность — операторам глубоко наплевать на взятые на себя обязательства!
простой пример, есть официальный тариф с включённой 1000смс в месяц, стоит в железном gsm шлюзе, у которого есть api для отправки и приёма смс, имеи не изменённый, так оператор в курсе что за железка.
по работе есть точка входа на сайте (сервис некий, информационные услуги если коротко) и там пользователь регестрируется и надо подтвердить номер (тк на него будет получать редкие смс)
замечено, что если в смс что отправляется есть слова типа «код» «проверка» — то смс отправляется, в выписке по счёту её видно, но не доходит
все попытки разобраться и решить проблему с оператором ни к чему не привели… они проверяют — всё хорошо, а по факту нет. в итоге такие слова не используем и всё работает…
но сразу скажу что по факту в месяц не более 100смс получается, чтобы не думаю что спам или что то подобное
Про количество сообщений это было больше не к вам, а к стартовому комментарию

Такое поведение с блокированием определенных сообщений наблюдалось при получении у билайна. Причем именно при получении. Отправлял с yota и Тинькофф сообщения, в самом начале когда еще тестировал и через некоторое время на мой билайн они перестали приходить, а на мтс, тинькоф и мегафон приходили. В сообщении было https… убрал его, сообщение пришло. Вот думаю … :)
У нас не более 200-300 сообщений в месяц — мегафон регулярно добавляет наш билайновский номер в ЧС (и так же регулярно он оттуда выходит — видимо, по таймеру). Теле2 нас не блочит, кстати :)
Это все и так знают, в любой статье про отправку sms об этом пишут, зачем повторяться?
В договорах еще есть такой пункт – «Запрещается использовать автоматизированные способы отправки сообщений». Таким образом использование сим-карт в системах Умный-дом тоже попадает под «возможность блокировки», но вы же понимаете, что этого никто не будет делать. Как оператор определит, вы отправили уведомление через модем скриптом или это вполне себе легальное устройство сделало? Здесь грань очень тонкая…
Надо еще добавить к минусам — если ваше устройство не умеет правильно обрабатывать пуши с рекламой\предложениями от оператора — то оно будет автоматически подписываться на все платные услуги. Как примеры можете загуглить что-то вроде «ворота подписались на гороскопы» и где-то рядом будет объяснение оператора.
Ну на этом можно споткнуться в любом устройстве. Я предпочитаю пользоваться операторами, которые не «грешат» отправкой пуш-сообщений о подписке на «Сдай экзамен ЕГЭ» и пр… Благо таких как минимум 3

Не раскрыт вопрос стабильности и резервирования. Ушел от usb свистка, т.к. он виснет периодически и его нужно по питанию передергивать. Не удобно.

Этот пункт есть в Минусы. Сбои как правило случаются на «сложных» модемах требовательных к качеству питания и пр… Например на Huawei E3272 у меня сбоев было много. Потом я перешел на более старые или простые модемы и более чем за 12 месяцев ни одного сбоя. Идеальный модем – SIM800C с китайского магазина, который уже распаян на USB. Виден кусочек на заглавной фото. Стоимость порядка 600 руб…

Также Gammu позволяет контролировать зависание модема и ребутить его. В данной статье это не рассмотрено, а оставлено для самостоятельного изучения.
ребутить нужно отключением питания, либо монитор цеплять отдельной железкой.
На сколько мне известно, Linux позволяет управлять питанием USB-порта …
от железа ПК зависит, но пример бы не помешали.
В качестве платформы под такие шлюзы можно использовать роутеры с USB портами перешитые на OpenWrt. В них не редко производители закладывают управление питанием USB порта через GPIO как раз для решения проблем с модемами. Например у TP-Link TL-MR3020 есть такая возможность.
К сожалению благодаря бурному развитию SoC таких роутеров все меньше и меньше. Когда я в последний раз смотрел было дешевле купить микротик чем совместимый с openwrt роутер.
На самом деле даже с OpenWRT не надо заморачиваться. Отлично работает с любым MikroTik у которого есть USB-порт (от 3 т.р). Причем там можно usb назначить на любой tcp-порт и обращаться нему напрямую откуда угодно.
Да и перезагрузить в случает отсутствия ответа можно простым отключением питания порта – /system routerboard usb power-reset duration=5s

А как в микротике запустить gammu?
Или как в gammu обратиться к модему, который проброшен через ethernet?

Гамму понятно вы никак не установите в микротик.
По поводу обращения через порт я так делал, но сообщения отправлял через баш скрипт, не через гамму. Хотя полагаю, что она так скорее всего тоже может. Надо мануал читать

OpenWRT можно и на некоторые модели Микротика поставить, если нужно
В последних версиях ROS уже нельзя

На некоторые железки эти последние версии ещё попробуй поставить, тот же hap ac^2 у меня перестает загружаться на последних версиях ROS7, а искать самые первые, на которые когда то успешно прошивал — мне лень. Поэтому откатился через netinstall на long-term и пока не ухожу

Так ROS7 ещё в состоянии "глубокой beta", ее в принципе стоит ставить, чтобы просто посмотреть, а 6.48, к примеру, прекрасно работает на всем моем зоопарке оборудования

правильные модемы прекрасно понимают команду AT+CFUN=1,1 перегружаясь при этом исчезая и появляясь как устройство в системе
Проблема в том что если девайс хорошо завис то он уже ни на какие команды не реагирует, ему только передергивание питания поможет.
Еще добавлю если кто тоже будет использовать SIM800/900 — им очень важна стабильность питания. Причем не просто держать в определенном диапазоне, а не опускать ниже сколько-то милливольт за ту мили секунду пока идет ток 2А. В даташите на один написано, а на другой — нет.

А подскажете по SIM800C USB, что он из себя технически представляет, это тоже что и без usb, но с uart to usb на борту, или там что-то иное? Просто интересно можно ли добавив к SIM800L USB uart превратить его в usb модем?

Да, изначально я с этого и начинал свои тесты с sim800. Если вы к нему подключите usb/uart, то с ним можно начать общаться AT командами, соответственно это уже полноценный модем.

Один у меня именно такой:
Модем из Китая
_https://aliexpress.ru/item/4000012717101.html

Это просто модуль с uart и танталовым кондером.

если нужно промышленное решение, то smpp и что-то типа kannel. А через шлюз(описанное решение) — только опрос систем и оповещения админу.

uhubctl отлично перезапускает по питанию.

Можно и без него отправлять в /sys/bus/usb/drivers/usb/unbind сигнал на отключение хаба, или отдельного порта хаба, если модем перестал отвечать "OK" на тестовую команду (вроде бы AT, или AT+).
Отлично работало виде SystemD-юнита на CentOS7 (raspberry pi + d-link hub dub7 v2).


Собсно, команда
echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind
sleep 1
echo '2-1.1' > /sys/bus/usb/drivers/usb/bind
Это зависит от того, умеет хаб в управление питанием или нет. Малина видимо умеет.

где ж ты раньше был..

Ребят, у меня немного другой вопрос — посоветуйте такой девайс… У девайса 2 RJ-11, как у факса или dial-upмодема — запаралеллинные Line и phone. На Line вход приходит аналог, а из phone выхода уходит на обычный аналоговый телефон. Если при входящем звонке, скажем в течение 10 секунд никто не поднял аналоговый телефон на выходе «phone», то девайс через свою симку внутри набирает сотовый офис-менеджера, удерживая при этом входящий звонок на аналоге в режиме ожидания. Цель девайса — расширить функционал аналоговой офисной АТС, так чтобы звонки в случае отсутствия ресепшениста на месте уходили ему/ей (ресепшенисту) сотовый. Как такие девайсы по научному зовутся и где их можно купить?

Такие девайсы называются GSM gate. На офисной АТС настраиваете группу дозвона, в качестве одного из офисных телефонов подключаете gsm gate, который и будет пробрасывать звонок на мобилку.
Есть другой вариант — asterisk + fxo/fxs gate + gsm modem — можно получить более гибкий функционал, а в перспективе отказаться от аналоговой АТС. Лёгким этот путь не назовёшь, но возможности asterisk просто поражают — IVR, голосовая почта, конференции...

Дивайс называется аналоговый GSM-шлюз, пусть это будет «Sprut». Но нужно убедится что этот шлюз может дозваниваться по сотовой сети на указанный номер при входящем звонке по Line. Подключаем шлюз к внутренней линии\номеру и перенаправляем, средствами мини-атс, на него звонок по не ответу от секретаря.

Несколько лет назад как смс шлюз использовал старый андроид телефон и какую-то прогу с гугл плей, get запросом отправляем команду, sms отправляется, использовал для умного дома и nas. Потом телефон умер, а необходимость в уведомлениях отпала. Совсем недавно старенький Самсунг ушел на пенсию, попытался сделать его шлюзом, но уже не удалось найти ту чудесную прогу. На форумах советовали поставить termux, поднять NodeRED, и оттуда рулить отправкой sms. Но у меня андроид 5.0, а termux хочет овер 7.
1- кто-то встречал софт sms шлюзы для андроида?
2- а у кого какие тарифы? Я что-то не смог найти дешевле 50коп за sms, без абон платы.

Можно скачать архиный termux, будет работать на Android 5, почитайте здесь: www.linux.org.ru/news/android/15437169/page2. Кроме того в Termux можно дополнительно установить пакет apt install termux-api, а также необходимо установить дополнительное приложение (Termux:API), и тогда появятся команды termux-sms-inbox, termux-sms-list, termux-sms-send. Через них можно читать, принимать и отправлять СМС из bash, python и пр. скриптов.
Нашел в статье ошибку:
В примере аргумента replacemessages 1 написан следующий за ним рассмотренный аргумент flash
gammu -s 1 sendsms TEXT +70001234567 -unicode -autolen 5 -flash -replacemessages 1 -text «Тестовое сообщение»

P.S.: Написал первый комментарий, если я в чем-то ошибся, поправьте меня, пожалуйста.
Ну это ошибкой не является, просто этот аргумент мы рассмотрели позже

Оператор заблочит сразу, если сообщение будет шаблонное.
У меня дед имеет привычку отправлять всем поздравления с праздником с кнопочного телефона, так его оператор блокирует регулярно...

:)
Поэтому этот метод отправки хорошо подходит для двухфакторной аутентификации и подтверждении номера телефона — в сообщении только код и всегда разный

Спасибо за статью. Жду продолжения. Интересует прием и обрабодка СМС. Например сохранить данные из СМС в базу данных

Таким образом, если планируется отправлять сообщения, которые гарантированно должны быть доставлены и критичны к времени доставки, то SMS – это возможно лучший выбор.

Спорное утверждение. Начиная с того, что смс вообще не обязаны быть доставлены к времени и заканчивая всякими ограничениями на содержимое, когда тексты со ссылками, например не доходят вообще.
В том абзаце, где идет данное сравнение, рассматриваются именно глобальные различия. Если смотреть «в общем» на разницу между SMS и отправкой в мессенджеры, то SMS обладает доставкой с наибольшей гарантией. То есть если вы отправите SMS и сообщение в чат, что будет доставлено гарантированно, а что может поступить с задержкой?
Бывает, что сообщения в Telegram поступают с задержкой в несколько часов или вообще только по открытии приложения (из-за ошибок в ОС)

-flash это то, что во времена моей кудрявой молодости можно было проделать с простого телефона добавив #31# (кажется) перед текстом сообщения. Веселье было неописуемое.
На смену этому пришла софтина, как называлась уже не помню, может Clicker или Clicker SMS, но суть была в отправке смс на любой номер, а обратный номер можно указать любой, хоть написать вместо цифр буквами. 5 смс бесплатно, потом за деньги, но абуз регистраций и все такое спасали положение. Лет наверно 20 назад было, ну, может 18.

Если не ошибаюсь, то этим можно было баловаться вплоть до 2008 года, потом с переходом на смартфоны эта возможность пропала. Но я закончил где-то в 2001 :)
А теперь, самый интересный, на мой взгляд аргумент – "-flash".

Но самое главное – абонент не видит номер телефона отправителя в этом окне

Ну не знаю, у кого как:
image
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.