1335600703_7178.jpg

 

这些模块通常都是以.so为扩展名的文件,这些文件存放在Asteriskmodules子目录中(通常是/usr/lib/asterisk/modules)。在Asterisk启动时,它会加载这些文件,把它们的功能添加到系统中。

 

Asterisk的模块中,内核部分的文件名是pbx_xxxxx.so

 

通道驱动模块

            例如:SIP通道驱动,用于与使用SIP协议的终端设备通信。它为内核转换SIP信令。这意味着Asterisk的内核是与信令无关的。因此,Asterisk不仅仅是SIP PBX,它是多协议的PBX

所有通道驱动都以 chan_xxxxx.so命名,比如说chan_sip.sochan_dahdi.so

 

文件格式驱动模块

      Asterisk利用文件模块从网络上获取音频或视频,转换成文件,存储在磁盘中;反过来从磁盘中读取文件并转换为媒体流。

       文件格式模块以format_xxxxx.so命名,比如说 format_wav.soformat_xxxxx.so

 

 

编解码模块

         编解码模块都以codec_xxxxx.so命名,比如说codec_alaw.so codec_ulaw.so

        Asterisk在接收和发送媒体(音频和视频)时,都用到编解码模块。这个模块还完成不同编码算法间的转换工作。

        Asterisk提供了多种媒体格式的支持,包括:ADPCM, 32kbit/sG.711 alaw, 64kbit/sG.711 ulaw, 64kbit/sG.726, 32kbit/sG.726, 32kbit/sGSM, 13kbit/sLPC-10, 2.4kbit/s

        其它的如G.729AG.723.1,是需要专利许可的

 

 

桥接模块

        从Asterisk..2开始,Asterisk引入了桥接呼叫的一种新方法。它依赖各种桥接模块,控制为呼叫参与者间的媒体流混频方式。新的桥接方式,是一种更灵活、更高效的设计。

        桥接模块以 bridge_xxxxx.so命名,比如bridge_simple.so bridge_multiplexed.so.

 

 

呼叫事件日志(Call Event Log)驱动

         CELCDR类似,但它更侧重于记录在呼叫过程中,Asterisk内部发生了什么。

         CEL记录呼叫过程中发生的各种事件。正因如此,它通常记录了比CDR更详尽的事情。比如说CEL可能会记录下这样的内容:ALICE呼叫BOBBOB的电话在振铃20秒后,BOB的移动电话响铃了,再过15秒,呼叫转到BOB的语音信箱去了,然后ALICE留下一条25秒长的语音留言,然后挂机。系统还能够自定义需要记录的事件。

         CEL模块以cel_xxxxx.so命名,比如cel_custom.socel_adaptive_odbc.so

 

呼叫详细记录(CDR)驱动

       CDR模块的用途是把呼叫详细记录按不同的格式要求存储。通常每一通呼叫生成一条通话记录,记录内容包括主叫、被叫、通话时长等等。

       CDR模块都以cdr_xxxxx.so命名,比如说cdr_csv.so cdr_pgsql.so

拨号规则应用模块

           Application为系统提供呼叫相关的功能。这些应用可能是应答、播放提示音、挂机等功能。

应用模块为系统提供呼叫功能。         所有应用模块,都以app_xxxxx.so命名

 

 

 

 

(1)/etc/dahdi/system.conf 板卡信息配置

[root@localhost ~]# cat /etc/dahdi/system.conf
span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16
echocanceller=none //消除回声
loadzone =cn
defaultzone =cn

一个span对应一个E1话路,第一个1表示E1编号,第二个1表示时钟源为主,ccs是frame格式,hdb3是编码格式;

bchan:话路,数据通道,30个时隙

dchan:信令,分组信息通道,第16时隙

(2)/etc/asterisk/chan_dahdi.conf  PRI协议模块的参数配置

[root@localhost ~]# cat /etc/asterisk/chan_dahdi.conf
[trunkgroups]
[channels]
context=from_pri //与extensions.conf中的from_pri对应
switchtype = euroisdn //交换机类型,说明PRI信令采用欧洲标准
;switchtype = national
;pridialplan=national
signalling = pri_cpe  //信令类型,用户侧;pri_net表示网络侧
;pri_net:net, pri_cpe:user
group=1
channel => 1-15,17-31 把这个E1的30条话路分到分组1
echocancel=no
echocancelwhenbridged=no