Разработать SMPP-сервер с поддержкой HTTP API в сторону аплинка
Задача:
Клиент(ы) более 10 шт. должны подключаться к SMPP-шлюзу по протоколу SMPP 3.4.
Задачи шлюза:
0) Поддерживать протокол SMPP;
1) Принять PDU от клиентов;
2) Записать PDU в БД;
3) Отправить клиенту submit_sm_resp;
4) Вызвать "сторонний сервис А" по API, передать в него номер получателя;
5) В случае положительного ответа:
вызвать "сторонний сервис Б" по API, передать в него номер получателя с текстом СМС;
В противном случае
передать клиенту сообщение deliver_sm (для каждого клиента должен формироваться свой код ошибки, назначается на каждого клиента)
6) После того, как "сторонний сервис Б" вернет положительный ответ, передать клиенту сообщение deliver_sm с успешным кодом отправки, в противном случае передать клиенту сообщение deliver_sm (для каждого клиента должен формироваться свой код ошибки, назначается на каждого клиента)
7) Логировать все входящие и исходящие события;
8) Метрики всех входящих/исходящих событий по каждому клиенту (Prometeus);
9) Иметь возможность назначение окна Window Size для каждого клиента
10) Иметь возможность заведения клиента (src IP, логин, пароль)
11) Иметь возможность ограничения количества сообщений в сутки/в час/в месяц на каждого клиента;
12) Иметь возможность назначение максимального количества сообщений, принимаемых от клиента;
13) Иметь возможность назначения приоритета между клиентами (1-2-3 приоритет);
14) Биллинг (учет количества отправленных сообщений по каждому клиенту в единицу времени);
15) Возможность подключения GUI, те должны быть реализованы механизмы API для управления пп. 10, 11, 12, 13, 14
16) ОС - Linux
17) Резервирование по схеме 1+1 (active-active)
Цена за проект приблизительная, готов услышать ожидания.