OpenVox A2410E/AE2410E DAHDI cn

From Wiki

Jump to: navigation, search

Contents

测试环境

硬件板卡:OpenVox A2410P/AE2410P
操作系统:CentOS-5.6
内核版本:2.6.18-238.12.1.el5
DAHDI: dahdi-linux-complete-2.3.0.1+2.3.0
Asterisk:1.8.0

第一章 概述

1.1 Asterisk简介

Asterisk是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把x86机器变成用户交换机,还能够当作一台企业级的商用交换机。Asterisk的优势还在于它为小企业在预算可承受的范围内提供了商业交换机的功能,并且具有很强的可扩展性。

1.2 A2410P/AE2410P简介

OpenVox A2410P/AE2410P 是一款绿色无铅的24口FXO/FXS模拟接口产品,AE2410P 是A2410P带Octasic硬件回声消除模块。 A2410P/AE2410P须使用FXO-400 或 FXS-400来组成一个可行的系统,且用户可以根据需求选择FXO/FXS模块数量,无需另外搭配单独的信道组合器和网关接入产品。A2410P/AE2410P板卡上有6个RJ45接口,每个接口通过分线盒接入4路模拟线路。
A2410P/AE2410P能运行在Asterisk®, Elastix®, FreeSWITCH™, trixbox®, Yate™ 以及 IPPBX/IVR等开源操作系统上传输优质的语音,A2410P/AE2410P可以作SOHO或中小型企业PBX, IVR,以及VoIP语音网关等应用。

主要特性
  • 全球通用
  • 支持现场固件升级
  • 卓越的硬件设计及稳定性
  • 支持Bus Master操作速度高达132Mbytes/sec
  • 可扩展性:只需要安装其它语音板卡即可升级系统
  • 稳定性的固件使I/O加速,极大程度地降低了CPU负载
  • 支持业界最高品质Octasic回声消除DSP,每通道独立的128ms 或1024taps 回声消除功能
  • RoHS

第二章 硬件安装

2.1 电源

由于PCI插槽不能提供FXO-400、FXS-400所需功率,因此用户需要通过12V 4-PIN的连接器给板卡提供外加电源。若没有提供外加电源,则导致模块不能被系统识别。

2.2 插槽

A2410P/AE2410P 兼容工业标准的32-bit 5.0V、 64-bit 3.3V以及 64-bit 5.0V的 PCI 插槽,不兼容任何类型的PCI-E插槽。用户首先需要确认插槽类型,将A2410P/AE2410P垂直插入任何一种上述PCI插槽。

2.3 时钟线

如果用户只有一张卡,那么这张卡上的所有通道都运行在同一时钟频率下,此时,不需要时钟线。如果用户同时安装多张卡在一台机器上,此时使用时钟线可以带来很多好处。如果不用时钟线,每张模拟卡运行在各自的时钟频率下收发数据,精确度受到影响。在语音传输过程中,这个问题可以忽略不计,但在传真及调制解调器等数据传输中,可能产生不可估量的影响。数据丢失将导致通信中断甚至崩溃。时钟线可以使所有的卡都工作在同一时钟源下,收发数据速率相同,不会丢失数据。 如果用户能在卡上找到J914(输入)及J915(输出)接口,则表示此卡支持时钟线。关于时钟线的使用,请参考链接http://bbs.openvox.cn/viewthread.php?tid=874&extra=page%3D1。

2.4 FXO、FXS模块

FXO、FXS模块有下述简单区别:

  • FXO为红色模块,FXS为绿色模块,FXO-400及FXS-400允许4个模拟通道接入;
  • FXO对应的端口为FXO口,连接PSTN线,使用FXS信令;而FXS对应的端口为FXS口,连接模拟分机,使用FXO信令;

2.5 分线盒

SP142分线盒将A2410P/AE2410P的一个RJ45接口线路分成4个RJ11接口。安装A2410P/AE2410P时须与SP142分线盒配套使用。

2.6 硬件安装

1. 关闭电源;
2. 检查是否需要时钟线;
3. 确认插槽类型为PCI,将A2410P/AE2410P垂直插入插槽;
4. 请将PSTN线连接FXO口,模拟分机连接FXS口;
5. 固定板卡,接地;
6. 供电。

注意:在上述操作过程中,静电环是必不可少的,安装或卸下板卡在断电之后方可进行。 连接硬件前请先检查PSTN线路及电话机是否可用。确定硬件安装正确之后,即可开始软件安装。

第三章 软件安装

3.1 下载

