AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Нужен разработчик: Роутер звонков для Asterisk

Работа 3 сообщений -
#1

Нужно написать маршрутизатор звонков для asterisk, который будет переключать звонящего на сотрудника, с которым тот общался в последний раз.

Программа должна состоять из двух частей.
Демон, слушающий через AMI события и записывающий в БД последнего собеседника абонента. При этом записываются и входящие, и исходящие звонки, и учитываются трансферы.

Программа, в ответ на переданный номер звонящего сообщающая номер последнего абонента, либо сообщающая об ошибке поиска. Будет вызываться в диалплане Asterisk'а. Правила определения абонента таковы:
Если для номера нет ни одной записи в БД, возвращается ошибка.
Если для номера есть одна запись, возвращается абонент из этой записи.
Если для номера несколько записей, то анализируем три (или сколько есть) последних звонка:
Если все звонки - одному абоненту, возвращается этот абонент.
Если звонки совершены разным абонентам, то:
Если звонков два, возвращается последний абонент.
Если звонков три, и все совершены разным абонентам, возвращается ошибка.
Если звонков три, и два последних совершены одному абоненту, возвращается этот абонент.

Демон должен поддерживать механизм его мониторинга и перезапуска (pid-файл, например)

Время работы программы по определению абонента не должно превышать 200 мс при объеме тестовой базы в 20 000 абонентов, из которых 50% звонков - повторные. Эта программа должна спокойно относиться к тому, что одновременно будут запускаться несколько ее экземпляров.

Asterisk: 1.8

Язык: Python3.

Модули Python: те, которые можно поставить через официальный pip. При этом обязателен requirements.txt.

БД: MongoDB/MySQL на выбор

ОС: Ubuntu Linux

Готовы сделать тестовый сервер с реальными данными.

Предпочтение отдадим кандидатам, нашедшим логический изъян в алгоритме определения абонента.

Ждем вопросов и предложений по цене и срокам.
#2

А куда прикажете предложения слать?
#3

Ivan, извините. Приказываю слать на am {at} kupo.la.