Страница 1 из 1
Attended Transfer
Добавлено: 23 окт 2012, 23:44
call
Вопрос по поведению * в определенной ситуации при AT:
А звонит Б, тот отвечает и переводит (АТ) на С. Не дожидаясь ответа С, Б кладет трубку. С - не принимает вызов (сбрасывает и т.д.). Через определенный таймаут вызов возвращается к Б (идет дозвон), но Б тоже не принимает этот возврат. Вызов завершается и канал А попадает в экстен h ...
Что можно сделать, что бы вызов не завершался, а шел дальше по контексту?
Re: Attended Transfer
Добавлено: 24 окт 2012, 07:02
awsswa
Первый вариант
(Все настроено для трехзначной нумерации)
[internal]
exten => _XXX,1,Dial(SIP/${EXTEN:0:3},30,tT)
exten => _XXX,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Goto(busy-i,s,1)
exten => s-CONGESTION,1,Goto(busy-i,s,1)
exten => s-NOANSWER,1,Goto(noanswer-i,s,1)
exten => s-CHANUNAVAIL,1,Goto(nedostupen-i,s,1)
[busy-i]
exten => s,1,Background(abonent)
exten => s,n,Background(zanjat)
exten => s,n,GotoIf($["${BLINDTRANSFER}"!=""]?blind)
exten => s,n,HangUp
exten => s,n(blind),Dial(SIP/${BLINDTRANSFER:4:3},24,tT)
[noanswer-i]
exten => s,1,Background(abonent)
exten => s,n,Background(ne-otvechaet)
exten => s,n,GotoIf($["${BLINDTRANSFER}"!=""]?blind)
exten => s,n,HangUp
exten => s,n(blind),Dial(SIP/${BLINDTRANSFER:4:3},24,tT)
[nedostupen-i]
exten => s,1,Background(abonent)
exten => s,n,Background(T-is-not-available)
exten => s,n,GotoIf($["${BLINDTRANSFER}"!=""]?blind)
exten => s,n,HangUp
exten => s,n(blind),Dial(SIP/${BLINDTRANSFER:4:3},24,tT)
Второй вариант:
exten => _XXX,1,GotoIf($["${BLINDTRANSFER}"!=""]?blind,${EXTEN},1)
[blind]
exten => _XXX,1,NoOp(See for transfer from: ${BLINDTRANSFER})
exten => _XXX,n,Dial(SIP/${EXTEN},20,tT)
exten => _XXX,n,Goto(n-${DIALSTATUS})
exten => _XXX,n(n-BUSY),Playback(abonent-zanjat)
exten => _XXX,n,Dial(SIP/${BLINDTRANSFER:4:3},10,tT)
exten => _XXX,n,Hangup
exten => _XXX,n(n-NOANSWER),Playback(abonent&ne-otvechaet)
exten => _XXX,n,Dial(SIP/${BLINDTRANSFER:4:3},10,tT)
exten => _XXX,n,Hangup
Re: Attended Transfer
Добавлено: 24 окт 2012, 09:54
call
Спасибо. ) Но вы "говорите" о BLINDTRANSFER, а вопрос о ATTENDED TRANSFER!
Re: Attended Transfer
Добавлено: 24 окт 2012, 10:17
awsswa
Честно говоря, вопрос у вас вообще не про трансфер - после h, отправляйте снова на голосовое меню.
Пример выше, перепишите под себя как вам хочется
Re: Attended Transfer
Добавлено: 24 окт 2012, 11:51
call
Вопрос про трансфер (АТ)!
По поводу отправлять из h в голосовое меню - не получиться, потому, что в версии 1.8 изменено поведение системы в этом экстене, вкратце - голосовой поток закрывается (
Re: Attended Transfer
Добавлено: 24 окт 2012, 15:53
Samael28
При возвращении звонка в самое начало (Б) сделайте проверку, а был ли звонок оттрансферен? Какими средствами Вы это делаете?
Re: Attended Transfer
Добавлено: 06 дек 2012, 12:56
awsswa
exten => _XXXX,1,Dial(SIP/${EXTEN},20,tT)
exten => _XXXX,n,GotoIf($[ "x${BLINDTRANSFER}" = "x" ]?noBT)
exten => _XXXX,n,Set(DIALRET=${CUT(BLINDTRANSFER,-,1)});
exten => _XXXX,n,Goto(dRet)
exten => _XXXX,n(noBT),GotoIf($[ "x${TRANSFERERNAME}" = "x" ]?sai)
exten => _XXXX,n,Set(DIALRET=${CUT(TRANSFERERNAME,-,1)});
exten => _XXXX,n(dRet),Set(CALLERID(all)=RET_${EXTEN} <${CALLERID(num)}>)
exten => _XXXX,n,Dial(${DIALRET},,mTt)
exten => _XXXX,n(sai),Hangup()