Каковы лучшие практики для построения сервера SMS
Я пытаюсь создать систему, в которой у меня есть терминальные узлы, способные отправлять / получать SMS-сообщения по сети GSM. Теперь мне нужно создать серверное решение, которое будет отправлять SMS-сообщения, выступая в качестве шлюза между веб-сервером, поддерживающим мою бизнес-логику, и клиентами (узлами). Общение в обоих направлениях. Я читал кое-что о готовых решениях для сервера SMS (которые, возможно, выступают в качестве шлюза GSM), но они оказываются слишком дорогими. Я думал о подключении мобильного телефона к моему серверу (а затем с использованием некоторых API-интерфейсов), но, возможно, мой сервер перейдет в дата-центр, в результате чего я ничего не могу подключить таким образом. Я не ожидаю иметь слишком много сообщений (например, 100 в день / в обе стороны). И я не планирую иметь слишком много клиентов (менее 100). Здесь я прошу общее системное решение (например, лучшую практику).
2 ответа
Существует три основных варианта построения такого сервера SMS:
1) Подключите мобильные телефоны или USB-флешки к серверу и используйте их для SMS-связи. Ограничения
Ограниченные объемы (однако ваши 100 SMS/ день должно быть хорошо).
Возможно, довольно ненадежный из-за потребительского оборудования (например, прошивка телефона / флешки не рассчитана на работу в режиме 24x7, вам может потребоваться регулярная перезагрузка устройств; большинству мобильных телефонов требуется батарея для работы, батареи разряжаются).
Возможно, не применяется в центрах обработки данных из-за правил RF и покрытия мобильной сети.
Схема мобильного номера ограничена SIM-картой MSISDN.
2) Подключите смс к сети операторов SMS-шлюза. Сетевые операторы используют их именно для этого сценария: массовая SMS-связь. Они являются частной собственностью и обычно говорят о "более простом" анализе протокола передачи сообщений. Ограничения:
Вы связаны с оператором сети, с точки зрения соединения и протокола.
Возможно, задержки в обмене данными, так как шлюз может выполнять сохранение и пересылку.
В зависимости от схемы ценообразования может иметь смысл только для больших объемов.
3) Подключите сервер SMS к сети операторов мобильной связи SS7, добавив его в качестве сетевого элемента. Ограничения:
Комплексная реализация. Требуется специальное оборудование (интерфейсная карта SS7) и драйверы для программирования.
Требуется нетривиальная интеграция сети с оператором сети, включая всестороннее тестирование.
Требуется линия E1/T1 (или больше, или SIGTRAN) для подключения. Обычно это центр обработки данных, но он доступен не в каждом центре обработки данных.
Дорого, с точки зрения схемы ценообразования и эксплуатации.
Предполагая, что я понимаю ваши требования, для вашего случая я бы выбрал вариант 1) и разместил сервер SMS там, где он имеет хорошее покрытие, то есть не обязательно в центре обработки данных. Продайте его в качестве центра для серверной инфраструктуры. Если необходимо поместить его в центр обработки данных, перейдите к варианту 2) и ознакомьтесь с предложениями оптовых поставщиков SMS-услуг.
Я использую пакет smstools в Linux для получения, разбора SMS-сообщений. В файле конфигурации вы указываете на внешний скрипт, который получает 2 аргумента (например, RECEIVED path-to-sms-file). Я анализирую смс с помощью perl. Другой вариант - Alamo SMS gateway, но у меня было много проблем с ним.