asterisk 问题

Q:SIP可以呼通,但听不到声音
A:一般是NAT问题造成。
如果Asterisk处在NAT的后面,则Asterisk的配置如下:
--------------------------------------------------------------

sip.conf:
;externip = 200.201.202.203
externhost=dmlink.dvrdns.org
localnet=192.168.0.0/255.255.0.0


rtp.conf
rtpstart=10000
rtpend=20000
NAT网关端口映射:
SIP端口 5060 和 RTP端口10000-20000
--------------------------------------------------------------
需要配置externip或externhost,这是Asterisk的公网IP,还需配置localnet,这样当Asterisk判断外部来的SIP会话时(本地是localnet,对方不是localnet),会在Invite应答(200 OK)的SDP 中,将Connection Information置为外部IP,而Media Description的端口从[rtpstart,rtpend]中分配。
这样,SIP客户端收到Invite应答(200 OK)后,就知道了Asterisk的RTP公网IP+端口,SIP客户端的语音流发到这个地址,NAT网关(端口映射)转发到Asterisk。

而如果SIP客户端也处于一个NAT之后,Asterisk如何判断出SIP客户端的RTP公网地址呢?

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

所以,Asterisk收到来自SIP客户端的RTP包后,Asterisk会记录此包的源地址和端口(是经过了客户端侧NAT转换后的公网IP+端口), Asterisk的语音流将被发到这个地址。客户端侧NAT网关会自动转发到对应的Asterisk的内网地址。

如此,一个NAT之后的SIP客户端(无需ICE)已经可以拨入一个配置了端口映射的NAT后的Asterisk了。

 

Q:Asterisk支持传真吗?
A:支持。 如果你是安装的Trixbox,则系统已经附带了两个传真收发命令rxfax和txfax。如果是自己安装编译的asterisk,则需要自行安装rxfax和txfax这两个app。

 

Q:数字卡PRI呼叫被交换机直接挂断
A:可能有中继号码限制.需要设置callid为指定号码。可以在拨号脚本中使用SetCallerID功能指定。
如果局方需要设置国内国际,则zapatal.conf加上
pridialplan=local
prilocaldialplan=local

 

 

 

Q:通话中噪音大,有回声
A:
1、首先要在配置文件 /etc/asterisk/chan_dahdi.conf 中激活回音消除,请把以下选项设置为 yes :
2 echocancel=yes
2 echocancelwhenbridged=yes
2 echotraining=yes
2、调整 rxgain/txgain 设置为了取得好的回音消除效果,必须调整zapata.conf 配置文件中的 rxgain(输入增益) 和 txgain (输出增益)到合适的值,请按照以下步骤来进行:
1. 把 rxgain/txgain 的值都修改为 1.0;
2. 用 asterisk 板卡上的通道来拨打一个电话,也就是说需要建立一个通过板卡的通道进行的通话;
3. 运行 ztmonitor 命令来查看通道收、发音增益是不是在一个比较优化的范围:(注,ztmonitor 命令的第一个参数是你正在通话的通道号)
4. 根据你的实际情况来调整 rxgain 和 txgain 到一个优化的值。rxgain 和 txgain 的值如果都偏小,你就在配置文件 Zapata.conf 中增加rxgain 和 txgain 的值。
5. 很多情况下,把 rxgain 和 txgain 的值设置为 8.0 会取得比较好的回音消除效果。

 

Q:模拟卡外线通话有时候意外中断
A:某些地方的汇线通或者线路质量不佳时常出现这个问题。
需要修改/etc/modprobe.conf,将install wctdm这一行改成下面的样子:
install wctdm /sbin/modprobe --ignore-install wctdm battdebounce=128 && /sbin/ztcfg

 

Q:模拟卡检测不到外线挂机


2 Q/ o: ` K8 E" ?: ^2 bA: 请检查asterisk的音调区域是否选择正确,检查/etc/system/dahdi.conf及/etc/asterisk/indications.conf。然后打开/etc/asterisk/chan_dahdi.conf,修改busydetect=yes打开忙音检测,并且修改busycount=6即可。

 

Q:听到的摘机信号音与普通的电话摘机信号音不一致。
$ j5 y6 _( {" x* HA:需要修改一下配置文件:6 U) g0 Y! R, f9 s6 k
/etc/system/dahdi.conf中把 loadzone 和 defaultzont 改为cn
) l! F1 [* E+ J. a" |; `# X, K0 T /etc/asterisk/indications.conf把country设置为cn0 n* C8 o- F( S8 F$ b5 ?
需要重新加载zaptel和asterisk,或者重启系统。8 I. f9 J% @.


Q, 电话突然中断

1)BusyDetect
2)CallProgress
BusyDetect和CallProgress可能会导致Asterisk错误的检测电话挂断. 把BusyCount设置为一个更大的值,或者关掉CallProgress,可能能解决这个问题. 过量的IRQ缺失也有可能会导致这些问题的出现.
参考这个网站:http://kb.digium.com/entry/71/
3) 设置
/etc/modprobe.conf试试看,安装wctdm: install wctdm /sbin/modprobe --ignore-install wctdm battdebounce=128 && /sbin/ztcfg

转载于:https://www.cnblogs.com/dancheblog/p/3508780.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值