Проблема в том, что у меня регистрация пользователей хранится на другой вообще ноде, не астер. И у меня при входящих не отрабатывает очередь звонков, т.к астер не знает состояние сипучеток.
Что то в гугле не нашел ничего. Пока из идей это написать "движок" который будет генерить SUBSCRIBE и как то запихивать это в память астериска, если это возможно.
На крайний случай писать кастомную очередь на AGI или FastAGI
В общем. Начал слать запросы на изменение состояние через ARI. Типа так:
curl -s -X PUT -u admin:secret "http://192.168.1.39:8088/ari/deviceStates/Stasis:100002?deviceState=NOT_INUSE
В БД очереди:
select * from queue_member_table;
id | queue_name | interface | membername | state_interface | penalty | paused | uniqueid | ringinuse
----+------------+--------------------------+-----------------+-----------------+---------+--------+----------------+-----------
1 | support | PJSIP/100002@USERGATEWAY | Operator 100002 | Stasis:100002 | 0 | 0 | support_100002 | 0
В целом работает и состояние и распределение звонков на лету работает.
Попросил дипсик написать тест производительности.
Виртуалка с Астером: 1 CPU - 2GB RAM
[*] URL: http://192.168.1.39:8088/ari/deviceStates/Stasis:100001?deviceState=NOT_INUSE
[*] Запросов: 1000, потоков: 10
[*] Старт...
============================================================
РЕЗУЛЬТАТЫ
============================================================
Всего запросов: 1000
Успешных ответов: 1000
Ошибок: 0
Общее время: 2.390 сек
RPS (факт): 418.36 запросов/сек