Astersik 遇到的问题及解决 (一)

发现记忆定期丢失,故记录一些东西,解放记忆。
使用的版本:Asterisk 1.8.15
 
Q:安装过程中总是安装不上mysql相关的库,比如app_mysql.so,res_config_mysql.so, cdr_mysql.so
A:安装make之前运行make menuselect,选中mysql相关的选项,保存退出后继续安装。
 
Q:call能建立起来但是RTP语音出现单通或者不通的情况。
A:
1>  如果Asterisk在NAT里,CLIENT在火墙外,请确认rtp.conf 里的rtpstart, rtpend的范围是否在NAT已经打开了相应的映射。
2>  确认是否有一方是经过防火墙或者路由器之后再连接到Astersik的,这样SIP SDP里的IP为内网里的内网地址,当Asterisk根据SDP的RTP接收地址发RTP包时,会向那个Asterisk找不到的内网地址发包。
此时需要配置nat相关配置,如下:
externip=x.x.x.x
;externhost=aaa.net
externrefresh=10
localnet=10.10.200.0/255.255.0.0 ;Zero conf local network
nat=comedia 
上面这个配置的意思是:当SDP中的IP不在localnet标识的范围时,Asterisk会将SDP里的地址转换为externip的地址。RTP的路由规则为comdia,也就是从哪个地址来的RTP流,就按该地址返回另一端发过去的RTP,这样就不再依赖SDP里的地址是否能访问到。
1.8之后才有的comdia,之前的还请使用nat=yes
 
Q:实物电话挂机后,软电话端收不到BYE,检测不到对方挂机。
A:修改配置文件 chan_dahdi.conf, 打开busydetect=yes, busycount=4 使得Asterisk能检测挂机音,识别后给对端SIP设备发BYE。 
 
Q:实际的RTP语音已经传输失败了,或者其他原因SIP设备没有发出BYE, Asterisk却一直给这个CALL留着channel通道,没有释放。
A:在sip.conf的general里加入rtptimeout=N  (N的单位为秒)配置,含义为N秒没有RTP流时主动切掉这个CALL。
 
Q:通话质量不好,回音影响严重
A:chan_dahdi.conf 文件中的相关配置:
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
rxgain=8
txgain=8
;rxgain,txgain的数字需要调整尝试,找到合适的数值。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值