DAHDI的源码包在Digium及OpenVox网站上均可获得。若驱动从Digium官方网站下载,则需要添加补丁,因此建议用户从OpenVox网站上下载DAHDI。接下来我们以Asterisk-1.8.0、dahdi-linux-complete-2.3.0.1+2.3.0为例详细解说软件安装过程。

从OpenVox官方网站上下载DAHDI源码包: http://downloads.openvox.cn/pub/drivers/dahdi-linux-complete/releases/1.3.2/openvox_dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
从Digium网站上获取Asterisk: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.0.tar.gz
通常在目录/usr/src/ 下运行如下指令,下载并解压DAHDI和Asterisk.

# wget http://downloads.openvox.cn/pub/drivers/dahdi-linux-complete/releases/1.3.2/openvox_dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.0.tar.gz
# tar -xvzf openvox_dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
# tar –xvzf asterisk-1.8.0.tar.gz

3.2 安装

1. 硬件检测
# lspci –vvvv

通过上述指令检查系统是否识别A2410P/AE2410P。若检测到A2410P/AE2410P,则在输出结果中将显示"Communication controller",如图所示:

01:02.0 Communication controller: Device 1b74:2410 (rev 01)
        Subsystem: Device 1b74:0001
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64, Cache Line Size: 16 bytes
        Interrupt: pin A routed to IRQ 225
        Region 0: Memory at ded80000 (32-bit, non-prefetchable) [size=512K]
        Kernel driver in use: opvxa24xx
        Kernel modules: opvxa24xx

如果系统没有检测到A2410P/AE2410P,请关闭电源,清扫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 

在上述依赖包的检测过程中,如果该依赖包已经安装,系统会提示已经安装,不会继续安装这个包,用户可以运行下一条指令安装其它包;如果没有安装,则会自动安装直到系统提示安装成功。

3. 安装DAHDI

将路径转换到dahdi-linux-complete-XX源码包目录下 (XX 代表DAHDI版本),运行如下指令安装 DAHDI.

# cd /usr/src/dahdi-linux-complete-XX 
# make
# make install 
# make config

注意: 如果运行"make"指令后系统显示报错信息,请参考链接 http://bbs.openvox.cn/viewthread.php?tid=1557&extra=page%3D1.
在此链接中介绍了如何打补丁使编译通过。用户按照说明打好补丁之后,请再一次运行"make",若通过则继续操作后面两条指令。DAHDI安装成功后就可以安装Asterisk。

4. 安装Asterisk

请执行下述指令安装Asterisk:

# cd ../asterisk-1.8.0
# ./configure
# make 
# make install
# make samples

运行"make samples"后将在目录/etc/asterisk下安装标准示例配置文件。作为新手,用户可以执行"make samples"指令,这条指令并非必须执行。因为一旦执行了这条指令之后,系统会自动备份保存以前安装的配置文件,并以新的配置文件取代之。

3.3 配置

1. 加载驱动

DAHDI和Asterisk编译都通过后,请运行下述指令加载驱动:

# modprobe dahdi
# modprobe opvxa24xx opermode=CHINA
# dahdi_genconf

在运行完 "modprobe dahdi" 和"modprobe opvxa24xx opermode=CHINA"两条指令后,如果没有任何提示信息输出,则表示驱动加载成功。"opvxa24xx" 为A2410P/AE2410P的驱动模块,"opermode"只适用于FXO端口,也就是说对FXS不起作用。用户也可以用其它国家制式取代 "CHINA",请查看文件 ../dahdi-linux-XX/linux/drivers/dahdi/fxo_modules.h,获得其它通信制式。


正常情况下,执行指令 "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

FXO端口使用FXS信令,而FXS端口则采用FXO信令。下图显示的是一部分基本通道配置文件system.conf:

# Span 1: OPVXA24XX/24 "OpenVox A2410 Board 25" (MASTER)
fxoks=1
fxoks=2
fxoks=3
fxoks=4
fxoks=5
fxoks=6
fxoks=7
fxoks=8
fxoks=9
fxoks=10
fxoks=11
fxoks=12
fxsks=13
fxsks=14
fxsks=15
fxsks=16
fxsks=17
fxsks=18
fxsks=19
fxsks=20
fxsks=21
fxsks=22
fxsks=23
fxsks=24

# Global data

loadzone        = us
defaultzone     = us
2. 修改国家制式

为了匹配国家通信制式,需要修改一些参数。例如,在中国请修改参数loadzone和 defaultzone,如下所示:

loadzone = cn 
defaultzone = cn 

用户可以在文件 .. /dahdi-XX/tools/zonedata.c中查找国家参数。另外,还有一个参数在/etc/asterisk/indications.conf中也需要修改:

