Рассылка смс через gsm модем
Давно обещанный «интернет вещей» не так далек, как может показаться. Правда, футуристические статьи, рисующие напичканную датчиками технику, редко касаются одного важного вопроса: каким образом информация с этих датчиков достигает сервера? Если они находятся в доме — это одно дело. А если датчики установлены, скажем, на грузовом автомобиле или вообще в чистом поле? Ответ есть: зачастую информацию с датчиков собирает специальный контроллер, который затем передает ее на сервер по СМС. Тут, впрочем, возникает другой вопрос: как построить сервер, способный взаимодействовать с такими устройствами?
СМС и набор команд Hayes
Современная мобильная связь только кажется вещью в себе. Если смотреть на нее с верной точки зрения, быстро выясняется, что у навороченных смартфонов немало общего со старенькими «Курьерами» и «Спортстерами». И те и другие поддерживают так называемый набор команд Hayes.
Ветераны индустрии помнят замысловатые инициализационные строки, которые приходилось скармливать модему перед подключением к BBS или узлу Фидо. Каждая такая строка — это примитивная программа, составленная из команд Hayes для настройки модема.
Модем Hayes Smartmodem, для которого в 1981 году была разработана система команд Hayes, развивал скорость до 300 Бод
Модемы, для которых была разработана первая версия набора команд Hayes, не отличались богатыми возможностями. Кроме настроечных команд, имелись команды, которые позволяли набирать телефонные номера, устанавливать соединение, а затем вешать трубку.
За прошедшие с тех пор тридцать пять лет многое поменялось. Расширенный набор команд, который используется сегодня, фактически можно рассматривать как своеобразный программный интерфейс (API), при помощи которого можно управлять мобильным телефоном.
Каким образом это сделать? Сначала необходимо подключить GSM-устройство к компьютеру. Для автоматического обмена СМС удобнее взять не смартфон, а сотовый модем: он не нуждается во взломе, дешевле стоит и не требует проводов. Подойдет обычный 3G-модем, купленный в ближайшем салоне связи за тысячу рублей.
Перед использованием модема или смартфона на компьютер должны быть установлены необходимые драйверы. А вот софт для выхода в интернет, который часто прилагается к модемам, для нашей задачи не только не потребуется, но даже вреден. Если он захватит доступ к устройству, мы не сможем до него достучаться. Вместо этого нам потребуется UNIX-совместимая ОС и минимальное умение работы с командной строкой.
Первым делом наш путь лежит в каталог /dev/. Где-то в его недрах прячется файл подключенного устройства. Говорящее имя поможет идентифицировать его если не напрямую, то методом исключения. 4G-модем «Мегафон M100-4», использованный автором для опытов, обнаружился на пути /dev/tty.HUAWEIMobile-Pcui. Попробуем связаться с ним при помощи утилиты screen.
Теперь можно узнать, что же мы нашли. Для получения информации об устройстве служит команда ATI. Ответ следует немедленно:
Большинство устройств принимают команды в одном из двух режимов. По умолчанию, как правило, включен режим PDU (Protocol Data Unit), который требует указывать аргументы в цифровой форме. Чтобы не разучивать еще один шифр, лучше перейти в текстовый режим. Для этого служит команда AT+CMGF=1 (нулевое значение вернет устройство в режим PDU).
Поддерживает ли наше устройство этот способ? Это можно проверить при помощи команды AT+CSCS=?
Ответ модема содержит список поддерживаемых режимов кодирования. Режим GSM здесь соответствует чистому семибитному ASCII. IRA нам тоже не поможет — это так называемый International Reference Alphabet, малоизвестная международная разновидность ASCII. А вот UCS2, один из ранних вариантов UTF-16, — это именно то, что нужно. Стоит заметить, что иногда подходящий вариант, подразумевающий замену символов Unicode шестнадцатеричными цифрами, называется HEX, — все зависит от модели и производителя.
Теперь следует активировать нужный режим:
В некоторых случаях для работы с кириллицей может понадобиться настройка DCS — схемы кодирования данных. Для этого служит команда AT+CSMP. Значение четвертого аргумента должно быть равно восьми:
Теперь можно отправлять:
Gammu и Gammu SMS Daemon
До сих пор мы общались с модемом в интерактивном режиме при помощи терминала. На практике это взаимодействие должно быть полностью автоматизировано. Это не проблема: открыть файл /dev/tty.HUAWEIMobile-Pcui программно ничуть не труднее, чем любой другой. Трудность может состоять в другом. Если планируется поддерживать более одной модели модема, придется разбираться в особенностях и капризах каждой.
Непосредственное управление при помощи команд Hayes — это хороший вариант, когда модем один, его модель известна, тонкости никого не волнуют, а все взаимодействие можно описать парой-тройкой строк кода. Когда запросы выше, стоит обратить внимание на одно из готовых средств для работы с телефонами и модемами.
В этом случае может подойти набор утилит командной строки Gammu — развитие известного в прошлом проекта Gnokii, избавленного от, увы, устаревшей ориентации на продукцию Nokia. Список поддерживаемых Gammu телефонов и GSM-модемов не ограничивается устройствами одного производителя. В нем, впрочем, все же имеются пробелы, поэтому вопросами совместимости лучше озаботиться заранее.
Gammu позволяет извлекать списки принятых и инициированных звонков, открывать телефонные соединения и управлять ими, просматривать телефонные книги, изучать информацию о телефоне и сотовой сети и многое другое, вплоть до работы со встроенным FM-приемником. Разумеется, прием и отправка СМС и MMС тоже входит в список умений этой программы.
Для установки Gammu под OS X следует воспользоваться командой brew install gammu (требуется пакетный менеджер brew). Под Linux поможет apt-get install gammu gammu-smsd или ее эквивалент для другого пакетного менеджера. Пользователям Windows придется отыскать и скачать инсталлятор на сайте проекта.
Работа с Gammu начинается с настройки. Проще всего это сделать при помощи утилиты, которая запускается командой gammu-config. Она поинтересуется «портом» (в нашем случае сюда попадает уже знакомый путь /dev/tty.HUAWEIMobile-Pcui), типом и скоростью соединения, моделью (если ничего подходящего нет, стоит выбрать at — в этот тип входит любое устройство, поддерживающее набор команд Hayes) и запросит несколько менее интересных деталей. Введенная информация будет сохранена в настроечном файле
/.gammurc, который при необходимости можно отредактировать в любом текстовом редакторе.
Настройка Gammu
Здесь тоже возможны проблемы с кодировками, но их решение проще и прямолинейнее. Чтобы русский язык не вызывал у Gammu паники, в системе должна быть верно настроена локаль и язык. Для этого в OS X и Linux стоит добавить в инициализационный файл (например,
/.bash_profile) следующие строки:
Нередко вместо выполнения команды Gammu жалуется на проблемы. Ошибка «Error opening device. Unknown, busy or no permissions» может свидетельствовать о том, что соединение с модемом захватила какая-то другая программа. Возможен и другой вариант: GSM-модемы, как оказалось, не отличаются крепкими нервами и под градом команд склонны виснуть. Чтобы привести их в чувство, устройство приходится вытаскивать из порта USB и затем втыкать снова.
Интернет-шлюзы СМС
А именно: решил я замутить систему оповещения себя любимого обо всех неприятностях, произошедших в конторе в мое отсутствие. Звеном для построения этой системы стала программка, которую я решил выложить здесь: на случай, что может кому-нибудь пригодится.
Настройка программы
Настройка программы очень проста.
1. Подключаем к компьютеру GSM-модем или сотовый телефон, ждем, пока установятся драйверы, если они небыли установлены.
2. Запускаем программу SMSSender, нажимаем кнопку с троеточием возле поля «Модем»
3. В открывшемся окне выбираем нужный нам модем (на случай, если их будет несколько)
4. Далее, заходим на закладку «Настройки» и нажимаем кнопку «Тест модема». Если все нормально, то появится окно «Тест прошел успешно», с текстом ответа модема. В некоторых случаях придется порулить настройками порта, но обычно это лишнее.
После настройки программы и нажатия кнопки «Сохранить и закрыть», окно программы закроется, а настройки будут сохранены. Теперь можно приступать к использованию. Внимание! Закрытие окна программы кнопкой-крестиком не сохраняет настройки!
Использование программы
Второй режим работы программы – с параметрами командной строки. В данном режиме тоже нет ничего сложного: указываем программе параметры и наслаждаемся. Окно программы при этом не появляется, она сама закрывается после окончания работы.
Допустимые параметры командной строки:
Вместо символа «–» можно использовать символ «/»
Вот несколько примеров:
В общем, все просто.
В общем, программа проста как 3 копейки. Может, кому пригодится.
Функционал, при желании, можно расширить, если кому-то понадобится – пишите в комментариях.
Обновлено 19.08.2011
Выложил вторую версию программы. Главное новшество: программа теперь может отправлять длинные SMS (больше 160 символов латынью или 70 символов кириллицей). Кроме того, добавлена возможность вместо имени модема указать непосредственно com-порт, на котором висит модем. На тот случай, если у кого-то программа сама найти модем не сможет.
Необходимо для осуществления данной задачи следующее:
- Собственно 3G USB модем (МТС, Мегафон,Билайн и т.п.)
- Программа для отправки СМС - CMD2PHONE (это бесплатная программа, смотри в файлах для скачивания)
- Любая конфигурация 1С - для того чтобы можно было отсылать информацию с данными (к примеру выручки по компании, что, к примеру я и делал)
Для того чтобы можно было отправлять СМС - подключим модем к компьютеру, с которого будет происходить отправка СМС и доступ к базе 1С (повторюсь любая конфигурация).
Найдем на каком порту находится модем -
Далее находим на каком порту определился Модем-
Предложенная обработка (для скачивания) является примером, как можно отослать СМС, т.е. данные для отправки можно сформировать как угодно, для этого откройте обработку и в форме измените COM-Порт на необходимый (в примере на картинке это COM-Роrt 5).
ТекстСМС можно сформировать из данных 1С (к примеру выручка за день):
Специальные предложения
ещё вопрос не пытались настроить на сервере 1С ? (7) smir, В данной реализации нет возможности принимать, я как то не интересовался данным вопросом, хотя это интересно, попробую реализовать по возможности.
А что значит Да чтоб можно было на вин2008 и на серверной архитектуре, чтобы сделать регламентными заданиями.
Ну а принимать интересно тем, чтобы сотрудники могли общаться с 1С смс-ками :) (9) smir, ну к примеру у меня сейчас вообще крутится на отдельной машине и через стандартные назначенные задания в винде xp открывается 1с формируется выручки по компании и отсылаются по назначенным номерам каждый час.
Я просто всякую бяку на сервак не ставлю, но а так думаю не проблема и на винде 2008 замутить модем же там определяется и программа для отправки смс (есть во вложении) думаю тоже будет работать без проблем
Просмотры 34749
Загрузки 115
Рейтинг 15
Создание 07.05.13 08:30
Обновление 07.05.13 08:30
№ Публикации 185476
Конфигурация Конфигурации 1cv8
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
См. также
Мульти рассылка СМС из 1С для типовых и нетиповых конфигураций, на управляемых и обычных формах Промо
1 стартмани
03.02.2015 48454 434 Diversus 103
Сервис SMS-рассылок PROSTOR-SMS для конфигурации 1С:SPA салон & 1С:Фитнес клуб
1 стартмани
25.10.2021 683 1 kiko_r 0
Отправка SMS через оператора Теле2
Расширение добавляет в список операторов Теле2, и позволяет отправлять СМС через этого оператора.
2 стартмани
19.07.2021 1390 2 user1393353 0
[Расширение] Активация дисконтных карт через СМС-подтверждение для УТ11
Расширение добавляет механизм смс-подтверждения при выдаче дисконтной карты
1 стартмани
28.06.2021 1695 1 Nonik 0
SMS - сервис в 1С, управляемая форма Промо
1 стартмани
13.03.2017 23393 9 dmv78 0
Mobile Broadband SMS Toolkit
Операционная система: Windows 7/8/10.
Текущая версия программы: 1.1.0.14
Программа «Mobile Broadband SMS Toolkit», далее «Программное Обеспечение» предоставляется «как есть», Вы пользуетесь им на собственный риск. Автор не предоставляет никаких других прямых и/или косвенных гарантий или условий. Лицензия на использование Программного Обеспечения предоставляется безвозмездно для использования только в личных целях.
Вы вправе установить и использовать Программное Обеспечение одновременно на неограниченном числе компьютеров.
Если у Вас есть какие либо отзывы, пожелания по дополнительным функциям и/или отчёты об ошибках то… You are Welcome… :-)
Небольшой FAQ:
USSD ответ от оператора отображается иероглифами вместо кириллицы
В случае, если USSD ответ от оператора отображается иероглифами вместо кириллицы, то производим клик правой кнопкой мышки (или длительное удержание в случае планшета) на заголовке окна и далее переключаем в контекстном меню пункт "UCS2 bytes order" на противоположный:
USSD запросы в Windows 7
USSD запросы не поддерживаются в Windows 7
USSD и LTE
Стандарт LTE сам по себе изначально не предназначен для голосовых вызовов, а предназначен только передача данных.
А USSD запросы как таковые (упрощённо говоря) по своей сути - это служебный канал в голосовом трафике.
Любой телефон при исходящем или входящем звонке переключается с LTE на GSM.
Соответственно, если модем заблокирован на использование только LTE технологии (с помощью данной программы или другими инструментами), то USSD запросы также не будут работать в этом случае.
Как увидеть уровень сигнала в dBm ?
Чтобы увидеть уровень сигнала в dBm нужно два раза щёлкнуть мышкой (или топнуть по тачскрину) по иконке уровня сигнала в строке статуса.
При желании увидеть уровень в dBm сразу после старта программы, в настройках программы, в разделе Network, устанавливаем галочку на "Show signal strength".
Читайте также: