Сообщения о недоступности абонента
Откуда: UA
Сообщений: 127
|
Сообщения о недоступности абонента
Такая ситуация:
возможно-ли обработать события: несуществующий абонент и абонент отключен ?
Например когда звоню через X-Lite, он говорит что звонок не доступен (походу это зашито в самом X-Lite). А вот с других клиентов (IAX2): просто сбрасывает если абонента не существует, и поднимает трубку, а потом через секунд 5 кладет - если абонент отключен.
Можно сделать, чтобы если абонент отключен: Астериск проиграл определенную фразу и положил трубку ?
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Сообщения о недоступности абонента
Да можно, смотри построение диалплана в *. А там просто выбирай наиболее подходящий для тебя вариант=)
Создам аварийную ситуацию. Дорого. На долго =)
|
Откуда: 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"
Вроде включено, но ничего не играет :(
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Сообщения о недоступности абонента
i екстеншн используется не в случае отсутствия (в т.ч. регистрации) абонента, а в случае когда набранный номер не подпадает под указанные в контексте маски.
Посмотрите еще подробнее команду dial() и макрос stdexgten.
Создам аварийную ситуацию. Дорого. На долго =)
|
Откуда: UA
Сообщений: 127
|
Re: Сообщения о недоступности абонента
Почитал немного в вики, как-то мало документировано все :(
Вот вроде что-то похоже, если абонент отключен:
exten => s-CHANUNAVAIL,1,Voicemail(u${ARG1}) ; Channel screwed. write a macro for here
exten => s-CHANUNAVAIL,2,Hangup()
|
Откуда: Санкт-Петербург
Сообщений: 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.
Создам аварийную ситуацию. Дорого. На долго =)
|
Откуда: 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)
Что-то в таком духе? Знания по Астериск у меня действительно очень скудны :(
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Сообщения о недоступности абонента
Ага;) Очень похоже на правду:) А главное - смысл Вами понят правильно!
Создам аварийную ситуацию. Дорого. На долго =)
|
Откуда: 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
В результате, если у юзверя включен войсмэйл - то прокатывает. Если нет - получаю стандартный отлуп, и не чего не проигрывается :(
Для неизвестных экстеншнов тоже ничего не играет...
|
Сообщений: 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
что это за плюсики и минусики в начале строк?
|
|