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

Сообщения о недоступности абонента

Откуда: UA
Сообщений: 127

Сообщения о недоступности абонента

Такая ситуация:

возможно-ли обработать события: несуществующий абонент и абонент отключен ?

Например когда звоню через X-Lite, он говорит что звонок не доступен (походу это зашито в самом X-Lite). А вот с других клиентов (IAX2): просто сбрасывает если абонента не существует, и поднимает трубку, а потом через секунд 5 кладет - если абонент отключен.

Можно сделать, чтобы если абонент отключен: Астериск проиграл определенную фразу и положил трубку ?
2009-02-15 16:00

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: Сообщения о недоступности абонента

Да можно, смотри построение диалплана в *. А там просто выбирай наиболее подходящий для тебя вариант=)
Создам аварийную ситуацию. Дорого. На долго =)
2009-02-15 16:31

Откуда: UA
Сообщений: 127

Re: Сообщения о недоступности абонента

Вот это оно?

; A timeout and "invalid extension rule"
;
exten => t,1,Goto(#,1) ; If they take too long, give up
exten => i,1,Playback(invalid) ; "That's not valid, try again"

Вроде включено, но ничего не играет :(
2009-02-16 10:45

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: Сообщения о недоступности абонента

i екстеншн используется не в случае отсутствия (в т.ч. регистрации) абонента, а в случае когда набранный номер не подпадает под указанные в контексте маски.

Посмотрите еще подробнее команду dial() и макрос stdexgten.
Создам аварийную ситуацию. Дорого. На долго =)
2009-02-16 10:55

Откуда: UA
Сообщений: 127

Re: Сообщения о недоступности абонента

Почитал немного в вики, как-то мало документировано все :(

Вот вроде что-то похоже, если абонент отключен:

exten => s-CHANUNAVAIL,1,Voicemail(u${ARG1}) ; Channel screwed. write a macro for here
exten => s-CHANUNAVAIL,2,Hangup()
2009-02-16 12:58

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: Сообщения о недоступности абонента

Немного недопонимаете. Ключевой момент в этом макросе:
exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum
exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER

Потому как s-CHANUNAVAIL - не есть стандартный exten.
Создам аварийную ситуацию. Дорого. На долго =)
2009-02-16 13:16

Откуда: UA
Сообщений: 127

Re: Сообщения о недоступности абонента

exten => _X.,1,Dial(SIP/${EXTEN},,M(macro-stdexten))

[macro-stdexten]
exten => s,1,Dial(${ARG2},20)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Voicemail(b${ARG1})
exten => s-BUSY,2,Goto(public,s,1)

exten => s-NOANSWER,1,BackGround(ss-noservice)
exten => s-NOANSWER,2,Goto(public,s,1)

exten => _s-.,1,Goto(s-NOANSWER,1)

Что-то в таком духе? Знания по Астериск у меня действительно очень скудны :(
2009-02-16 13:33

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: Сообщения о недоступности абонента

Ага;) Очень похоже на правду:) А главное - смысл Вами понят правильно!
Создам аварийную ситуацию. Дорого. На долго =)
2009-02-16 13:37

Откуда: UA
Сообщений: 127

Re: Сообщения о недоступности абонента

немного не получается :(

Поправил стандартный [macro-stdexten]

[macro-stdexten];
;
; Standard extension macro:
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;
exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum
exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
- exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce
+ exten => s-NOANSWER,1,BackGround(ss-noservice)
- exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start
+ exten => s-NOANSWER,2,Hangup
+ exten => s-CHANUNAVAIL,1,BackGround(ss-noservice)
+ exten => s-CHANUNAVAIL,2,Hangup
exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain

В результате, если у юзверя включен войсмэйл - то прокатывает. Если нет - получаю стандартный отлуп, и не чего не проигрывается :(
Для неизвестных экстеншнов тоже ничего не играет...
2009-02-16 16:50

Сообщений: 1573

Re: Сообщения о недоступности абонента

- exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce
+ exten => s-NOANSWER,1,BackGround(ss-noservice)
- exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start
+ exten => s-NOANSWER,2,Hangup
+ exten => s-CHANUNAVAIL,1,BackGround(ss-noservice)
+ exten => s-CHANUNAVAIL,2,Hangup

что это за плюсики и минусики в начале строк?
2009-02-16 17:20

Добавить страницу в закладки:  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