无法使用2张pri in和2张卡片在星号中为第二张dahdi卡设置来电显示

时间:2015-05-06 11:43:06

标签: asterisk configure ivr

我的centos 6系统中有2张DAHDI卡和2张pri。

我无法在 .call 文件中为第二个pri设置callerid。连接到上层卡的pri的手段我能够在转发时设置其来电显示,但不能显示上层卡pri飞行员DID号码的下方(它应该显示较低的pri号码,因为我在呼叫文件中设置了CallerId变量如果我翻转pri它会为上pri设置相同的调用者ID,所以看起来问题出现在某些配置中。

我似乎无法弄清楚我正在做的配置错误。

system.conf

# Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER) CCS/HDB3/CRC4 ClockSource 
span=1,1,0,ccs,hdb3,crc4
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31

# Span 2: WCT1/1 "Wildcard TE121 Card 1" 
span=2,2,0,ccs,hdb3,crc4
# termtype: te
bchan=32-46,48-62
dchan=47
echocanceller=mg2,32-46,48-62

# Global data

loadzone    = us
defaultzone = us

chan_dahdi.conf

[channels]
context=from-pstn-old
usecallerid=yes
callwaiting=yes
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
pridialplan=unknown
prilocaldialplan=unknown
switchtype=euroisdn
language = yes
relaxdtmf = yes
dtmfmode=auto
transfer=yes

;Span 1:
context=from-pstn
group=0
callgroup=1
pickupgroup=1
echocancel=yes
signalling=pri_cpe
channel => 1-15,17-31,32-46,48-62
context=default
usecallerid=yes
callerid=asreceived
hanguponpolarityswitch=yes
answeronpolarityswitch=yes
cidstart=polarity_IN
cidsignalling=dtmf
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
relaxdtmf=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no
useincomingcalleridondahditransfer=yes
busydetect=yes
busycount=2

我的通话文件

Channel: DAHDI/g0/09*********
MaxRetries: 0
WaitTime: 30
Context: outgoing 
Extension: *******              //my did
Callerid: 0**********          //my did with area code

我的extensions.conf太长了所以我发布了相关部分

  same => n,Set(CALLERID(all)=0**0${DID})
  same => n,dial(DAHDI/g0/0${NUMBER},20,mtM(ANSWEREDED))

其中${DID}和$ {NUMBER}是动态变量。 任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

好的,让我们从第一件事开始 - 你的chan_dahdi.conf文件中有多个错误。例如:

hanguponpolarityswitch=yes
answeronpolarityswitch=yes
cidstart=polarity_IN
cidsignalling=dtmf

使用PRI电路时不需要。 PRI电路是完全数字化的,极性变化用于FXO / FXS信号。

现在,关于你的问题,我认为你的调用文件是这样的:

Channel: SIP/g1/some_number
Extension: Number_B
Priority: Your Priority
Conext: Some_Context
CallerID: Some_CallerID

现在,这里的技巧是通过拨号方案设置Number_B的呼叫者ID,因为呼叫文件中的CallerID用于“Channel”参数。一旦呼叫在Asterisk服务器内,Number_B将接收频道中的号码作为呼叫者ID,这是完全合理的。如果要设置不同的数字,则需要使用以下内容:

exten => _X.,n,Set(CALLERID(num)=some_callerid)

为了更改Number_B分支上的来电显示。

***新增加:

从dahdi.conf中删除以下行:

useincomingcalleridondahditransfer=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes

重新加载Asterisk并重试。