LINUX.ORG.RU

Asterisk, переадресация.


0

2

Привет. Нужно сделать переадресацию, чтобы пользователь набирал *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 - то он туда не попадает. Что я делаю не так?

★★★★★

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.