country=cn

文件/etc/asterisk/dahdi-channels.conf 的一部分如图所示:

; Span 1: OPVXA24XX/24 "OpenVox A1610 Board 25" (MASTER)
;;; line="1 OPVXA24XX/24/0 FXOKS"
Signalling=fxo_ks           // FXS 采用 FXO 信令
callerid="Channel 1" <4001>
mailbox=4001
group=5
context=from-internal
channel => 1
callerid=
mailbox=
group=
context=default

;;; line="2 OPVXA24XX/24/1 FXOKS"
signalling=fxo_ks
callerid="Channel 2" <4002>
mailbox=4002
group=5
context=from-internal
channel => 2
callerid=
mailbox=
group=
context=default
……
……
……
;;; line="13 OPVXA24XX/24/12 FXSKS"
Signalling=fxs_ks           // FXO 模块采用 FXS信令
callerid=asreceived
group=0
context=from-pstn
channel => 13
callerid=
group=
context=default

;;; line="14 OPVXA24XX/24/13 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 14
callerid=
group=
context=default
……
……
……

修改国家制式后请运行指令:

# dahdi_cfg –vvvvvv

这条指令将从文件system.conf中读取并加载参数到硬件中。指令运行的一部分输出结果显示如下图:

Channel map:

Channel 01: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 01)
Channel 02: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 02)
Channel 03: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 03)
Channel 04: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 04)
Channel 05: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 05)
Channel 06: FXO Kewlstart (Default) (Echo Canceler: none) (Slaves: 06)
……
……
Channel 13: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 13)
Channel 14: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 14)
Channel 15: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 15)
Channel 16: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 16)
Channel 17: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 17)
Channel 18: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 18)
……
……

24 channels to configure.

Setting echocan for channel 1 to none
Setting echocan for channel 2 to none
Setting echocan for channel 3 to none
Setting echocan for channel 4 to none
Setting echocan for channel 5 to none
Setting echocan for channel 6 to none
Setting echocan for channel 7 to none
Setting echocan for channel 8 to none
Setting echocan for channel 9 to none
Setting echocan for channel 10 to none
Setting echocan for channel 11 to none
Setting echocan for channel 12 to none
Setting echocan for channel 13 to none
……
……
Setting echocan for channel 24 to none
3. 启动Asterisk
# asterisk –vvvvvgc

如果Asterisk已运行,则执行"asterisk –r"代替。在CLI界面中, 请运行:

localhost*CLI> dahdi show channels

Chan Extension  Context    Language   MOH Interpret  Blocked    State
pseudo           default             default                 In Service
1            from-internal           default                 In Service
2            from-internal           default                 In Service
3            from-internal           default                 In Service
4            from-internal           default                 In Service
5            from-internal           default                 In Service
6            from-internal           default                 In Service
…            …                       …                      …
12           from-internal           default                 In Service
13           from-pstn               default                 In Service
14           from-pstn               default                 In Service
15           from-pstn               default                 In Service
16           from-pstn               default                 In Service
17           from-pstn               default                 In Service
18           from-pstn               default                 In Service
…            …                       …                      …
24           from-pstn               default                 In Service

如果通道显示全部正确,说明DAHDI已成功加载到 Asterisk中,接下来请设置拨号方案。

4. 编写拨号方案

请在extensions.conf文件中编写拨号方案,下图介绍了一个简单的呼入呼出方案:

# vim /etc/asterisk/extensions.conf

[from-pstn]
exten => s,1,Answer() 
exten => s,n,Dial(dahdi/1,,r) 
exten => s,n,Hangup()

[from-internal]
exten => 200,1,Dial(dahdi/13/outgoing_number) 
exten => 200,2,Hangup()

该拨号方案实现如下功能:当内部分机拨200时,呼叫通过通道13(FXO)连接;当呼叫来自PSTN时,Asterisk首先应答,然后通过通道1(FXS)接通分机。设置拨号方案后请运行"asterisk –r",并在CLI界面中执行指令"reload",接下来就可以拨号了。

附件功能
用户可以通过运行指令"cat /proc/interrupts"查看A2410P/AE2410P是否有独立的中断,若A2410P/AE2410P与其它设备共享中断,可能导致板卡不能正常工作。如果需要的话,A2410P/AE2410P允许用户在固件升级过程中修改中断引脚从而避免中断冲突。

第四章 参考目录

www.openvox.cn
www.digium.com
www.asterisk.org
www.voip-info.org
www.asteriskguru.com

Personal tools