Вкратце опишу детали. Осуществляется обзвон абонентов через call-файлы подобного содержания:
Channel: SIP/внешний транк/телефон вызова
Context: rko
Extension: телефон вызова
Priority: 1
Set: num=телефон вызова
Далее, после ответа мобильного телефона, на который звонят, происходит переход по контексту:
[rko]
exten => failed,1,System(echo "${num}" >> /var/log/asterisk/failed)
exten => failed,n,Hangup()
exten => _X.,1,Set(TIMEOUT(digit)=0.1)
exten => _X.,n,AMD()
exten => _X.,n,NoOp("AMD STATUS IS :"${AMDSTATUS}"...CAUSE:"${AMDCAUSE})
exten => _X.,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)
exten => _X.,n(mach),System(echo "${EXTEN}" >> /var/log/asterisk/machine)
exten => _X.,n,Hangup()
exten => _X.,n(humn),Background(/var/lib/asterisk/moh/voicemail/rko_2)
exten => _X.,n,System(echo "${EXTEN}" >> /var/log/asterisk/unknown)
exten => _X.,n,Hangup()
exten => 1,1,Goto(want_rko,${num},1)
[want_rko]
exten => _X.,1,System(echo "${EXTEN}" >> /var/log/asterisk/wanted)
exten => _X.,n,Dial(SIP/внешний транк/логин второго внешнего транка@хост внешнего транка,,t&m)
exten => _X.,n,Hangup()
В данном контексте идет определение автоответчика, логируются данные, играет фоновая запись, если человек нажимает цифру 1, на телефоне, происходит переход по контексту "want_rko". Опять происходит логирование. И самая интересная строчка (exten => _X.,n,Dial(SIP/внешний транк/логин второго внешнего транка@хост внешнего транка,,t&m)), перенаправление вызова на другой транк, который прикреплен к обзвонилке. При таком сценарии, Asterisk показывает 603 ошибку Decline, т.е. будто абонент сбросил вызов. Если же обращаться не по сипу, а по телефону этого сипа, то перенаправление срабатывает. Кто может подсказать, как осуществить данное перенаправление по сипу?