Зачем
Дашборд /calltracking/dashboard показывает текущее состояние пула DID-ов: сколько занято, сколько свободно, сколько в резерве. Раньше страница раз в 10 секунд POST-ила запрос для обновления, что нагружало бэкенд при большом количестве вкладок открытых сотрудниками. Server-Sent Events заменяют polling: один HTTP-стрим, события приходят с сервера.
Эндпоинт
GET /calltracking/dashboard.sse
Accept: text/event-stream
События
event: pool
data: {"ts": 1715000000, "pool": [{"id":1,"name":"site-main","busy":2,"avail":8,"reserve":1}, …]}
Состояние раз в 3 секунды; стрим живёт 5 минут (клиент сам пере-подключается). На странице это выглядит как «карточки источников с числом busy/avail обновляются мгновенно».
Кому полезно
- Оператору: видеть когда пик нагрузки — все номера заняты, надо добавлять в пул.
- Маркетологу: проверять что РК действительно льёт трафик (busy растёт).
- Админу: ловить «застрявшие» DID-ы (busy не освобождается долго → проблема в скрипте на сайте).