По мне, проще написать на чистом Asterisk'е.
Делал как-то систему для управления звонками в очереди астериска.
Использовал ARI + websocket.
Звонки поступают в очередь, при этом каждое действие - приход звонка, постановка в очередь, покидание очереди, принятие оператором, завершение звонка генерируют кастомные события. Это события слушаются WS-сервером (PHP Workerman), который держит в памяти текущее состояние и информирует об его изменении WS-клиентов. Клиент - простой WEB-интерфейс, показывающий очередь звонков и список пропущенных. Обратные команды идут через WS-сервер на ARI-интерфейс астериска.