VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

CHANUNAVAIL вместо BUSY

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

CHANUNAVAIL вместо BUSY

Сообщение tol_iwan »

Запутался. Не ожидал сложности в выполняемой задаче. Полазил по темам - вроде такое есть и поведение считается нормальным. Но мне кажется, что я что-то недопонимаю.
Нужно сделать голосовую почту с двумя сообщениями - абонент занят или недоступен. Тут понятно, ставим опции b и u в VoiceMail, проверяем статус вызова после DIAL() и счастье. Как оказалось BUSY в данном случае - это когда вызываемый абонент отклонил вызов. Если же он просто разговаривает, то ${DIALSTATUS} выдает CHANUNAVAIL. Установлено для всех абонентов call-limit=1 и busylevel=1.
1. Правильно ли я понял, что такое поведение asterisk правильное и с помощью ${DIALSTATUS} я не получу информации о занятости?
2. Обошел данную проблему путем проверки состояния аппарата - DEVICE_STATE. Правильное ли решение или костыль?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: CHANUNAVAIL вместо BUSY

Сообщение virus_net »

Я решал эту же проблему, но с помощью ChanIsAvail
2 AST_DEVICE IN USE - "In use"; channel is in use.
3 AST_DEVICE_BUSY - "Busy"; channel is busy.
6 AST_CAUSE_CHANNEL_UNACCEPTABLE (as cause code)

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

exten => 670, bla bla bla........
exten => 670,n,ChanIsAvail(SIP/670,s)
exten => 670,n,NoOp(=========== ChanIsAvail STATUS: ${AVAILSTATUS} ===========)
exten => 670,n,GoToIf($[${AVAILSTATUS} = 2]?670-BUSY,1)
exten => 670,n,GoToIf($[${AVAILSTATUS} = 3]?670-BUSY,1)
exten => 670,n,GoToIf($[${AVAILSTATUS} = 6]?670-BUSY,1)
exten => 670,n,Goto(670-${DIALSTATUS},1)
exten => 670-BUSY,1,bla bla bla........
exten => 670-NOANSWER,1,bla bla bla........
exten => 670-CHANUNAVAIL,1,bla bla bla........
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: CHANUNAVAIL вместо BUSY

Сообщение tol_iwan »

За ответ спасибо. Об этом варианте не думал.
C точки зрения алгоритма - тоже самое.
В чем разница с точки зрения данной решаемой задачи, что предпочтительней и правильней?
Статус девайса и статус канала по сути тут одинаковые будут. Только одно цифрой, а другое текстом. Пока не могу придумать ситуацию, когда у двух реализаций будут разные(по смыслу) значения.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH