Linux/Asterisk/dahdi/sangoma安装

来自VoIP88 Wiki
跳转到: 导航, 搜索

目录

安装准备

  • 如果需要来电显示做业务流程,请确认线路支持来电显示,
  • 确认语音板卡的插槽是否兼容贵公司购买的主板服务器
  • 如何安装多张A200模拟卡,请参考产品flash演示 A200产品flash演示
  • 详细板卡安装文档,请参考模拟卡安装
  • 最完整的官方技术wiki:Sangoma技术英文wiki
  • 此文档适用于所有sangoma模拟语音卡A200/D,A400/D 系列,脚本配置会自动生成相应的文档。请留意!
  • A400接口配置使用了分线器,请安装前观看A400产品演示flash:A400产品演示

下载dahdi/Asterisk/wanpipe

安装必要的支持包

以下支持包是安装asterisk软交换必须安装的软件包,请安装之前检查以下支持包是否安装,如果没有安装,请执行安装

yum -y install kernel-devel-$(uname -r) libtool* make gcc patch perl bison 
gcc-c++ ncurses-devel flex libtermcap-devel autoconf* automake* autoconf

特别注意:内核的开发包,根据内核版本的不同,可能安装有时出现问题,请留意。以上是Centos环境下安装命令;
如果Ubuntu/Debian 6 环境下,请执行:

apt-get -y install gcc g++ automake autoconf libtool make libncurses5-dev flex bison patch 
libtool autoconf linux-headers-$(uname -r)

下载dahdi/asterisk

注意,以下软件版本是安装说明书的测试版本,发布版本可能有所不同。客户根据实际环境下载相应的版本。
执行命令 cd /usr/src,在此目录下下载以下软件包:

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz 
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2-current.tar.gz
下载最新wanpipe驱动:http://wiki.sangoma.com/Wanpipe-Linux-Driver

检查系统是否检测到sangoma 板卡芯片信息,执行 lspci -vv,如果有修改sangoma芯片信息,
说明系统检测到了板卡,可以继续安装配置。否则,请用户重新清理PCI 金手指或者换其他PCI插槽.

04:04.0 Network controller: Sangoma Technologies Corp. A200/Remora FXO/FXS Analog AFT card

编译dahdi/Asterisk/wanpipe

减压dahdi模块,执行编译安装:

tar xvzf dahdi-linux-complete<version> // 包含了dahdi-linux板卡驱动层和dahdi-tools 用户模块
cd dahdi-linux-complete <version> 
make   // 编译
make install // 安装

减压asterisk,环境检查,编译安装

tar xvfz asterisk-<version>.tgz
cd asterisk-<version>
./configure  // 此步骤确认无错误!
make
make install
make samples //此命令将覆盖以前所有配置文件!

下载最新的Wanpipe 驱动,减压执行安装

tar xvfz wanpipe-<version>.tgz
cd wanpipe-<version>
 ./Setup dahdi // 执行安装配置,根据默认选项完成安装。

配置文件

wanpipe驱动配置文件

#================================================
# WANPIPE1 Configuration File
#================================================
#
# Date: Tue Feb 13 11:57:41 CST 2007
#
# Note: This file was generated automatically
# by /usr/sbin/wancfg program.
#
# If you want to edit this file, it is
# recommended that you use wancfg program
# to do so.
#================================================
# Sangoma Technologies Inc.
#================================================
[devices]
wanpipe1 = WAN_AFT_ANALOG, Comment
[interfaces]
w1g1 = wanpipe1, , TDM_VOICE, Comment
[wanpipe1]
CARD_TYPE = AFT
S514CPU = A
CommPort = PRI
AUTO_PCISLOT = NO
PCISLOT = 3
PCIBUS = 2
FE_MEDIA = FXO/FXS
TDMV_LAW = MULAW
TDMV_OPERMODE = CHINA // 支持中国制式
MTU = 1500
UDPPORT = 9000
TTL = 255
IGNORE_FRONT_END = NO
TDMV_SPAN = 1
[w1g1]
ACTIVE_CH = ALL
TDMV_ECHO_OFF = NO
TDMV_HWEC = YES

检查Sangoma 板卡是否可以被系统检测到,执行命令:wanrouter hwprobe,显示:

-----------------------------------------
| Wanpipe Hardware Probe Info (verbose) |
-----------------------------------------
1 . AFT-A200-SH : SLOT=4 : BUS=5 : IRQ=169 : CPU=A : PORT=PRI : HWEC=32 : V=12
+01:FXO: PCIe: PLX1
+02:FXO: PCIe: PLX1
+03:FXS: PCIe: PLX1
+04:FXS: PCIe: PLX1

