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

dnd статус на blf

Добавлено: 28 ноя 2017, 09:20
grizzly5482
Здравствуйте, настроил blf панель на телефонах Yealink, всё хорошо отображается у кого занято и кто свободен, только проблема в том что. Если на каком либо телефоне поставить DND, то на BLF это не показывает и продолжает гореть зеленый индикатор, сообщая что линия свободная. Пробовал разные варианты с отправлением статуса *76 на asterisk всё равно не выходит. Подскажите пожалуйста как настроить этот функционал на голом asteriske 14.6.

Re: dnd статус на blf

Добавлено: 28 ноя 2017, 09:38
awsswa
Начать с правки на телефоне
Чтоб при установки DND отправлял комбинацию на сервер
в контексте в который прилетает эта комбинация выставлять в ручную статусы для BLF

Для умных мыслей найти статью на хабре про установку статусов BLF для очередей

Re: dnd статус на blf

Добавлено: 28 ноя 2017, 11:24
ded
Удивитесь, но во FreePBX есть несколько способов индикации DND. Посмотрите командой
asterisk -rx 'database show' | grep DND

Re: dnd статус на blf

Добавлено: 01 дек 2017, 15:51
grizzly5482
Сделал как говорится на хабре, добавил макрос и добавил на кнопке код *76, в логах такое творится при нажатии DND

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

 Extension Changed 101[blf_office] new state InUse&Ringing for Notify User 216
  == Extension Changed 101[blf_office] new state InUse&Ringing for Notify User 215
    -- Executing [*76@outcalliing:1] Answer("SIP/101-00000080", "") in new stack
  == Extension Changed 101[blf_office] new state InUse&Ringing for Notify User 102
       > 0x7fc2c006b890 -- Probation passed - setting RTP source address to 192.168.2.21:11796
    -- Executing [*76@outcalliing:2] GotoIf("SIP/101-00000080", "1?activate:deactivate") in new stack
    -- Goto (outcalliing,*76,3)
    -- Executing [*76@outcalliing:3] Set("SIP/101-00000080", "STATE=RINGING") in new stack
    -- Executing [*76@outcalliing:4] Set("SIP/101-00000080", "DEVICE_STATE(Custom:DND101)=RINGING") in new stack
    -- Executing [*76@outcalliing:5] Hangup("SIP/101-00000080", "") in new stack
  == Spawn extension (outcalliing, *76, 5) exited non-zero on 'SIP/101-00000080'
  == Extension Changed 101[blf_office] new state Ringing for Notify User 216
  == Extension Changed 101[blf_office] new state Ringing for Notify User 215
  == Extension Changed 101[blf_office] new state Ringing for Notify User 102
при введение команды asterisk -rx 'database show' | grep DND

говорит вот что

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

[root@localhost ~]# asterisk -rx 'database show' | grep DND
/CustomDevstate/DND                               : NOT_INUSE
/CustomDevstate/DND101                            : RINGING
/CustomDevstate/DND314                            : RINGING
/CustomDevstate/DND320                            : RINGING
/CustomDevstate/DND321                            : BUSY
На кнопках blf почему-то все-равно не загорается красным при установки DND, подскажите пожалуйста, куда еще копать? Еще хотелось бы узнать. Можно ли сделать чтобы отображалось на кнопках BLF подключен ли человек или нет, а то человек даже пк не включил, а ему пытаются звонить.Спасибо.

Re: dnd статус на blf

Добавлено: 02 дек 2017, 09:08
virus_net
grizzly5482 писал(а):подскажите пожалуйста, куда еще копать?
Судя по всему вы явно не понимаете что именно вы делаете.
Сначала в сторону букваря, а затем в сторону траблшута.
Configuring chan_sip for Presence Subscriptions
Extension State and Hints
Asterisk func device_State
Asterisk и Distributed Device State

Re: dnd статус на blf

Добавлено: 04 дек 2017, 10:15
grizzly5482
При нажатии DND на телефоне загорается красный индикатор на BLF клавише и сразу же возвращает на зелёный индикатор. Не фиксирует. Скажите пожалуйста, а нужно ли в DB колонку выделять для dnd?

по логам вроде как работает

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

  -- Executing [*76@outcalliing:1] Answer("SIP/320-00000008", "") in new stack
    -- Executing [*76@outcalliing:2] GotoIf("SIP/320-00000008", "1?activate:deactivate") in new stack
    -- Goto (outcalliing,*76,3)
    -- Executing [*76@outcalliing:3] Set("SIP/320-00000008", "STATE=BUSY") in new stack
    -- Executing [*76@outcalliing:4] Set("SIP/320-00000008", "DEVICE_STATE(Custom:DND320)=BUSY") in new stack
    -- Executing [*76@outcalliing:5] Set("SIP/320-00000008", "DB(DND/320)=1") in new stack
    -- Executing [*76@outcalliing:6] Hangup("SIP/320-00000008", "") in new stack

Re: dnd статус на blf

Добавлено: 04 дек 2017, 10:34
zzuz
В какой БД Вы собрались колонки выделять? В Berkley DB ?

Re: dnd статус на blf

Добавлено: 04 дек 2017, 10:45
grizzly5482
в mysql, куда заносятся все звонки для статистики. Или же это не требуется?
В extensions есть строчка "exten => *76,n,Set(DB(DND/${CALLERID(number)})=1)"
Как понимаю что в DB записывается что абонент установил DND, а секретарь с BLF панелью видит что человек занят и на него не перевести звонок.
Получается как то нужно показать панели что у абонента стоить DND.

Re: dnd статус на blf

Добавлено: 04 дек 2017, 10:50
zzuz
в extensions есть такая строчка. Но её назначение Вы явно не знаете. Так уж случилось , что mysql не единственная БД . asterisk в вашем случае работает с двумя БД , с mysql и с BDB (или же с SQLite3)
Вам дали ссылки для чтения. Читайте.

Re: dnd статус на blf

Добавлено: 04 дек 2017, 14:01
grizzly5482
Спасибо ребят, всё получилось. Нарадоваться не могу. :) :) :) :)