что такое смс шлюз
SMS-Шлюз: что умеет и зачем нужен
Некоторые аспекты практического использования на живых примерах. В принципе, вещь для нормального абонента полезная, но фродовый потенциал перечеркивает все плюсы и наверняка является источником головной боли для операторов.
С потребительской точки зрения речь идет о компаниях-посредниках, позволяющих отправлять SMS-сообщения через интернет из удобного Web-интерфейса. Или, еще лучше, из специального приложения, существующего в версиях для компьютера и для смартфона. Очень желательно иметь возможность отправлять такие SMS как бы со своего номера телефона, принимать дубли входящих SMS тоже неплохо. Казалось бы, в чём проблема? В МТС есть сервис «SMS/MMS с компьютера», в МегаФоне есть «Портал сообщений SMS/MMS+» и универсальный UMS-портал. Удобство, разнообразный дополнительный функционал и существенная экономия денег (сообщения дешевле или бесплатны за небольшую абонентку). Однако сторонние «провайдеры» живут и, судя по всему, неплохо себя чувствуют. Почему?
История вопроса
Лет семь или восемь назад зарегистрировался в одном «забугорном» SMS-сервисе и даже оплатил какой-то минимальный SMS-пакет. По чьей «наводке» и зачем, за давностью лет уже не помню. Скорее всего, подкупила возможность отправлять сообщения на любые номера и в любые сети из удобного интерфейса клиента с адресной книгой, flash-SMS, отправка по расписанию и прочие мелкие радости, для тех времен необычные и отсутствовавшие в удобной форме у наших операторов. Плюс возможность указывать имя-фамилию или номер телефона в поле «отправитель», тоже интересно. Помню, в процессе освоения заслал одной вредной даме интригующее SMS с ее номером телефона в поле «отправитель», и она потом долго сама с собой переписывалась, недобрая получилась шутка.
В общем, попользовался, наигрался и забросил это дело. Авось, когда-нибудь пригодится остаток пакета. Через какое-то время попробовал — не работает, сайт тоже не открывается. Решил, что ребята собрали денежку и закрылись, или их прихлопнули за SMS-спам в международном масштабе. А тут спустя столько лет прислали email с логином и напоминанием о том, что давненько не заходил в гости, а сколько-то неотправленных SMS всё еще числятся на балансе. В свете нынешнего расцвета всякого мобильного и контентного мошенничества заинтересовался сервисом уже под другим углом зрения и решил посмотреть, как это функционирует сейчас.
Честно говоря, стало слегка неуютно. Опасная штука, и мало кто из неискушенных пользователей догадается о возможном подвохе. Главная цель материала — предупредить потенциальных «жертв», мошенники наверняка и так в курсе. И, возможно, подтолкнуть сотовых операторов к принятию каких-то мер и введению дополнительных ограничений. Судя по описанию, в ряде стран и у нескольких операторов такие ограничения есть и успешно действуют.
Как работает и цена
Регистрация без особых формальностей, единственный жестко привязанный к аккаунту параметр — номер мобильного телефона. Все платежи за «сервис» будут верифицироваться через этот номер, и поменять его после регистрации невозможно. Еще важна привязка к аккаунту email-адреса, но его можно легко сменить. Всё остальное «от балды», и, разумеется, паспортных данных никто не требует.
Открытого прайс-листа на сайте нет, но «методом научного тыка» (через процедуру оформления заказа) цена одного SMS-сообщения определилась на уровне порядка 1,65 руб. за штуку. Система явно «заточена» под рекламные SMS-рассылки и для таких целей дорога, российские рассыльщики SMS-спама просят за свои «услуги» заметно меньше. Принцип работы, скорее всего, аналогичный, но у отечественных спамеров куда больше ограничений на содержимое поля «отправитель».
В детализации разговоров никаких Vas.Pupkin и прочей экзотики мы не увидим. Вне зависимости от букв или цифр, подставленных в поле «отправитель», в детальке будет телефонный номер SMS-шлюза одного из операторов страны получателя сообщения. К сожалению, абонент об этой тонкости узнает только в процессе финансовых «разборок» с оператором.
Предлагается программа-клиент для компьютера и Java-клиент для смартфона, это всё. Java-клиент не пробовал, а PC-клиент аскетичен, но достаточно функционален. Адресбук с возможностью импорта/экспорта контактов, шаблоны, групповые рассылки, рассылки по расписанию, flash-SMS и т. п. В том числе несколько сообщений в «склейке», поддержка unicode (русский язык) и подтверждения доставки сообщений адресату.
Возможные сценарии
Вариантов использования — море разливанное, только фантазируй. Современные реалии таковы, что SMS-сообщения повсеместно используются в качестве инструментов информирования и подтверждения. Получив SMS со знакомого номера или от известного отправителя, мало кто усомнится в подлинности сообщения. Несколько сценариев из тех, которые очевидны и первыми пришли в голову.
SMS в другие страны. Наши сотовики настолько взвинтили цены на «дальние» SMS, что сообщение в другую страну дешевле 2 руб. уже кажется откровенной дешевкой. Хотя, ведущие активную переписку уже наверняка пользуются мессенджерами и приложениями для социальных сетей.
SMS в роуминге. Пока еще далеко не все перешли на всякие WhatsUp, и общение через SMS сохраняет актуальность. Но для отправки таких SMS нужен интернет, а при его наличии можно организовать переписку удобнее и дешевле. Так что, и здесь потребительская ценность присутствует, но не бог весть какая ценность.
Отправка SMS от своего имени или названия компании. В качестве корпоративного варианта может быть интересно, но смущает «зыбкость» сервиса. Сегодня работает, а через месяц всё отключили и пожаловаться некому. Для мало-мальски уважающей себя компании неприемлемо. Для личного пользования (имя-фамилия) внешне эффектно, но весьма непрактично, так как на такую SMS невозможно ответить.
«Шуточки». Весьма неприятный функционал для тех, кто окажется в роли пострадавших. Зная номера телефонов «жертвы» и людей из ее окружения (коллеги, семья), можно как минимум потрепать человеку нервы. Как максимум — изрядно нагадить ему по работе и в личной жизни.
«Ошибочное пополнение счёта». Очень популярный вид мошенничества, при котором вам сперва шлют фальшивую SMS о якобы поступивших на баланс деньгах, а потом звонят и просят вернуть «ошибочный платеж» переводом денег на другой номер. Я не раз писал о том, что нужно смотреть на то, откуда пришло SMS о поступивших деньгах, мошенники обычно шлют их с обычных номеров. Однако регулярно читаю о ситуациях «реального» пополнения счёта с последующим исчезновением денег. Предполагалось, что мошенник пополняет баланс «жертвы», затем сразу же пишет заявление об ошибочном платеже, забирает деньги и начинает звонить «жертве» с просьбой «вернуть ошибочный платеж». Теперь подозреваю, что во многих случаях никаких платежей-заявлений не было, а вместо всей этой мороки — двухрублевая SMS с подстановкой нужного имени отправителя, см. скриншот выше.
Финансово-банковские мошенничества. Например, популярная схема с SMS-сообщением «Ваша карта заблокирована, позвоните оператору». Некоторые наивные люди «ведутся» на такой «развод» даже при получении подобного SMS с обычного номера, а если отправителем будет значиться название солидного банка или короткий номер, с которого всегда приходят банковские SMS? Наверное, найдется еще «вагон и маленькая тележка» способов употребить для воровства этот «полезный сервис» подмены номера отправителя.
Контентные мошенничества. Здесь тоже вариантов хватает. Из очевидного — отправка «пригласительного» SMS как бы c номера контент-провайдера, см. скриншот выше. Народ нынче стал осторожнее, уговорить человека отправить SMS на короткий номер удаётся всё реже. А к ответам на входящие SMS люди относятся куда спокойнее, хотя, по сути и последствиям, такой ответ ничем не отличается от отправки «нового» SMS-сообщения.
Кстати, хотел бы я посмотреть на последующие «бодания» обманутого абонента со службами поддержки оператора и контент-провайдера. В детализации никаких входящих SMS с короткого номера не обнаружится, а сохранившаяся в телефоне SMS — не аргумент. Даже если вы позаботились эту SMS сохранить.
Социальные мошенничества. Традиционные звонки и SMS вида «Мама, я сбил человека, срочно нужны деньги откупиться!» по-прежнему иногда действуют на впечатлительных людей даже при отправке с «левых» номеров. А если пришлют SMS с «правильного» номера? И напишут что-нибудь вроде «Сбил человека, телефон сейчас отберут, звони следователю по номеру. »?
Резюме
Я, конечно, знал о возможности подмены информации в поле «отправитель». Но не думал, что это сейчас настолько легко и дешево осуществить. Причем не только для массовых спам-рассылок, но и в индивидуальном порядке. Увы, традиционные заклинания на тему «смотрите номер отправителя!» в таких случаях не помогут.
Бороться с подобными «сервисами», наверное, можно. Но бороться должны операторы, мы с вами ничем посодействовать не сможем. Разве что лишний раз напомнить о существовании проблемы. Беда в том, что 99,9% абонентов свято верят в то, что с SMS с короткого номера 900 может быть только от Сбербанка, а пришедшее с номера Васи Пупкина SMS было отправлено именно Васей. Единственное, что можно посоветовать — будьте бдительны и знайте о возможности такой подмены.
Отправка и приём SMS сообщений с помощью VoIP шлюзов GoIP и Yeastar
Так как мы занимаемся продажами VoIP оборудования, к нам часто обращаются с различными техническими вопросами. Иногда доходит до того, что клиенты просят примеры кода на конкретных языках программирования. Работа с SMS и интеграция их в бизнес процессы — как раз один из таких регулярных вопросов, поэтому и хочется остановится на нём и рассмотреть более подробно.
Почему GoIP и Yeastar
В действительности, я бы хотел рассказать еще и про OpenVox, но на хабре уже есть статья именно про их шлюзы, да и в наличии на момент написания этого материала их не было. Так же подобные шлюзы делает Dinstar, но обращений по этим шлюзам у нас так катастрофически мало, так что их я решил тоже не рассматривать.
GSM шлюзы GoIP производятся в Китае под брендами нескольких компаний и относятся к низшей ценовой категории, отчасти поэтому они самые популярные. Всё нижеописанное мною применительно к GoIP 4 фирмы DBL, в теории оно же должно работать и на шлюзах Hybertone, но ручаться за это не буду, так как возможны отличия в прошивках.
▪ Web интерфейс
Самый простой способ отправить SMS — это зайти на страничку шлюза, выбрать раздел Send SMS, указать линию, с которой необходимо отправить сообщение, номер получателя и непосредственно текст сообщения. Вариант простой, но годится разве что для теста, не более того. Однако есть возможность отправлять смски с помощью GET и POST запросов.
Для типа GET используем запрос вида:
http://192.168.1.190/default/en_US/send.html?u=admin&p=admin&l=1&n=89991234567&m=test
Отправка с помощью POST запроса — это тоже самое, что отправка через форму в web интерфейсе, отличается тем, что мы сами должны указывать индификатор SMS, в определенных случаях это может быть удобнее. Так же через POST мы можем отправить USSD запрос, что тоже может быть полезно.
Простой пример на perl с использованием фреймворка Mojolicious:
Для отправки USSD придется немного изменить запрос:
Для получения результата придется делать отдельный GET запрос статуса сообщений.
→ Статус сообщений
Отслеживать статусы необходимо хотя бы потому, что мы можем попытаться отправить сообщение в момент, когда линия занята отправкой другого сообщения и, как результат, ничего не выйдет. Плюс к этому, разработчики GoIP не стали заморачиваться с созданием отдельного средства получения результатов USSD запросов, а просто пишут их в виде расшифровок ошибок.
Статусы отправлений можно отслеживать по адресу:
http://192.168.1.190/default/en_US/send_status.xml?u=admin&p=admin
В ответ мы получим XML, в которой отображается статус одного последнего отправления на канал, у меня под рукой был GoIP 4, а у него единая прошивка с восьмым, поэтому в статусах 8 каналов, хотя физически их было 4:
▪ Протокол SMPP
SMPP (Short message peer-to-peer protocol) – специальный протокол, используемый для передачи SMS и USSD сообщений между клиентом и сервером. Это, наверное, единственный «нормальный» способ получать сообщения. Да, в web интерфейсе отображаются последние пять сообщений для каждого канала, но вариант периодически лезть на него и проверять, не появилось ли что то новое, я не могу отнести к адекватным.
Простейший пример получения сообщений с использованием библиотеки Net::SMPP :
С отправкой такая же история, если необходимо отправить SMS с конкретной SIM карты, то подключаемся с id нужного канала:
Параметр | Описание | Значения |
---|---|---|
Тип номера отправителя | 0x00 — Неизвестный (Unknown) 0x01 — Международный (International) 0x02 — Государственный (National) 0x03 — Сетевой Специальный (Network Specific) 0x04 — Номер Абонента (Subscriber Number) 0x05 — Алфавитно-цифровой (Alphanumeric) 0x06 — Сокращенный (Abbreviated) | |
source_addr_npi | Идентификатор плана нумерации отправителя | 0x00 — Unknown 0x01 — ISDN (E163/E164) 0x02 — Data (X.121) 0x03 — Telex (F.69) 0x04 — Land Mobile (E.212) 0x05 — National 0x06 — Private 0x07 — ERMES 0x08 — Internet (IP) 0x09 — WAP Client Id (его должен определять WAP Forum) |
dest_addr_ton | Тип номера получателя | 0x01 — Международный (International) |
dest_addr_npi | Идентификатор плана нумерации получателя | 0x01 — ISDN (E163/E164) (для номеров) 0x02 — National (для остального) |
data_coding | Определяет схему кодировки пользовательских данных короткого сообщения | 0x01 — IA5(CCITT T.50)/ASCII (ANSI X3.4) латинский алфавит 7 бит на 1 символ максимальная длина одного сообщения 160 символов 0x07 — Latin/Hebrew(ISO-8859-8) латинский алфавит 8 бит на 1 символ максимальная длина сообщения 140 символов 0x08 — UCS2(ISO/IEC-10646) для национальных алфавитов (например, русского) максимальная длина сообщения 70 символов |
Yeastar
Родина Yeastar, так же как и у GoIP – Китай, хотя, как мне кажется, в Yeastar стараются делать устройства с большей претензией на качество и удобство использования, чем их конкуренты. Это касается как физического, так и программного исполнения. Но и у них бывают огрехи. Так, например, документация не всегда поспевает за изменениями в новых прошивках, а в отдельных случаях в ней могут отсутствовать важные моменты.
▪ Web интерфейс
Отправлять и принимать сообщения можно через web интерфейс, в общем то, это стандартный способ для подобных железок. В шлюзах Yeastar этот интерфейс чем то отдаленно напоминает простенькие почтовые web морды — «папочки» Inbox и Outbox с незатейливыми фильтрами и поиском. В любом случае, это на голову выше чем то, что есть в GoIP, а главное хранятся не последние пять входящих сообщений для каждого канала, а значительно больше. Только, к сожалению, не понятно сколько, опять же в datasheet про это нет ни слова.
Так же как и в большинстве подобных железок, отправить сообщение можно с помощью GET запроса, что в общем не удивительно, это один из самых простых способов интеграции. Естественно, у Yeastar своя реализация со своими особенностями.
Для начала надо включить возможность отправлять SMS сообщения и USSD запросы. Для этого необходимо активировать «API Settings», если вы предпочитаете интерфейс на русском языке, то данный раздел будет называться «Настройки AMI» (правда очень логично?). Во вторых, необходимо поменять пароль по умолчанию, пока этого не сделаешь, авторизация не проходит, об этом опять же ни слова в документации.
После этих манипуляций мы можем использовать запросы для SMS и USSD соответственно:
Коротко о параметрах:
Главное отличие от GoIP: при отправке SMS с Yeastar нет необходимости контролировать занят канал или нет, наше сообщение ставится в очередь и как только канал освобождается оно будет отправлено. А с USSD запросами работа происходит синхронно, т. е. ответ мы получаем сразу и нет необходимости его где то потом искать. Минус только в том, что ответы нам приходят в виде plain text, а хотелось бы что то более подходящее: JSON или XML.
▪ Asterisk Managment Interface
Вся линейка шлюзов Yeastar построена вокруг Asterisk (программный сервер IP-телефонии от компании Digium), поэтому поддержка такого специфического протокола как SMPP отсутствует. Зато есть родной для Asterisk’a протокол AMI, работать с которым достаточно просто.
Для начала посмотрим как принимать сообщения:
Так же через AMI мы может отправлять SMS и USSD запросы:
По USSD думаю всё понятно, только не забываем, что каналы нумеруются с двойки. А по SMS есть небольшое уточнение: если нам судьба сообщения безразлична и статус отслеживать не надо, то после текста сообщения можно ничего не указывать. В противном случае, необходимо указать уникальный индификатор. Тогда, когда судьба смски станет известна, система отправит нам сообщение о её состоянии. Что-то такого вида:
В качестве заключения
Лично мне было бы удобнее работать со шлюзом Yeastar TG400 через AMI. С другой стороны, я не вижу каких-то больших проблем и в случае использования GoIP. О чем я сознательно умолчал: у каждого из производителя есть бесплатный программный SMS сервер, в случае GoIP чтобы его использовать потребуется PHP, Apache и MySQL, а в случае Yeastar – Windows. Подобные продукты больше подходят для рассылки одинаковых сообщений по заранее подготовленным базам номеров, а не интеграции с какими-то приложениями. Это и есть причина, по которой я их пропустил. Если кому-то интересно, на сайтах производителей должны быть соответствующие описания.
Где взять смс-шлюз?
Интересно получение федерального номера, с которого можно будет своим контрагентам:
-как отправлять сообщения,
-так и принимать сообщения сообщения от них,
по удобному интерфейсу.
У опсосов это реализовано, например через обычный http протокол, с возможностью принимать и отсылать смски по нему. Но что бы такую штуку даже только пощупать, нужно сперва заплатить за подключение, деньги, причем на мой взгляд немалые.
Есть такое вообще на планете земля, бесплатно? И где достать? 🙂
Уж очень не хочется юзать GSM-модемы.
Оценить 1 комментарий
Вы видели сколько это денег ТОЛЬКО за подключение? 🙂
Какие-то нереальные 200 + тысяч, только за Возможность начать принимать смс-ки.
И это маленько в ступор меня загоняет, т.к. пишу сервис с использованием смс-приема.
Как я его напишу, если мне нельзя бесплатно его протестировать?
Большинство(или все) коротких номеров рассчитано на то, что я с людей хочу снять денег.
Нет. Мне важен только инструмент приема от них сообщений и информирования их же.
Если со вторым более-менее существуют вменяемые решения, то насчет первой потребности — я их не видел.
Операторы очень редко предоставляют федеральные номера для принятия премиум и непремиум СМС.
Это связано с очень многими причинами (как некоторые технические нюансы, так и нюансы связанные с обслуживанием абонентов).
Поэтому выходов у Вас два:
— создать сервис на базе модема/ов (или арендовать такой промышленный сервис (есть у многих поставщиков, у того же Девино, гуглить по словосочетанию Sim hosting)
— арендовать короткий номер у всех операторов, или у агрегаторов (дешевле будет даже не номер, а отдельный префикс, при этом принимать сообщения будете по http от агрегатора, а отправлять сможете как через агрегатора, так и через внешние шлюзы)
Что такое смс шлюз
Когда дело доходит до установки смс-шлюза, всегда возникает проблема выбора: как лучше его внедрить, какие опции нужны, а какие нет, чем отличаются сервисы друг от друга и где там вообще собака зарыта. И чтобы вам не пришлось погружаться в пучину информации про протоколы, подключаемые модули или какие-то там альфанумерические имена, мы всё сделали сами — вам только прочитать осталось 🙂
Как это работает
Смс-шлюз отправляет сообщения абонентам без использования мобильного устройства. Шлюз связывается центром отправки сообщений операторов связи, преобразует текстовые сообщения в нужный формат (протоколы отправки и принятия сообщений могут не совпадать) и направляет смс абонентам.
Некоторые шлюзы умеют преобразовывать текст в голосовое сообщение, чтобы отправить его на стационарные телефоны, — если вам хоть раз звонил робот и напоминал о какой-то задолженности, вы знаете, как это звучит 🙂
Как установить
Бывают разные способы для внедрения шлюза — выбор зависит от ваших задач:
API (application programming interface) — интерфейс для подключения любого программного обеспечения с опцией отправки SMS (будь то сайт, CRM-ка или другие модули для обработки клиентов).
Протокол E-mail2sms — пересылает сообщения с электронного адреса на мобильные телефоны, преобразуя их в смс-ки. Текст выглядит примерно так: [SENDER]имя отправителя[/SENDER][SMS]текст SMS-сообщения[/SMS], а в адресной строке указываются номера телефонов через запятую.
OMS протокол (MS Outlook и MS SharePoint) — компонент обмена сообщениями для продуктов Microsoft, начиная с версии 2007. Пересылает текстовые сообщения из Outlook вместе с элементами (сообщения электронной почты, собрания и контакты) в смс, переводит предупреждения из SharePoint на мобильные телефоны.
Также существуют различные виды протоколов, работающих поверх http/https — SOAP, JSON, XML, SMPP-сервер — более сложные системы, где требуется соблюдать кодировку и прописывать особые параметры.
Требования к отправляемым сообщениям
Имя отправителя
Имя отправителя — набор букв и символов, которые увидит абонент при получении смс. Бывает цифровым (отправка по цифровому каналу) и буквенным (по прямому каналу) — разница есть.
Прямой канал
На прямом канале сообщения направляются каждому оператору отдельно — это дает гарантию доставки и возможность использования своего имени отправителя: оно может содержать цифры, буквы и знаки препинания — до 11 символов. В качестве подписи можно использовать электронный почтовый адрес, адрес сайта или название компании — для этого придётся предоставить подтверждающий документ: например, свидетельство о регистрации.
Ваша подпись не должна копировать подписи банков, сотовых операторов, чужих брендов и интернет-ресурсов, а также государственных организаций. Запрещено использовать подписи оскорбительного и унижающего характера, а также номера сотового или городского телефона. И да, подписей отправителя может быть несколько, но за каждую придётся платить отдельно.
Цифровой канал
Здесь в подписи — обычный номер телефона. Такой тип рассылок считается негарантированным, поскольку сообщения отправляются через одного оператора на всех остальных, и можно получить ложный отчёт: сообщение на другого оператора вроде бы «доставлено», а по факту нет. Вдобавок сотовые операторы жёстко фильтруют подобные рассылки, так что далеко не все клиенты из базы получат то, что вы хотели им отправить.
Вариант экономный (тарифы на сообщения дешевле) и подходит, например, для массовых рассылок сервисных сообщений.
Другие каналы
Некоторые сервисы предлагают также сервисные и инфо-каналы. Для сервисных сообщений существуют утвержденные шаблоны, где меняются только номера заказов, имена клиентов или время доставки. При рассылках по инфо-каналу абоненту придёт сообщения от отправителя вроде SMSinfo — канал также подходит для сервисных сообщений, но его использование может омрачиться незначительными задержками по доставке.
Длина сообщения
По международному стандарту длина одной СМС составляет 70 кириллических и 158-160 латинских символов. Если объём СМС превышает норму, сообщение делится на сегменты: первое сообщение 70 символов, последующие — 69.