Имеется несколько многоканальных SIP-транков. Для того, чтобы была возможность определить с какого транка пришел вызов на телефонах настроен BLF. Но, когда хотя бы один канал на транке занят, то соответствующая BLF кнопка постоянно горит (т.к. передается статус INUSE). Если поступает еще один вызов, то индикация никак не меняется. Понять с какого транка пришел звонок нельзя.
Сделаем так, чтобы при любом входящем звонке соответствующая кнопка BLF мигала.
Внесем изменения в dialplan. Добавим custom hint, которому при входящем вызове будем передовать статус RINGING, а при ответе или отбое передавать статус NOT_INUSE.
Контекст входящих вызовов приводим к следующему виду:
[incoming]
exten => s,1,Set(DEVICE_STATE(Custom:ringingMyTrunk)=RINGING)
exten => s,n,Dial(SIP/101,20,mtTM(noringingMyTrunk))
exten => s,n,Hangup
exten => h,n,Set(DEVICE_STATE(Custom:ringingMyTrunk)=NOT_INUSE)
[macro-noringingMyTrunk]
exten => s,1,Set(DEVICE_STATE(Custom:ringingMyTrunk)=NOT_INUSE)
В контекст BLF добавим Custom:ringingMyTrunk
exten => myTrunk,hint,SIP/myTrunk&Custom:ringingMyTrunk