1.编译环境的安装:
新装机器,需要执行sudo apt-get update
编译环境及依赖库安装:sudo apt-get install build-essential subversion libncurses5-dev libssl-dev libxml2-dev vim-nox
2.编译过程:(此处默认源码已经下载)
编译DAHDI
$tar -zxvf dahdi-linux-complete-current.tar.gz
$cd dahdi-linux-complete-X.X.X+X.X.X
$make
#sudo make install
#sudo make config
编译libpri(貌似可以不需要,待验证)
$tar -zxvf libpri-X.X-current.tar.gz
$cd libpri-X.X.X
$make
#sudo make install
编译asterisk
$tar -zxvf asterisk-X.X-current.tar.gz
$cd asterisk-X.X.X
$./configure
$make menuselect (依次按h、F8、x)
$make
#sudo make install
#sudo make samples
编译chan-ss7
$tar -zxvf chan-ss7-2.3.11.tar.gz
$cd chan-ss7-2.3.11
$vi Makefile (修改Makefile中的路径)
ASTERISK_PATH=../asterisk-1.8.8.0 —— asterisk的源码目录,这里也可以使用asterisk安装后的头文件路径
INCLUDE+=-I../dahdi-linux-complete-2.10.1+2.10.1/linux/include —— dahdi的头文件路径
因为我们使用的dahdi,所以CFLAGS+=-DUSE_ZAPTEL必须注释掉
$make chan_ss7.so
#sudo cp chan_ss7.so /usr/lib/asterisk/modules/
注意:以上我们全部使用的是默认的系统路径(除了chan-ss7的Makefile中修改的包含路径),如果需要自己定义路径,
可以在make install的时候,手动cp文件
3.驱动加载:
硬件准备:
一块E1的板卡(TE110P)
一根RJ48的交叉线(12收,对应45发)
语音卡识别:
$lspci -vvvv
03:00.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Device 79fe:0001
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32 (250ns min, 32000ns max)
Interrupt: pin A routed to IRQ 20
Region 0: I/O ports at de00 [size=256]
Region 1: Memory at fdeff000 (32-bit, non-prefetchable) [size=4K]
Capabilities: <access denied>
Kernel driver in use: wcte11xp
如果没有如上的类似信息,说明板卡没有被识别,需要检查板卡是否插好,或者换一个插槽重试。
加载驱动:
在/etc/dahdi/modules文件中检查是否有所需要的驱动,至少包括以下两项:
wcte11xp
wct4xxp
生成配置文件
#sudo dahdi_scan —— 可以列出所查询到的硬件信息,如果没有信息,请执行sudo service dahdi restart
active=yes
alarms=UNCONFIGURED
description=Digium Wildcard TE110P T1/E1 Card 0
name=WCT1/0
manufacturer=Digium
devicetype=Digium Wildcard TE110P T1/E1
location=PCI Bus 03 Slot 01
basechan=1
totchans=31
irq=0
type=digital-E1
syncsrc=0
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=HDB3
framing_opts=CCS,CRC4
coding=
framing=CAS
#sudo dahdi_genconf —— 可以生成默认的配置文件
文件如下:
/etc/dahdi/system.conf
/etc/asterisk/chan_dahdi.conf
/etc/asterisk/chan-channel.conf
#sudo dahdi_cfg -vv —— 可以查看当前所有通道状态
主机重启,运行命令:
#sudo asterisk -vvvvvvvvgc —— 能够进入asterisk的控制台说明配置成功,否则请检查配置(注意此时不要将chan_ss7相关的配置和动态库引入)
在cli控制台输入:
*CLI> dahdi show channels
Chan Extension Context Language MOH Interpret Blocked State
pseudo default default In Service
至此,板卡安装完毕、驱动加载完毕。
此时,语音卡的指示灯会变成红色,说明是板卡驱动加载了,但是物理层是断的,也就是说E1口没有连接(或者收发接反了)。
正确连接上交叉网线,板卡指示灯变成绿色。