Sangoma语音编码转换卡常见问题回答

来自最权威最新完整开源SIP,语音通信,融合通信中文技术文档资料,提供详细的Asterisk Freepbx, FreeSBC, 免费会话边界控制器,网关,语音板卡,IPPBX,SBC配置资料-asterisk,freepbx,freesbc 用户手册 界面配置,呼叫路由,IVR, 网关对接,拨号规则,SIP 分机呼叫,pjsip, IVR, 录音, CDR, 队列呼叫,振铃组,CLI 命令中文资料手册
跳转至: 导航搜索

为什么产品说明里面支持iLBC,但是为什么在translators列表不能显示

asterisk存在一个bug,如果两个相同的编码同时注册的话,asterisk可能奔溃。 解决办法:

参考链接:asterisk 编码设置
然后在sangoma_codec.conf 文件添加:register=ilbc

在使用编码卡的时候,为什么听不到语音?

在asterisk CLI 命令下:

CLI> sangoma show rtp statistics

如果此命令输出是0 或者值接近0,说明网络正常。如果值大于0,说明网络有问题。

在FreeSwitch CLI 命令下:

CLI> sangoma_codec stats <session number>

如果 Rx 数据包没有递增,说明TX 数据包发送到了编码芯片,但是处理的数据包木返回到asterisk或者freeswitch。 可能IP地址出现了问题。解决办法,在sangoma_codec.conf 添加:

rtpip= <network interface chosen for transcoder>(例如:rtpip=10.1.1.1)

或者在Freeswitch 下面添加:

<param name="rtpip" value="10.1.1.1"/>

保存文件,重新加载模块。

为什么加载编码模块的时候asterisk会奔溃?

原因,astersik 有bug,具体参考:http://issues.asterisk.org/view.php?id=17092。 为了防止此问题发生,sangoma编码卡编译以后,添加其他参数去解决这个问题。解决办法:

确认codec_sangoma.so已经在/usr/lib/asterisk/modules/ 
确认/etc/asterisk/modules.conf 添加 noload=>codec_g722.so (例如不加载g722)

保持文件,重新加载asterisk,将会看到其他的编码列表。

为什么asterisk工作一段时间后突然停止编码处理?

如果asterisk工作一段时间以后,突然不处理语音编码,可能是防火墙引起。默认的
sngtc 服务端默认监听网卡地址,如果sngtc 服务端需要特别指定一个端口监听,防火墙
必须允许sngtc 服务端和客户端(asterisk/FreeSwitch)通信。
sngtc 服务端的配置情况,执行命令:netstat -npl
如果客户满意修改默认的配置,sngtc_server 正在监听 0.0.0.0地址。如果显示是其他的IP地址,请
开启防火墙,允许此IP地址通过。
如果此问题一直发生,检查防火墙 : /sbin/iptables -L
清除防火墙数据:

/sbin/iptables --flush

然后再运行

/sbin/iptables -L

安装D100 PCI-E卡以后,系统显示报错NMI debug信息

安装D100 PCI-E编码卡以后,如果系统显示报错信息:

"Uhhuh. NMI received. Dazed and confused, but trying to continue"

原因可能是没有安装最新的tg3 broadcom 网卡驱动,请下载安装此网卡驱动

为什么设置了语音编码卡,但是asterisk不能启动?

正确设置编码卡以后,asterisk启动失败,查看/var/log/asterisk/messages 日志,有以下报错信息:

ERROR[8124] res_config_ldap.c: No directory URL or host found
ERROR[8124] res_config_ldap.c: Cannot load LDAP RealTime driver.
ERROR[8124] codec_sangoma.c: Refusing to load this module with non-dahdi timing, please disable all res_timing_*.so modules and leave res_timing_dahdi.so as the only timing source in modules.conf 
ERROR[8124] codec_sangoma.c: You can load this module with other timing sources by setting allownondahditiming=yes in sangoma_codec.conf general configuration section

有两种解决办法:

1)编辑/etc/asterisk/modules.conf 文件,不加载所有的 res_timing_*.so模块,除了res_timing_dahdi.so. 
2)或者编辑/etc/asterisk/sangoma_codec.conf ,添加一行: allownondahditiming=yes

保存退出,然后重新启动asterisk服务。

已经设置了sangoma编码模块,为什么有的编码在 CLI 命令 'core show translation'下显示 999999?

打开文件/var/log/asterisk/messages,有以下日志错误:

ERROR[8269] codec_sangoma.c: Failed to create Sangoma transcoding session
WARNING[8269] translate.c: Translator 'sngalawtog729' appears to be broken and will probably fail.
ERROR[8269] codec_sangoma.c: Create Transcoding Session Error

以上问题,说明编码服务器端没有启动,启动服务器端:

sngtc_server_ctrl start

然后重新启动asterisk

为什么执行 "sngtc_cfg --server" 配置编码卡时失败?

当执行 sngtc_cfg --server 可能出现以下错误:

[SNGTC_INFO ] Configuring Sangoma Transcoding Server
[SNGTC_INFO ] Configuring Sangoma Transcoding for Asterisk
[SNGTC_INFO ][SNGTC_INFO ][SNGTC_INFO ] Detecting Transcoding Card & Modules ...
[SNGTC_ERROR] sngtc_cfg: Failed to detect transcoding modules!

可能是以下几个原因导致:

1)执行 lspci 命令,没有发现 broadcom(PCIe卡) 或者 micrel(PCI卡). 按照链接执行安装:   http://wiki.sangoma.com/sangoma-media-transcoding-single-install#Ethernet Setup
2)如果编码卡网卡接口没有启动,执行命令 ifconfig,如果没有发现此网卡,执行此命令 ifconfig -a
   启动 网卡 ifconfig ethX up (X代表网卡接口,例如 eth0,eth1) 
3) 如果编码卡的网卡没有得到IP地址,执行命令:ifconfig ethX (X代表编码卡的网卡IP地址)
4)指定一个IP地址,然后重新执行 sngtc_cfg --server 命令

为什么Sangoma编码在命令行"core show translation" 中translation消耗相对高一些?

如果和asterisk其他编码对比的话,Sangoma编码在命令行"core show translation" 中translation消耗相对高一些。
这是编码卡默认的设置机制决定的。如果Sangoma模块成功注册的情况下,Asterisk会强制使用sangoma编码卡模块。
特别重要的是,Sangoma编码模块只是支持编码需要转换的环境下,而不是作为一个分离的编码转换中间步骤。
为了在此状态下工作,Sangoma注册的优先级高于asterisk其他编码,如果系统不需要调用Sangoma编码转换的情况下,
Asterisk直接启动asterisk自带的编码模块。