如何路由到不同的扩展程序

时间:2016-01-08 12:00:44

标签: asterisk sip

我是星号的新手,我想做一个简单的路由工作

我已将asterisk配置为有3个sip ddi数字

在sip.conf下面:

[0001]
type=peer
fromuser=4420XXXX0001
host=X.X.X.X
dtmfmode=rfc2833
canreinvite=no
insecure=invite
context=default 

[0002]
type=peer
fromuser=4420XXXX0002
host=X.X.X.X
dtmfmode=rfc2833
canreinvite=no
insecure=invite
context=default

[0003]
type=peer
fromuser=4420XXXX0003
host=X.X.X.X
dtmfmode=rfc2833
canreinvite=no
insecure=invite
context=default

如果我拨打电话,我总是使用第一个DDI 4420XXXX0001,这是第一个分机号码

在extensions.conf下面

[default]

;Outgoing Number 0001
exten => _44.,1,Noop(CALLERID:${CALLERID})
exten => _44.,n,Set(CALLERID(all)="My Name"<+4420XXXX0001>)
exten => _44.,n,Dial(SIP/+${EXTEN:2}@0001)
exten => _44.,n,Hangup

;Outgoing Number 0002
exten => _44.,1,Noop(CALLERID:${CALLERID})
exten => _44.,n,Set(CALLERID(all)="My Name"<+4420XXXX0002>)
exten => _44.,n,Dial(SIP/+${EXTEN:2}@0002)
exten => _44.,n,Hangup

;Outgoing Number 0003
exten => _44.,1,Noop(CALLERID:${CALLERID})
exten => _44.,n,Set(CALLERID(all)="My Name"<+4420XXXX0003>)
exten => _44.,n,Dial(SIP/+${EXTEN:2}@0003)
exten => _44.,n,Hangup

如何将其排除以使用不同的行和不同的来电者ID

我为我发现难以解释的命名约定道歉

由于

1 个答案:

答案 0 :(得分:1)

请阅读任何星号书。这本书开头的一个主题,真的

有很多可能的变体如何平衡树干。例如,这个是3个中继的随机平衡。

[gate];начальный контекст
exten => _7XXXXXXXXXX,1,Set(num=${EXTEN})
exten => _7XXXXXXXXXX,2,Goto(gate_variants,${RAND(1,6)},1)
[gate_variants];все допустимые варианты
exten => 1,1,Set(DO=1-2-3)
exten => 2,1,Set(DO=1-3-2)
exten => 3,1,Set(DO=2-1-3)
exten => 4,1,Set(DO=2-3-1)
exten => 5,1,Set(DO=3-1-2)
exten => 6,1,Set(DO=3-2-1)
exten => _[1-6],2,goto(s,1)

exten => s,1,Set(i=0); делаем цикл(я это не писал, это у меня стандартная заготовка ;) )
exten => s,n(loop),Set(i=$[ i + 1]) ; смотрим по номеру
exten => s,n,Set(do_now=${CUT(DO,-,${i}) ; берем и-тый номер.
exten => s,n,GotoIF($[ "${do_now}" == "" ]?end); номера кончилися ((
exten => s,n,Dial(IAX2/manager${do_now}/${num},,g) ; звоним
exten => s,n,Goto({DIALSTATUS},1); проверяем результат
exten => s,n(end),Hangup; больше нет номеров

exten => BUSY,1,Goto(s,loop); повторяем
exten => CONGESTION,1,Goto(s,loop)
exten => FAIL,1,Goto(s,loop)
exten => NOANSWER,1,Goto(s,loop)

exten => ANSWER,1,Hangup;это не повторям, вроде дозвонилися.
exten => ANSWERED,1,Hangup

http://asterisk-support.ru/question/13916/dialplan-balansirovka-i-tsikl-mezhdu-trankami/#19951