Привет. Нужно сделать переадресацию, чтобы пользователь набирал *21XXXX и переадресовывало на другой телефон.
Два сервера : lst10 c внешними номерами (4150 4149) и lst252 c внутренними номерами (4646). Нужно сделать переадресацию с 4646 на 4149. Если делать переадресацию на номера с lst252 - то все работает.
На lst252 в extensions.сonf пишу:
exten => _*21XXXX,1,Set(DB(REDIRECT/${CALLERID(num)})=${EXTEN:3})
exten => *22#,1,Set(NOREDIRNUM=${DB_DELETE(REDIRECT/${CALLERID(num)})})
exten => 4646,1,Set(REDIRECTNUM=${DB(REDIRECT/${EXTEN})})
exten => 4646,n,GotoIf($[${ISNULL(${REDIRECTNUM})}]?internal:redirect)
exten => 4646,n(internal),Dial(SIP/${EXTEN})
exten => 4646,n(redirect),Dial(SIP/${REDIRECTNUM})
exten => _41XX,1,Dial(SIP/lst10/${EXTEN},30,r,t);
на телефоне набираю *214149
-- Executing [*214149@default:1] Set("SIP/4646-000147af", "DB(REDIRECT/4646)=4149") in new stack
Звоню с 4150 на 4646:
== Using SIP RTP CoS mark 5
-- Executing [4646@default:1] Set("SIP/lst10-000147f4", "REDIRECTNUM=4149") in new stack
-- Executing [4646@default:2] GotoIf("SIP/lst10-000147f4", "0?internal:redirect") in new stack
-- Goto (default,4646,4)
-- Executing [4646@default:4] Dial("SIP/lst10-000147f4", "SIP/4149") in new stack
[Dec 4 19:20:46] WARNING[23407][C-00000032]: chan_sip.c:6159 create_addr: Purely numeric hostname (4149), and not a peer--rejecting!
[Dec 4 19:20:46] WARNING[23407][C-00000032]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
А если exten написать через s - то он туда не попадает. Что я делаю не так?