1) Реализовать Blacklist (в блэклист будет входить функция защиты и от спама в том числе). Фильтрация как уже было обговорено должна происходить с помощью вызова HTTP-адреса. 1.а Фильтрация по отправителю 1.б Фильтрация по получателю 1.в Фильтрация по тексту сообщения 1.г Фильтрация повторяющихся сообщений на один и тот же номер с одним и тем же текстом в течение указанного интервала времени 2) Привязать логины и пароли клиентов к текущей БД и привязка IP-адреса к клиенту. (по сути - тоже HTTP-call я так думаю будет резонно). 3) Система приоритетов для клиентов (пример клиент1 - выставлен приоритет в БД 10, клиент2 - приоритет 100, первыми уходят сообщения от клиента1, потом уже клиент2). 4) Аккаунтинг в реал-тайме. (далее по приоритетам, что первое нужно реализовать в первую очередь) 4.а Пост-аккаунтинг ("баланс уходит в минус") 4.б Пре-аккаунтинг ("отключать, если баланс нулевой") 5) Статистика - реализовать механизм статистики по SMPP-серверу, чтобы ее легко можно было интегрировать в веб-интерфейс, естественно статусы должны обновляться по мере прихода DLR от upstream-SMSC и отдаваться SMPP-клиенту. Если клиент отключился, но не получил отчет, то отправлять ему отчет повторно. Фиксировать, получил ли клиент отчет или нет в БД. 6) Ограничение throughput для клиентов, подключенных по SMPP, ограничение количества одновременных подключений. (наверное лучше всего 1 login = 1 подключение MAX). 7) Фиксация имени отправителя за конкретным клиентом. 8) Распределение нагрузки по upstream SMSC. 9) Закрепление отправки через конкретный upstream SMSC-линк для конкретного клиента (пример: у клиента1 указана smsc1, все сообщения, поступающие от клиента1 идут через smsc1 и не через какой другой). 10) Fail-over, возможность управлять подключениями upstream SMSC на лету (как в kannel добавлять, убирать - с переключением очереди (в kannel при remove-smsc - очередь обнуляется). 11) Защита от DDoS 12) Кэширование. Обязательные требования:
1. Отличное владение C под Linux, умение программировать многопоточные приложения.
2. Умение разбираться в чужом коде
3. Знание основ SMPP-протокола
4. Опыт работы c проектам с большой нагрузкой
5. Ответственность, исполнительность.
Опубликован 28.10.2012 в 16:02 по мск
Прошло времени с момента публикации: более 12 лет