今天找资料时候,发现这文章写的比较全面。转过来,以备查找。

Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括:

  1模拟接接口,如你的电话线或模拟电话.

  2数字线路,T-1E-1线路

  3Voip协议,SIPIAX

  目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2

  使用接口配置文件

  1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道.

  2.zapata.conf:硬件配置Asterisk的接口.

  3.extension.conf:拨号方案文件.

  4.sip.conf:配置SIP协议的文件

  5.iax.conf:配置呼入和呼出IAX通道的文件

FXOFXS通信

    区别:区别简单,就在于连接的那端提供拨号音.FXO不生成拨号音,而是接收.FXS端口提供拨号音和震铃电压,在有呼叫的时候提醒用户.两者接口都提供双向通讯(同时双方向的通讯传输).

    如果Asterisk有个兼容FXO端口,就可以把电话线接入这端口,可以使用这根电话线呼叫和接收电话呼叫.同理,如果有个FXS端口,可以连接一部模拟电话,Asterisk就可以呼叫这部电话,可能也可以呼叫.(端口:通过配置使用的信令进行定义)

    FXS卡必须像中心局(CO)进行运转,使用FXO信令.同理,FXO卡连接CO,就意味着它需要像终端进行运转,使用FXS信令.

Zaptel配置(FXO)

    /etc/zaptel.conf文件,用于配置硬件,可以定义FXS端口与FXO信令的配置

fxsks=1  ;定义fxs端口采用通道1ks信令协议

;fxoks=2  ;定义fxo端口采用通道2ks信令协议

loadzone=us

defaultzone=us

 

    信令协议:Loop start(ls),ground start(gs),kewlstart(ks),使用ks外信令协议,fxoks中的ks替换lsgs,Asterisk的模拟电路推荐ks信令协议.

  

******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.confiax.conf文档后,分别需要装载chan_iax2.sochan_sip.so

 Zapata配置

[trunkgroups]  ;定义一个主干组

; define any trunk groups

[channels]    ;硬件通道和他们选项信令方式.

; hardware channels  ;硬件通道

; default  ;默认 

busydetect=yes   ;增加这两行,要不FXO口不能检测到挂机信号。
busycount=5 

usecallerid=yes    ;设置来电显示

hidecallerid=no    ;设置去电不隐藏号码

callwaiting=yes   ;设置呼叫等待

threewaycalling=yes   ;开启三方通话(先闪断,再呼叫第三方,再闪断,就可以实现三方通话)

transfer=yes    ;转叫前转(需要三方通话支持)

echocancel=yes   ;回声消除

echotraining=yes   ;回音练习(会话前发个声音,用于测试回声)

; define channels  ;定义通道

context=from-test    ; Context内执行指令需要在extensions.conf内定义 [from-test]

signalling=fxs_ks    ;FXO通道使用FXS信令

channel => 2 ; PSTN放在端口2

    允许zaptel和其它设备通过PCI硬件安装到系统中,编辑udev

[root@ask asterisk]# vi /etc/udev/rules.d/50-udev.rules

#在末尾添加上以下

KERNEL="zapctl",        NAME="zap/ctl"

KERNEL="zaptimer",      NAME="zap/timer"

KERNEL="zapchannel",    NAME="zap/channel"

KERNEL="zappseudo",     NAME="zap/pseudo"

KERNEL="zap[0-9]*",     NAME="zap/%n"

Dialplan配置
 

    基本的拨号方案,使用Echo()校验工作通道双向通讯; 

[from-test]

exten => s,1,Answer()

exten => s,n,Echo()

SIP

  

    SIP(会话初始协议),通常用于VOIP电话,进行呼叫建立,呼叫协商,呼叫结束.它帮助两个端互相通认,但它不处理媒体;当呼叫建立后,他通过实时传输协议(RTP)在电话A到电话B直接传输媒体.

 SIPRTP

    SIP是一个应用层的信令协议.他使用的端口是5060(通常)进行通信.SIP可以通过UDPTCP传输层协议进行传输.Asterisk目前没有TCP用于传输SIP信息.

    RTP用于端点间传输媒体(语音),AsteriskRTP使用大数字的无特权端口(默认10,00020,000)

    SIP优点:普通的被接受和结构灵活.其它的VOIP协议还有H.323,IAX,MGCP.