Страница 1 из 1

Метка абонента при звонке из очереди

Добавлено: 04 фев 2026, 08:54
aniqi
При звонке оператору из очереди на экране звонящий отображается как M3:SUP:Телефон
Что означает: ожидает 3 минуты поддержка и номер абонента

Как туда можно добавить еще одно значение, мне нужно добавить сколько всего в очереди ожидающих абонентов
Что то типа такого M3:10:SUP:Телефон, что еще 10 абонентов висят в очереди
нашел что это происходит в контексте [macro-dial-one]
а именно вот оно:
.....
exten => qwait,1,ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)}))
exten => qwait,n,Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)})
exten => qwait,n,Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME})
exten => qwait,n,Return()
.....

но контекст довольно большой, возможно он как то настраивается? это все стандартный конфиг freepbx 14

0. Возможно это можно как то настроить через интерфейс?
1. могу ли я перезаписать только эту подпрограмму qwait ? или все же весь контекст надо в extensions_override_freepbx
2. Как определить кол-во абонентов в очереди? какая это переменная

Re: Метка абонента при звонке из очереди

Добавлено: 04 фев 2026, 12:53
ded
0: Нет.
1: Да
2: Как определить кол-во абонентов в очереди в реальном времени - смотрите командную строку
CLI> queue show _имя_очереди_

Лучше визуальный мониторинг, типа FOP2. Наталкивать разные значения в визуальные метки можно, но эта избыточная информация мгновенно перегружает мозг оператора при входящем звонке (IMHO). На всё это хорошо бы иметь супервизора, который видит всю ситуацию в целом, и сам готов выхватывать из очереди вызовы.

Какая переменная - изучайте документацию, или вставляйте в диалплан DumpChan - выгрузит состояние всех переменных на текущий момент, и можно в них найти нужную.
Да, придётся изучать язык диалплана и модифицировать. Изменённый контекст macro-dial-one поместить в файл extensions_override_freepbx.conf
Конечный результат можно поместить там толлько как вставку в этот контекст, типа

Код: Выделить всё

[macro-dial-one](+)
exten => qwait,1,DumpChan
exten => qwait,n,ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)}))
exten => qwait,n,Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)})
exten => qwait,n,Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME})
exten => qwait,n,Return()