/etc/dahdi/system.conf文件

以下配置文件是2 FXO,2个FXS的配置实例。

#autogenerated by /usr/sbin/wancfg_dahdi do not hand edit
#autogenrated on 2012-08-04
#Dahdi Channels Configurations
#For detailed Dahdi options, view /etc/dahdi/system.conf.bak
loadzone=cn
defaultzone=cn
#Sangoma AFT-A200 [slot:2 bus:1 span:1] <wanpipe1>
fxsks=1
echocanceller=mg2,1  // 默认支持开源mg2软件回声,如果板卡支持D系列硬件回声模块,请注释这一行
fxsks=2
echocanceller=mg2,2
fxoks=3
echocanceller=mg2,3
fxoks=4
echocanceller=mg2,4

/etc/asterisk/chan_dahdi.conf文件

asterisk chan_dahdi.conf 文件配置:

;autogenerated by /usr/sbin/wancfg_dahdi do not hand edit
;Dahdi Channels Configurations
;For detailed Dahdi options, view /etc/asterisk/chan_dahdi.conf.bak
[trunkgroups]
[channels]
context=default
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
busydetect=yes // 检测忙音, 如果咬线或者不能挂机,打开此项参数
busycount=4     // 检测忙音次数,可以调整到 3-6 
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
relaxdtmf=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no

;Sangoma AFT-A200 [slot:2 bus:1 span:1] <wanpipe1>
context=from-pstn // 第一个FXO口,接入PSTN电话线
group=0
callerid=asreceived
echocancel=yes
faxdetect=incoming
signalling = fxs_ks
channel => 1
callerid=
group=
context=default

context=from-pstn
group=0
echocancel=yes
callerid=asreceived
faxdetect=incoming
signalling = fxs_ks
channel => 2
callerid=
group=
context=default

context=from-internal
group=1
echocancel=yes
callerid="Channel 3" <4003>
faxdetect=incoming
signalling = fxo_ks
channel => 3
callerid=
mailbox=
group=
context=default

context=from-internal
group=1
echocancel=yes
callerid="Channel 4" <4004>
faxdetect=incoming
signalling = fxo_ks
channel => 4
callerid=
mailbox=
group=
context=default
#include dahdi-channels.conf
#include chan_dahdi_additional.conf

测试呼叫

测试呼叫之前,必须检查Asterisk以及相关的dahdi 通道是否成功加载和启动。

检查通道是否加载

  • 确认wanrouter staus 显示成功信息
  • 执行dmesg 命令,确认没有人员dahdi,sangoma板卡相关报错信息
  • 在asterisk CLI 项目执行命令:dahdi show channels,可以成功显示通道数量

这里,我们介绍的只是一个非常简单的呼入呼出例子。客户可以根据自己的业务需求开发呼叫中心,录音,
语音IVR等等应用业务。测试用例的目的是测试语音板卡是否正常工作。测试呼叫之前,需要修改拨号规则配置文件
/etc/asterisk/extensions.conf.
添加以下拨号规则,重新在asterisk 后台执行 relaod 命令,重新加载修改的数据,使之生效!
建议用户首先测试呼入的功能,然后测试呼出的功能!

语音板卡asterisk启动命令

  • 启动顺序:wanpipe,然后dahdi,最后启动asterisk服务
wanrouter start
service dahdi start
asterisk //或者amportal start 当elastix 或者trixbox系统安装时
  • 关闭顺序关闭: 关闭asterisk,关闭wanrouter,关闭dahdi
asterisk CLI 下面执行:core stop now 或者 
amportal start // 当elastix 或者trixbox系统安装时
wanrouter stop
service dahdi stop

呼入测试

[from-pstn]   // 注意,这里的from-pstn 必须对应 chan_dahdi.conf 里面的context 
exten => s,1,Answer() // 应答一个呼入电话
exten => s,n,Playback(cc_welcome) // 播放欢迎信息,呼叫者将会听到播放的语音。
exten => s,n,Hangup() // 播放结束,挂机

呼出测试

如果呼入测试正常,可以做呼出测试。
1) 呼出测试之前,必须在extensions.conf 文件添加以下内容,然后建立终端分机或者软电话。

[from-internal]
exten => 100,1,Dial(dahdi/1/18665XXXXXX) 
exten => 100,2,Hangup

2) 使用101分机,拨100 呼出测试,通过dahdi 通道1(FXO)呼出到18665XXXXXXX 手机.
3)如果呼入呼出正常,说明语音板卡可以正常工作。

常见问题排查

个人工具
    ͨƼ
产品链接