为Asterisk增加G.723语音编码和G.729编码

G.723语音编码是商业编码,需要授权使用的。因此Asterisk等软件默认是不含G.723语音编码so文件。如何增加G.723呢?我们先来了解下Asterisk支持的语音编码。

Asterisk语音编码

随着语音通信技术的发展,压缩语音信号的传输带宽,降低信道的传输速率,一直是人们追求的目标。语音编码能够使表达语音信号的比特数目最小,在实现这一目标的过程中担当重要的角色。

在Asteirsk CLI命令模式下运行 core show codecs,可以看到Asterisk支持的语音编码/视频编码格式:

    INT    BINARY        HEX   TYPE       NAME   DESC 
      1 (1 <<  0)      (0x1)  audio       g723   (G.723.1) 
      2 (1 <<  1)      (0x2)  audio        gsm   (GSM) 
      4 (1 <<  2)      (0x4)  audio       ulaw   (G.711 u-law) 
      8 (1 <<  3)      (0x8)  audio       alaw   (G.711 A-law) 
     16 (1 <<  4)     (0x10)  audio   g726aal2   (G.726 AAL2) 
     32 (1 <<  5)     (0x20)  audio      adpcm   (ADPCM) 
     64 (1 <<  6)     (0x40)  audio       slin   (16 bit Signed Linear PCM) 
    128 (1 <<  7)     (0x80)  audio      lpc10   (LPC10) 
    256 (1 <<  8)    (0x100)  audio       g729   (G.729A) 
    512 (1 <<  9)    (0x200)  audio      speex   (SpeeX) 
   1024 (1 << 10)    (0x400)  audio       ilbc   (iLBC) 
   2048 (1 << 11)    (0x800)  audio       g726   (G.726 RFC3551) 
   4096 (1 << 12)   (0x1000)  audio       g722   (G722) 
  65536 (1 << 16)  (0x10000)  image       jpeg   (JPEG image) 
 131072 (1 << 17)  (0x20000)  image        png   (PNG image) 
 262144 (1 << 18)  (0x40000)  video       h261   (H.261 Video) 
 524288 (1 << 19)  (0x80000)  video       h263   (H.263 Video) 
1048576 (1 << 20) (0x100000)  video      h263p   (H.263+ Video) 
2097152 (1 << 21) (0x200000)  video       h264   (H.264 Video)

G.723,G.729,G.711,gsm就是语音编码中较常见的几种。其中G.711 ulaw主要用在美国,日本,加拿大等国家,中国等其他国家一般都用G.711 alaw。 采用G729等码率较小的编码可以减少IP带宽占用,当然,音质损耗也比较大。随着网络带宽的不断扩展,

安装G.723和G.729语音编码

在本文的开头,有下载源代码的链接。如果你已经编译好了上面的源代码,下面我们开始安装和设置了。如果不想自己编译的话,也可直接下载编译好的二进制文件。
安装步骤如下:

    • 删除老的codec_g729和codec_g723开头的文件,这些文件在 /usr/lib/asterisk/modules 目录下。没有?没有当然就不用删了_
    • 把从本站下载的新的 codec_g729和codec_723 开头的文件拷贝到 /usr/lib/asterisk/modules 目录下,一般来说,建议把文件名改为codec_g723.so和codec_g729.so,这样看着很规范。
    • 重启 Asterisk 程序。如果不方便重启的话,也可以在Asterisk CLI下面用"module load codec_g723.so"的方法来加载。如果无法正确加载,可能是选错了so文件。

Asterisk语音编码的相关设置

设置:安装完成之后,开始设置咯,需要修改几个配置文件,设定步骤如下:

设置G.723的发送码率

G.723.1 发送码率(send rate)是在Asterisk codecs.conf 文件里更改:

[g723]
; 6.3Kbps stream, default
sendrate=63
; 5.3Kbps
;sendrate=53

这个选项主要是外呼语音用。不会影响呼入的媒体流,呼入会自动识别编码的。codec.conf文件放在/etc/asterisk目录下。

指定启用的语音编码

在/etc/asterisk/下面的 sip.conf 和 iax.conf 里指定需要启用的编码,可以使用全局定义,也可以对指定的端设定,格式如下:

disallow=all
allow=g729
allow=g723

Asterisk for dummies

重启 Asterisk 程序。如果不方便重启的话,也可以在Asterisk CLI下面用"sip reload"和"iax2 reload"。

声明: 本文介绍程序和代码仅供教育和学习使用。商业用途需要向G.729/723.1 专利持有人支付授权费用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值