Страница 1 из 1
Чей Hangup?
Добавлено: 28 ноя 2011, 01:09
pavel shlag
В asterisk 1.8 у команды Dial появились две хорошие опции - g и F.
Вопрос как, используя их одновременно, узнать кто положил трубку (SIP-каналы)?
Через h узнать можно, но этот вариант мне не подходит.
Re: Чей Hangup?
Добавлено: 28 ноя 2011, 10:36
Obi Van
Через h узнать можно, но этот вариант мне не подходит.
Интересно, а чем?
Re: Чей Hangup?
Добавлено: 28 ноя 2011, 10:44
pavel shlag
через CHANNEL(checkhangup)
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 18:28
pavel shlag
101 набрал 100, после разговора как таки узнать кто из них трубку то положил?
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 19:09
ded
exten => 100,1,Dial(SIP/100,,gF)
exten => 100,n,NoOp(${CHANNEL(checkhangup)})
exten => 100,n,Hangup()
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 19:16
pavel shlag
выше я уже писал про CHANNEL(checkhangup), всегда возвращает 0 при таком звонке.
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 19:18
Vlad1983
если так
exten => _XXX,n,Dial(SIP/${EXTEN})
exten => _XXX,n,NoOp(SIP return code : ${HASH(SIP_CAUSE,${CDR(dstchannel)})})
что показывает NoOp при разных вариантах
вообще поидее если опция g: When the called party hangs up, continue to execute commands in the current context at the next priority.
и есть переход на следующий приоритет то положил трубу ответивший
а F надо с параметрами, а не просто F
F(context^exten^pri): When the caller hangs up, transfer the called party to the specified context and extension and continue execution.
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 20:31
pavel shlag
это тож пробовал, ничего не возвращает
F: Proceed with dialplan execution at the next priority in the current
extension if the source channel hangs up.
g: Proceed with dialplan execution at the next priority in the current
extension if the destination channel hangs up.
Re: Чей Hangup?
Добавлено: 29 ноя 2011, 21:09
Vlad1983
я вам про то что надо юзать c параметрами чтоб не прыгать в одно место
попробуйте так
exten => _XXX,n,Dial(SIP/${EXTEN},,gF(cgh))
exten => _XXX,n,NoOp(Called Hangup)
exten => _XXX,n,Goto(h,1)
exten => _XXX,n(cgh),NoOp(Caller Hangup)
exten => _XXX,n,Goto(h,1)
exten => h,1,Hangup