分享

Asterisk语音板卡问题汇总

 MikeDoc 2012-03-02
Q:asterisk系统没有检测到FXS内线模块
A:请先查看模块是否有插严,然后检查电源接头是否插上。如果卡上有内线模块,则必须将PC机箱电源引出的插头插到卡上右边的电源接口上。7 V' `* ~) t7 H
6 y' v, M! V; m
Q:模拟卡检测不到外线挂机
A: 请检查asterisk的音调区域是否选择正确,检查/etc/system/dahdi.conf及/etc/asterisk/indications.conf。然后打开/etc/asterisk/chan_dahdi.conf,修改busydetect=yes打开忙音检测,并且修改busycount=6即可。1 o1 o' G; P  w. }

Q:听到的摘机信号音与普通的电话摘机信号音不一致。3 N8 o- }5 W( k. z3 e' \
A:需要修改一下配置文件:
       /etc/system/dahdi.conf中把 loadzone 和 defaultzont 改为cn
     /etc/asterisk/indications.conf把country设置为cn. [; ?6 M) X; o/ [4 m, o4 ~, ^
需要重新加载zaptel和asterisk,或者重启系统。
+ X# a2 g9 o) ]1 ?$ d( ^
Q:模拟卡外线通话有时候意外中断
A:某些地方的汇线通或者线路质量不佳时常出现这个问题。1 x( z# L" l) B7 |6 g) F
需要修改/etc/modprobe.conf,将install wctdm这一行改成下面的样子:: Q: s% K% \, z; B1 U3 ^2 ?
install wctdm /sbin/modprobe --ignore-install wctdm battdebounce=128 && /sbin/ztcfg& R) E0 m# Q- b5 z
' H5 y, a* c% E  h' k3 k0 Z

Q:通话中噪音大,有回声4 t3 |' _" W3 h9 `
A:
1、首先要在配置文件chan_dahdi.conf中激活回音消除,请把以下选项设置为yes:
        echocancel=yes
        echocancelwhenbridged=yes8 {" g8 A2 E0 H6 O6 ~* \
        echotraining=yes
2、调整rxgain/txgain设置; `) U, C5 M5 ]8 O9 z
为了取得好的回音消除效果,必须调整chan_dahdi.conf配置文件中的rxgain(输入增益)和txgain(输出增益)到合适的值,请按照以下步骤来进行:
1.        把rxgain/txgain的值都修改为1.0;
2.        用asterisk板卡上的通道来拨打一个电话,也就是说需要建立一个通过板卡的通道进行的通话;0 y2 V! S7 u# J* P9 E$ ~4 v
3.        运行dahdi_monitor命令来查看通道收、发音增益是不是在一个比较优化的范围:(注,dahdi_monitor命令的第一个参数是你正在通话的通道号)+ {; ?  b% z/ }" b

4.        根据你的实际情况来调整rxgain和txgain到一个优化的值。比如上图所表现的,rxgain和txgain的值都偏小,你就在配置文件chan_dahdi.conf中增加rxgain和txgain的值,使得图形中所表示出来的值处于中间的位置。& d/ z$ H8 f8 a6 w
5.        很多情况下,把rxgain和txgain的值设置为8.0会取得比较好的回音消除效果。

9 v3 Y) j1 a! y% l- q7 N
Q:模拟卡没有主叫显示或者显示不正确
A:如果排除局端可能(直接接外线能正常收到主叫,经过asterisk卡后收不到主叫),这个问题通常是因为dahdi驱动版本和asterisk版本不匹配造成。Asterisk和dahdi一般是成对发布的,版本之间有对应关系,不同版本的dahdi和asterisk是否可以混用需要仔细验证。一旦发生主叫识别问题,则最为简便可靠的验证方式是使用原装的trixbox2.0光盘重新安装系统后验证主叫显示。
+ G1 U& a) v, h0 o" m1 n
Q:SIP可以呼通,但听不到声音
A:一般是NAT问题造成。
如果Asterisk处在NAT的后面,则Asterisk的配置如下:  - P/ e% T" p: a* N
-------------------------------------------------------------- 7 C2 L6 Z6 E- a8 w1 o- T
sip.conf: , j; _( C, F8 [$ K; |& c
  1. ;externip = 200.201.202.203
  2. externhost=dmlink.dvrdns.org* f8 u/ V3 R7 N" J: d* s
  3. localnet=192.168.0.0/255.255.0.0
复制代码

/ b0 v- k3 l- A9 X% m$ i
% t$ @( ]) m3 ^7 z/ a' r  n
rtp.conf 
  1. rtpstart=100002 b) p1 ?- q! w. G% x- Y
  2. rtpend=20000
复制代码



NAT网关端口映射: 
- u4 q7 I; f/ h/ N
SIP端口 5060 和 RTP端口10000-20000 5 w4 a4 a! k- F" q; Z
- N# l* t) a+ Q* v0 D7 U) C
-------------------------------------------------------------- # z( P, o3 U; o6 f8 j$ T
. U/ L5 `0 A% K4 m2 o2 k0 i
需要配置externip或externhost,这是Asterisk的公网IP,还需配置localnet,这样当Asterisk判断外部来的SIP 会话时(本地是localnet,对方不是localnet),会在Invite应答(200 OK)的SDP 中,将Connection Information置为外部IP,而Media Description的端口从[rtpstart,rtpend]中分配。 9 V8 G' M$ i# T$ N% J, u$ ]

这样,SIP客户端收到Invite应答(200 OK)后,就知道了Asterisk的RTP公网IP+端口,SIP客户端的语音流发到这个地址,NAT网关(端口映射)转发到Asterisk。 
! h( I5 W( `1 D: i" d- b
而如果SIP客户端也处于一个NAT之后,Asterisk如何判断出SIP客户端的RTP公网地址呢? 

经过Asterisk代码的分析,Asterisk的SIP并没有实现ICE(Interactive Connectivity Establishment)到SIP的映射,即没有处理ICE在SDP的Media块中定义的一个新属性alt(候选IP地址和端口),而是采用了一个简单的方式,即当NAT=yes时,从哪儿来的到哪儿去(SIP也是用这种策略处理)。 * P" F! |5 A1 q# c- R8 l

所以,Asterisk收到来自SIP客户端的RTP包后,Asterisk会记录此包的源地址和端口(是经过了客户端侧NAT转换后的公网IP+端口), Asterisk的语音流将被发到这个地址。客户端侧NAT网关会自动转发到对应的Asterisk的内网地址。 # R1 {" R! J5 L% D9 S
# U8 W# Q5 Y1 |" F
如此,一个NAT之后的SIP客户端(无需ICE)已经可以拨入一个配置了端口映射的NAT后的Asterisk了。8 Z+ w* A6 {  K4 k% b

Q:Asterisk支持传真吗?( ?# R2 ]/ H) y0 x- ~# B  `5 l
A:支持。 如果你是安装的Trixbox,则系统已经附带了两个传真收发命令rxfax和txfax。如果是自己安装编译的asterisk,则需要自行安装rxfax和txfax这两个app。# \5 N4 g1 z3 n. k3 S" G) r
- A  J( l& s: E
Q:传真收发送不成功, Q+ z, G& s' T) f0 \: a. ~  A
  s3 e+ \, i3 `, e$ v. y* b

Q:Asterisk支持7号信令吗?8 g1 d. P* S9 m  O5 s
A:asterisk本身不支持7号信令。不过有很多开源的第三方模块。 

Q:Asterisk支持H323吗?( ~9 v7 j" K: w+ d9 y" ?
A: 支持; j6 q% F3 Q5 r3 e4 u) w
  A- I& D1 M( h& M3 s' c
Q:多块卡可以插到一台机器上吗?
A:可以。
8 U$ V: B! b8 T* K4 J" F  Z
Q:Asterisk卡需要什么样的机器?5 }+ w* p2 F5 N& e5 r
A:一般说来,跟具体的操作系统、是否启用回声消除、是否做编码转换、是否录音等有很大关系。
      一个典型的IVR应用,不包括录音,4E1至少P4 2.8G 2G内存以上配置。
      一个SS7转H323应用,4E1建议双至强2.8G。' S, {1 \+ M) a3 |- y: e' S3 y
      9 t; G1 D, U( m  [& s! b; G% K; h
Q:G729协议呼叫软交换没有回铃音$ ?! Z- D" O0 N& a& g6 P
A:G729模块问题。检查show translation G729是否正确安装,如果没有,则需要检查/usr/lib/asterisk/modules/codec_g729.so 是否存在。G729不是自带的,需要自行安装。
如果有,则用G729的协议拨打到asterisk上放音,看能否正确听到声音。如听不到则版本不对,不能正常工作。如听到则应该就正常了。

Q:只能听到振铃,听不到彩铃% s+ f' U  _, H3 x# l' u7 U
A:去掉dial(xxx,,..t..)命令中的t参数。T参数会强制asterisk产生回铃音。
# S+ J$ }4 s7 e# q2 v6 f6 N' p
Q:数字卡PRI呼叫被交换机直接挂断
A:可能有中继号码限制.需要设置callid为指定号码。可以在拨号脚本中使用SetCallerID功能指定。
  如果局方需要设置国内国际,则chan_dahdi.conf加上0 y- l- o! L& B, i% T1 r
  1. pridialplan=local4 _5 ~" ?4 K& T1 Z' B
  2. prilocaldialplan=local
复制代码
9 m4 g) l) d9 _$ U
相关调试命令:% i+ S/ _! l# g& X
Pri debug span 1% P# F5 i: v$ \; J" b: F& c9 H

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多