今天找资料时候,发现这文章写的比较全面。转过来,以备查找。
Asterisk
译为星号
(*)
在很多应用中被用做通配符
,Astrisk
做为
PBX
系统的完美名称
,
原因之一是
Asterisk
可以连接数目庞大的接口类型
,
包括
:
1
模拟接接口
,
如你的电话线或模拟电话
.
2
数字线路
,
如
T-1
和
E-1
线路
3Voip
协议
,
如
SIP
和
IAX
目前正式版本是
IAX2,
但是
IAX1
的所有格式都已经停掉
.
所以当说到
IAX
都是特拽
IAX2
使用接口配置文件
1.Zaptel.conf:
硬件接口基层配置
,
我们将建立一个
FX0
和一个
FXS
通道
.
2.zapata.conf:
硬件配置
Asterisk
的接口
.
3.extension.conf:
拨号方案文件
.
4.sip.conf:
配置
SIP
协议的文件
5.iax.conf:
配置呼入和呼出
IAX
通道的文件
FXO
与
FXS
通信
区别
:
区别简单
,
就在于连接的那端提供拨号音
.FXO
不生成拨号音
,
而是接收
.FXS
端口提供拨号音和震铃电压
,
在有呼叫的时候提醒用户
.
两者接口都提供双向通讯
(
同时双方向的通讯传输
).
如果
Asterisk
有个兼容
FXO
端口
,
就可以把电话线接入这端口
,
可以使用这根电话线呼叫和接收电话呼叫
.
同理
,
如果有个
FXS
端口
,
可以连接一部模拟电话
,Asterisk
就可以呼叫这部电话
,
可能也可以呼叫
.(
端口
:
通过配置使用的信令进行定义
)
FXS
卡必须像中心局
(CO)
进行运转
,
使用
FXO
信令
.
同理
,FXO
卡连接
CO,
就意味着它需要像终端进行运转
,
使用
FXS
信令
.
Zaptel
配置
(FXO)
在
/etc/zaptel.conf
文件
,
用于配置硬件
,
可以定义
FXS
端口与
FXO
信令的配置
fxsks=1
;
定义
fxs
端口采用通道
1
以
ks
信令协议
;fxoks=2
;
定义
fxo
端口采用通道
2
以
ks
信令协议
loadzone=us
defaultzone=us
|
信令协议
:Loop start(ls),ground start(gs),kewlstart(ks),
使用
ks
外信令协议
,
把
fxoks
中的
ks
替换
ls
或
gs,Asterisk
的模拟电路推荐
ks
信令协议
.
******
编辑完
zaptel.conf
文件
,
需要使用
/sbin/ztcfg -vv
装载配置到硬件
(
不须要详细输出可以省略
-vv);
修改信令方法需要重启
.
在编辑
sip.conf
和
iax.conf
文档后
,
分别需要装载
chan_iax2.so
和
chan_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
直接传输媒体
.
SIP
和
RTP
SIP
是一个应用层的信令协议
.
他使用的端口是
5060(
通常
)
进行通信
.SIP
可以通过
UDP
和
TCP
传输层协议进行传输
.Asterisk
目前没有
TCP
用于传输
SIP
信息
.
RTP
用于端点间传输媒体
(
语音
),Asterisk
中
RTP
使用大数字的无特权端口
(
默认
10,000
到
20,000)
SIP
优点
:
普通的被接受和结构灵活
.
其它的
VOIP
协议还有
H.323,IAX,MGCP.