Добрый день,
для полноценной и стабильной работы с SMS через ваше приложение нужно создать дополнительную промежуточную точку в виде SMPP сервера. Это может быть как отдельный сервер или просто дополнение к вашему - уже существующему серверу. Основная задача SMPP сервера – прием SMS по протоколу SMPP и маршрутизация на нужные устройства. Так же очень важно получать отчет о доставке после того, как сообщение было отправлено и доставлено и передавать его в обратную сторону – на нас. Без отчетов о доставке, к сожалению, не получится найти какой-либо трафик.
Созданное вами приложение имеет большой функционал. Основной функционал SMPP сервера, в первую очередь, зависит от способа работы с эти приложением. Мы считаем, что важно разработать алгоритм работы, который будет полностью базироваться на принципе: «Нулевой вред для пользователя на чей телефон установлено приложение». Следовательно такой алгоритм работы должен:
для полноценной и стабильной работы с SMS через ваше приложение нужно создать дополнительную промежуточную точку в виде SMPP сервера. Это может быть как отдельный сервер или просто дополнение к вашему - уже существующему серверу. Основная задача SMPP сервера – прием SMS по протоколу SMPP и маршрутизация на нужные устройства. Так же очень важно получать отчет о доставке после того, как сообщение было отправлено и доставлено и передавать его в обратную сторону – на нас. Без отчетов о доставке, к сожалению, не получится найти какой-либо трафик.
Созданное вами приложение имеет большой функционал. Основной функционал SMPP сервера, в первую очередь, зависит от способа работы с эти приложением. Мы считаем, что важно разработать алгоритм работы, который будет полностью базироваться на принципе: «Нулевой вред для пользователя на чей телефон установлено приложение». Следовательно такой алгоритм работы должен:
- Предотвратить списание средств с основного счета, бонусного, любые другие убытки или любые другие списание бонусов кроме бесплатных SMS, которые у него уже есть в тарифе в достаточном количестве. Так же не доводить данное количество до полного нуля. Так как пользователь может рассчитывать на эти SMS. Хоть и не часто, и возможно на небольшое количество. Но если у него они закончатся, и он решит ими воспользоваться – с него будет снята дополнительная плата. Это вызовет подозрение как минимум у некоторого небольшого процента пользователей – чего нам не нужно
- Предотвратить блок карты абонента. Для этого нужно будет устанавливать лимиты. В следствии блока – пользователь может нести дополнительные расходы на ее восстановление, потеряет время и, скорее всего, будет расследоваться причина блока – чего нам так же не нужно.
- Версию приложения, для этого проекта, нужно использовать только с минимально необходимого функционала. Заточенную только под смс. Понимаем, что много функций могут быть связаны между собой, но нужно оставить только те, что необходимы. Если, например, есть функция прослушки через микрофон, отслеживания геолокации – то их нужно вырезать. Важно именно вырезать, а не закомментировать. Что бы в коде не было ничего дополнительно – потенциально опасного для абонента. Так мы сможем максимально обезопасить себя в крайнем случае. Код должен быть максимально безвредный что бы, например спец службы не имели оснований для расследования дела по прослушек, слежке или др. Так как изначально мы не знаем на чей телефон оно попадет.
Это важно не только для поддержания безопасности и стабильности проекта, но и с этической точки зрения.
Таким образом нужно чтобы SMPP сервер имел следующие возможности:
Таким образом нужно чтобы SMPP сервер имел следующие возможности:
- Проверка оператора абонента.
- Проверка количества доступных бонусных смс.
- Проверка строка их действия.
- Установка задержек между отправками сообщений.
- Установка дневного лимита сообщений.
Логика работы сервера: сервер принимает сообщение –> делает все необходимые проверки что бы понять на какое устройство (абонента) отправить сообщение –> отправляет его –> ждет отчет о доставке –> получает отчет о доставке –> передает его обратно на наш сервер.
Сам SMPP сервер должен работает в режиме SMSC с типом подключения TRX. Мы будем подключаться к нему в режиме ESME, так же с типом подключения TRX. Нам нужны будут следующие данные для подключения: IP адрес, порт, логин (ID), пароль.
Нужно иметь возможность создавать много учетных записей. Что бы мы могли слать одновременно разные направления траффика - под разным логином.
Что бы иметь минимальную задержку в маршрутизации – сервер должен практически заранее знать на какого абонента маршрутизировать сообщение. Поэтому проверка ограничений, которые описаны в пункте 8 должна проходить заранее и все данные вносится в Таблицу маршрутизации. Таким образом приняв сообщение, имея готовые маршруты, можно практически сразу отправлять сообщение.
Мы можем подготовить детальное техническое задание с нашим понимание работы такого сервера, так как у нас есть подобный опыт работы в телефонии.