asterisk上加载G729 codec
原创--转帖请注明出处http://www.cnblogs.com/pipelone
tips:查看cup信息,可以执行 cat /proc/cupinfo;
查看内核信息和GCC,可以执行 cat /proc/verison
从此网站http://asterisk.hosting.lv/上下载适合自己机器及软件版本的模块组;
安装codec只需要将下载的模块复制到 /usr/lib/asterisk/modules
OK,我的机器上P4,asterisk1.4,SO
codec_g723-ast14-gcc4-glibc-pentium4.so
codec_g729-ast14-gcc4-glibc-pentium4.so
加载G729
然后重新启动asterisk服务即可;
如果不停止服务,可以直接加载一下模块就可以了,在shell下执行
#asterisk -rx "load codec_g723-ast14-gcc4-glibc-pentium4.so" #asterisk -rx "load codec_g729-ast14-gcc4-glibc-pentium4.so"
如果没有发生任何错误的话,codec就已经安装完成啦,有可能会出现加载失败的错误cannot restore segment prot after reloc: Permission denied
原因可能是启用了selinux
禁止掉selinux的方式是修改
/etc/sysconfig/selinux文件的内容SELINUX=disabled
在asterisk控制台下。我们查看转换需要耗费的时间
localhost*CLI> core show translation
这体现出CPU的处理能力,所以不同配置的硬件和系统环境,得到的数据是不同的;
由上图列表可以可见,g.723和g.729和其它几种编解码方式的转换效率并不是很好,起码是在asterisk系统里是这样的,如果非要使用g729协议,那就尽量减少不同的编解码方式之间的转换。所以尽量采用同一种编解码方式可以大大提高系统运行的效率。
OK,这样,我们就可以在sip分机的属性上添加如下行:
allow=g729
使得他支持g729的codec了;
到今天才发现原来x-lite是不支持g729的,而商业版本eyebeam是支持的,这下才体验到了原来免费的和付费的差异了!
参考资料:
https://www.digium.com/en/supportcenter/documentation/viewdocs/G729