Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / IPфоны и Софтфоны / Linksys SPA9XX и DND

Linksys SPA9XX и DND

Как корректно обработать?
Откуда: Украина, Киев - Одесса
Сообщений: 50

Linksys SPA9XX и DND

Всем привет!

Такая ситуевина: Имеется парк Linksys SPA9XX под Asterisk 1.6.1.20.
И типичное поведение манагера: ушел на встречу/обед/т.п., в общем нет его временно на месте. И при уходе жмет на телефоне DND.
Известно, что Linksys при входящих вызовах на аппарат со включенным DND их отбивает с посылкой сообщения SIP 486/Busy, типа занят я, и нивалнуит:)
Но по сути, нужно было при DND давать IVR типа "на данный момент сотрудник не может ответить на Ваш звонок. Чтобы отправить ему факс - нажмите 1, чтобы связаться по мобилке - нажмите 2." Заюзаны файлики с ivrvoice.ru, спасибо litnimax'y :)
Eссно, надо было различать, действительно ли занят абонент, или на телефоне нажат DND :).
Выкрутился со счетчиками ${GROUP_COUNT()}:

[office]
exten => _9XX/_9XX,1,NoOp(Subscriber ${EXTEN} has state ${DEVICE_STATE(SIP/${EXTEN})}).
exten => _9XX/_9XX,2,Set(GROUP()=Group-${CALLERID(num)})
exten => _9XX/_9XX,3,Set(FORWARD_CONTEXT=out-${EXTEN:1})
exten => _9XX/_9XX,4,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}.wav)
exten => _9XX/_9XX,5,Dial(SIP/${EXTEN},60,to)
exten => _9XX/_9XX,6,GotoIf($["${DIALSTATUS}" = "BUSY"]?dnd-service,${EXTEN},1)

[dnd-service]
exten => _9[0-1][0-9],1,GotoIfTime(9:00-18:30,mon-fri,*,*?11:2)
exten => _9[0-1][0-9],2,GotoIfTime(18:30-9:00,mon-fri,*,*?21:3)
exten => _9[0-1][0-9],3,GotoIfTime(*,sat-sun,*,*?21)
exten => _9[0-1][0-9],11,GotoIf($[${GROUP_COUNT(Group-${EXTEN})} > 1]?101:${EXTEN}-ivr,${EXTEN},1)
exten => _9[0-1][0-9],21,Hangup(20)
exten => _9[0-1][0-9],101,Hangup(17)
exten => _9[2-9]X,1,GotoIf($[${GROUP_COUNT(Group-${EXTEN})} > 1]?21:31)
exten => _9[2-9]X,21,Hangup(17)
exten => _9[2-9]X,31,Hangup(20)


И все как надо :) НО - если абонент просто поднял трубку для набора номера - и в это время ему придет звонок - звонящего кинет на IVR:). Ибо сессия не поднята, разговора нет, и астериск не отличит поднятую трубку от нажатого DND.

Можно ли заставить SPA9XX при поднятии трубки слать какое-нибудь NOTIFY астериску, чтобы я его там ловил и инкрементировал счетчик?
Как быть?
Правду говорить - легко и приятно. (с) Иешуа Га-Ноцри
2010-06-16 18:21

Avatara of IgorG
Откуда: Омск
Сообщений: 478

Re: Linksys SPA9XX и DND

Нельзя. Единственное что могу предложить - дописать Asterisk до того чтобы он понимал эвенты посылаемые Linksys'ом при подключении услуг на самом телефоны. Эти эвенты посылают 9x2 при включении доп. опций в интерфейсе.
OpenSUSE 11.2 / Asterisk 1.6.x / Vicidial / UniMRCP
2010-06-16 18:40

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: Linksys SPA9XX и DND

core show function DEVICE_STATE
http://линия24.рф - Астериск и прочие бубны!
2010-06-17 11:54

Откуда: Украина, Киев - Одесса
Сообщений: 50

Re: Linksys SPA9XX и DND

IgorG, спасибо. Насчет эвентов - где они поподробнее описаны?
а то ловить WireShark'oм их нереально :)

zzuz, а что толку от DEVICE_STATE, в ней при DND и поднятой трубке busy будет, тут без разницы.
Правду говорить - легко и приятно. (с) Иешуа Га-Ноцри
2010-06-17 14:57

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: Linksys SPA9XX и DND

В переменной будет значение девайса, именно то , что используется для хинтов , и именно оно используется для катомных хинтов , когда надо DND определять. Что делать с полученным значением - дело филосовское.
http://линия24.рф - Астериск и прочие бубны!
2010-06-17 15:20

Откуда: Украина, Киев - Одесса
Сообщений: 50

Re: Linksys SPA9XX и DND

То же самое, как и предполагалось.

при поднятой трубке:
NoOp("SIP/9ХХ-00002846", "Subscriber 9ХХ has state INUSE") in new stack


при разговоре:
NoOp("SIP/9ХХ-00002848", "Subscriber 9ХХ has state INUSE")


Upd: Share Call Appearance в Линксисах - нужное направление для дальнейших раскопок?
Правду говорить - легко и приятно. (с) Иешуа Га-Ноцри
2010-06-17 17:07

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru