Created by 董舒, last modified by Dario.hu on 2021 五月 24
深圳市开源通信有限公司
安全说明
测试环境
硬件板卡:OpenVox B100E
操作系统:CentOS-5.6
内核版本:2.6.18-238.12.1.el5
DAHDI: dahdi-linux-complete-current
Libpri:1.4.11.5
Asterisk:16
1.1 Asterisk简介
Asterisk是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把x86机器变成用户交换机,还能够当作一台企业级的商用交换机。Asterisk的优势还在于它为小企业在预算可承受的范围内提供了商业交换机的功能,并且具有很强的可扩展性。
图1 Asterisk应用拓扑
1.2 B100E简介
OpenVox B100E 是一款兼容PCI-E 插槽的板卡,支持一个BRI S/T接口,这个接口可以通过跳线设置成TE或者NT模式。B100E在电话系统中可以传送高质量的语音,而且在一条ISDN BRI线上可同时拨打两路电话,能将传统的ISDN BRI设备变成功能强大的VoIP语音设备,并提供了从ISDN技术到全新的VoIP世界的软迁移方案。B100E是用来构建像ISDN电话交换系统和VoIP语音网关这样的基于Asterisk的开源系统。
B100E和遵从GPL协议的linux内核驱动结合起来能将你的linux机器很好的接入ISDN BRI网络。B100E能很好地运行在Asterisk®, Elastix®, FreeSWITCH™, trixbox®, Yate™ 以及 IPPBX/IVR等开源操作系统上传输清晰的语音,可以作PBX, IVR,以及VoIP语音网关等应用。
典型应用
主要特性
认证
2.1 电源
该板卡工作在TE/NT模式时仅需 PCI-E插槽提供3.3/12V电压,无需外接电源供电。
2.2 插槽
B100E兼容工业标准的PCI-E ×1,×2,×4,×8 和 ×16插槽。用户首先需要确认插槽类型,将 B100E 垂直插入任何一种 PCI-E 插槽。下图描述了五种插槽形状。
图 2 PCI及PCI-E插槽
2.3 调整终端S/T接口模式
B100E的接口可以设置成NT或者TE模式,请参考下图:
图3 B100E跳线设置
2.4 硬件安装步骤
注意: 如果需要将ISDN电话连接在设置为NT模式的B100E上,该电话必须有自供电功能。在上述操作过程中,静电环是必不可少的,安装或卸下板卡在断电之后方可进行。确定硬件安装正确之后,即可开始软件安装。
B100E支持在linux上安装DAHDI软件驱动,您需要下载、编译、安装和配置DAHDI、Libpri和Asterisk。下面以安装libpri-1.4.11.5、dahdi-linux-complete-current、asterisk-16为例详细解说软件安装过程。
3.1 下载
从OpenVox官方网站上下载DAHDI源码包:
从Digium官方网站上下载Libpri和Asterisk源码包:
http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.5.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
通常在目录 /usr/src/ 下运行如下指令,下载并解压这些源码包:
#_wget_http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.5.tar.gz
# tar -zxvf libpri-1.4.11.5.tar.gz
#_tar_-xvzf_openvox_dahdi-linux-complete-current.tar.gz
#_wget_http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# tar -zxvf asterisk-16-current.tar.gz
您需要从OpenVox官方网站上下载补丁,并把它复制到dahdi-linux-complete-current/linux/目录下,请执行以下指令:
# cd dahdi-linux-complete-current/linux
# wget http://downloads.openvox.cn/pub/drivers/dahdi-patches/B100M/B100_dahdi_2.3.0.1_complete_patch.extra
# patch -p2 < B100_dahdi_2.3.0.1_complete_patch.extra
# vim ../tools/modules.sample
在modules.sample文件里添加zaphfc,如下:
安装Asterisk时需要注意如下两点:
请注释掉以下代码:
然后增加以下两行:
修改完后保存退出,编译安装即可。
3.2 安装
1. 硬件检测
# lspci –vvvv
通过上述指令检查系统是否识别B100E。若检测到B100E,则在输出结果中将显示"Network controller",如图所示:
图4硬件检测
如果系统没有检测到B100E,请关闭电源,清扫插槽或者将卡插入其它PCI插槽重新检测。
2. 依赖包安装
在安装DAHDI前请先检查是否所有的依赖包都安装成功,如果依赖包没有安装,将导致后续的软件安装无法顺利进行。请运行如下指令逐个检查。
# yum install bison
# yum install bison-devel
# yum install ncurses
# yum install ncurses-devel
# yum install zlib
# yum install zlib-devel
# yum install openssl
# yum install openssl-devel
# yum install gnutls-devel
# yum install gcc
# yum install gcc-c++
# yum install libxml2
如果系统没有安装内核,用户需要运行如下指令安装:
# yum install kernel-devel
在上述依赖包的检测过程中,如果该依赖包已经安装,系统会提示已经安装,不会继续安装这个包,用户可以运行下一条指令安装其它包;如果没有安装,则会自动安装直到系统提示安装成功。
debian 系统依赖包和内核安装
#apt-get install bison bison-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel gnutls-devel gcc gcc-c++ libxml2 libxml2-devel
#apt-get install linux-headers-`uname -r`
3. 安装DAHDI
将路径转换到dahdi-linux-complete-XX源码包目录下 (XX 代表DAHDI版本),运行如下指令安装 DAHDI:
# cd /usr/src/dahdi-linux-complete-XX
# make
# make install
# make config
注意: 如果运行"make"指令后系统显示报错信息,请参考链接 HERE,在此链接中介绍了如何添加补丁。用户按照说明打好补丁之后,请再一次运行"make",若编译通过则继续操作后面两条指令。DAHDI安装成功后就可以安装Libpri和Asterisk。
4. 安装Libpri
请执行下述指令安装Libpri:
# cd ../libpri-1.4.11.5
# make
# make install
5. 安装Asterisk
请执行以下指令安装Asterisk:
# cd ../asterisk-16.x
# ./configure
# make
# make install
# make samples
运行"make samples"后将在目录 /etc/asterisk下安装标准示例配置文件。作为新手,用户可以执行"make samples"指令,这条指令并非必须执行。因为一旦执行了这条指令之后,系统会自动备份保存以前安装的配置文件,并以新的配置文件取代之。
3.3 配置
1. 加载驱动
编译通过后,请运行下述指令加载驱动:
# modprobe dahdi
# modprobe zaphfc ;(TE模式)
# dahdi_genconf
# dahdi_cfg –vvv
对于B100E的NT模式,这里有两点需要注意:
# modprobe -r zaphfc
# modprobe zaphfc modes=1 force_l1_up=0
或者在 /etc/modprobe.conf 文件中添加:
options modprobe zaphfc modes=1 force_l1_up=0
在运行完 "modprobe dahdi" 和 "modprobe zaphfc" 两条指令后,如果没有任何提示信息输出,则表示加载驱动成功,"zaphfc" 为B100E的驱动模块。如果出错,请查找原因,直到所有的问题都解决,您可以再执行“dahdi_genconf”。正常情况下,执行指令 "dahdi_genconf"后,系统会自动生成
/etc/dahdi/system.conf 和 etc/asterisk/dahdi-channels.conf 两个文件。检查生成的配置文件是否符合您的需求,您也可以手动修改相关参数。值得注意的是,确认dahdi-channels.conf 包含在chan_dahdi.conf 中,若没有,请运行指令:
# echo "#include dahdi-channels.conf" >> /etc/asterisk/chan_dahdi.conf
下图显示的是通道配置文件system.conf的部分内容:
图 5 system.conf文件的部分内容
2. 修改国家制式
为了匹配国家通信制式,需要修改一些参数。例如,在中国,请修改参数loadzone和 defaultzone,如下所示:
loadzone = cn
defaultzone = cn
用户可以在文件 .. /dahdi-XX/tools/zonedata.c中查找国家参数。另外,还有一个参数在/etc/asterisk/indications.conf中也需要修改:
country=cn
文件/etc/asterisk/dahdi-channels.conf 的部分内容如图所示:
(如果与硬件设置不匹配,请修改)
图 6 文件dahdi-channels.conf的一部分
3. 启动Asterisk
# asterisk -vvvvvgc
如果Asterisk 已运行,则执行"asterisk –r"代替。在CLI界面中,请运行 "dahdi show channels"和 "pri show spans":
图7 通道状态
如果通道显示全部正确,说明DAHDI已成功加载到 Asterisk中,否则,请检查配置文件和外部连接。接下来请设置拨号方案。
4. 编写拨号方案
下图介绍了一个简单的呼入呼出方案:
# vim /etc/asterisk/extensions.conf
图 8 拨号方案
将拨号方案保存退出,然后运行 "asterisk –r",在控制台执行 "reload",现在就可以拨打电话了。上述拨号方案可以实现以下功能:
温馨提示:
用户在安装和使用过程中遇到任何问题,请在OpenVox论坛或wiki上查找答案、留言。
附录A 硬件指标
• 重量、尺寸
重量(g) : 51
尺寸(mm): 120×688×18
• 接口
PCI-E1.0以上规范
接口类型:4针RJ-45连接头,提供一个S/T 接口
•环境
温度: 0 ~ 50°C (工作)
- 40 ~ 125°C (存储)
湿度: 10 ~ 90% 非凝结
•功耗
电压: 3.3V,38V(NT模式)
功率损耗: 0.4W(最小),0.57W(最大)
• 硬软件配置要求
RAM 128 + MB
Linux kernel 2.4.X 或 2.6.X
CPU 800+ MHZ
附录 B RJ45引脚分配
ISDN BRI有两种接口:U接口和S/T接口,B100E提供四针的S/T接口。我们通过下面两个表来说明其引脚分配。
l ISDN U接口
8针RJ45 接头 | 引脚 | 颜色 | 描述 |
1 | White/Orange | N/A | |
2 | Orange | N/A | |
3 | White/Green | N/A | |
4 | Blue | U interface | |
5 | White/Blue | U interface | |
6 | Green | N/A | |
7 | White/Brown | -48VDC Power (optional) | |
8 | Brown | -48VDC Return (optional) |
ISDN U 接口通常用于北美ISDN网络,采用标准的8针RJ45接头,但只用到中心的两针(4和5),形成两芯交叉线。可选的 -48 VDC power引脚可由RJ-45的7 和8号引脚定义。这个可用于在需要的时候给NT-1 或TE设备供电。在多数情况下,电话公司是不提供馈电的。
l ISDN S/T 接口
8针 RJ45 接头 | 引脚 | 颜色 | 描述 |
1 | White/Orange | N/A | |
2 | Orange | N/A | |
3 | White/Green | Receive+ | |
4 | Blue | Transmit + | |
5 | White/Blue | Transmit - | |
6 | Green | Receive - | |
7 | White/Brown | -48VDC Power(optional) | |
8 | Brown | -48VDC Return (optional) |
ISDN S/T接口也是采用标准的8针RJ45接头,但只用到其中四个引脚(3、4、5和6),形成四芯直通线。其中4、5用于发送,3、6用于接收。可选的 -48 VDC power引脚同样可由RJ-45的7和8号引脚定义,用于在需要的时候给NT-1 或TE设备供电。