把Asterisk装备上FXO做成IPPBX.docx

上传人:b****2 文档编号:24397357 上传时间:2023-05-27 格式:DOCX 页数:19 大小:22.11KB
下载 相关 举报
把Asterisk装备上FXO做成IPPBX.docx_第1页
第1页 / 共19页
把Asterisk装备上FXO做成IPPBX.docx_第2页
第2页 / 共19页
把Asterisk装备上FXO做成IPPBX.docx_第3页
第3页 / 共19页
把Asterisk装备上FXO做成IPPBX.docx_第4页
第4页 / 共19页
把Asterisk装备上FXO做成IPPBX.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

把Asterisk装备上FXO做成IPPBX.docx

《把Asterisk装备上FXO做成IPPBX.docx》由会员分享,可在线阅读,更多相关《把Asterisk装备上FXO做成IPPBX.docx(19页珍藏版)》请在冰豆网上搜索。

把Asterisk装备上FXO做成IPPBX.docx

把Asterisk装备上FXO做成IPPBX

Asterisk系统能够配合一种叫做Zaptel的通信板卡,这种板卡上面又可以支持好多模块实现多种功能。

可以连接PSTN、ISDN等等电路网络,从而变成真正意义上的IPPBX,变成中继网关,使得Asterisk的功能再一次更加丰富强大起来。

系统环境:

CentOS4.4,并且预安装开发库以及开发工具(编译需要)。

        Zeptel四语音模块TDM400板卡,以及4个FXO语音模块。

基本上需要的源码包有两个:

zaptel-1.4.6.tar.gz

asterisk-1.4.13.tar.gz

注意:

安装顺序必须是先Zaptel再安装Asterisk。

由于这里不涉及中继电路,所以暂不包含LibPRI部分。

一.编译安装Zaptel:

1.解压Zaptel源码包

[root@IPPBX~]#tar-zxvfzaptel-1.4.6.tar.gz

2.进入Zaptel包内

[root@IPPBXzaptel-1.4.6]#cdzaptel-1.4.6

3.进行编译Zaptel前的预配置

[root@IPPBXzaptel-1.4.6]#./configure

4.清除陈旧的已编译文件

[root@IPPBXzaptel-1.4.6]#makeclean

5.编译Zaptel

[root@IPPBXzaptel-1.4.6]#makeall

6.安装Zaptel

[root@IPPBXzaptel-1.4.6]#makeinstall

二.编译安装Asterisk源码包:

1.解压Asterisk源码包

[root@IPPBX~]#tar-zxvfasterisk-1.4.13.tar.gz

2.进入Asterisk包内

[root@IPPBX~]#cdasterisk-1.4.13

3.进行编译Asterisk前的预配置,并制定安装路径。

[root@IPPBXasterisk-1.4.13]#./configure--prefix=/usr/local

4.清除陈旧的已编译文件

[root@IPPBXasterisk-1.4.13]#makeclean

5.编译Asterisk

[root@IPPBXasterisk-1.4.13]#makeall

6.安装Asterisk

[root@IPPBXasterisk-1.4.13]#makeinstall

7.安装配置文件模版

[root@IPPBXasterisk-1.4.13]#makesamples

8.安装Asterisk程序文档

[root@IPPBXasterisk-1.4.13]#makeprogdocs

三.前期准备工作:

1.符号连接Asterisk主配置文件路径,为了方便。

[root@IPPBX~]#ln-s/etc/asterisk/astetc

2.通过符号连接就可以进入Asterisk主配置文件路径。

[root@IPPBX~]#cdastetc/

3.备份SIP配置文件

[root@IPPBXastetc]#cpsip.confsip.conf.backup

4.备份IAX2配置文件

[root@IPPBXastetc]#cpiax.confiax.conf.backup

5.备份拨号规则配置文件

[root@IPPBXastetc]#cpextensions.confextensions.conf.backup

6.备份Zapata板卡主配置文件

[root@IPPBXastetc]#cpzapata.confzapata.conf.backup

7.确认Asterisk的各种主要调用路径

[root@IPPBXastetc]#catasterisk.conf

--------------------------------------------------

[directories]

astetcdir=>/etc/asterisk

astmoddir=>/usr/local/lib/asterisk/modules

astvarlibdir=>/var/lib/asterisk

astdatadir=>/var/lib/asterisk

astagidir=>/var/lib/asterisk/agi-bin

astspooldir=>/var/spool/asterisk

astrundir=>/var/run

astlogdir=>/var/log/asterisk

以上这些都是Asterisk各种主要调用的路径,这些路径上都分类放置了Asterisk的如配置文件、模块、AGI程序、日志等等各种重要部件。

反过来,如果当要卸除Asterisk的时候,也可以参考这些给出的路径,将Asterisk进行完整删除。

之前我就卸载过一次Asterisk,直接就是“rm-fr”掉这些路径。

;[options]

;internal_timing=yes

;systemname=my_system_name;prefixuniqueidwithasystemnameforglobaluniquenessissues

;Changingthefollowinglinesmaycompromiseyoursecurity.

;[files]

;astctlpermissions=0660

;astctlowner=root

;astctlgroup=apache

;astctl=asterisk.ctl

--------------------------------------------------

8.确认Zaptel的模块

[root@IPPBXastetc]#ll/usr/local/lib/asterisk/modules/|grepchan_zap

--------------------------------------------------

-rwxr-xr-x1rootroot  511766Nov  914:

26chan_zap.so

这个chan_zap.so就是Zaptel的主要模块,如果能够找到这个模块的话那么说明Zaptel基本上成功编译,初步工作成功。

--------------------------------------------------

注意:

这个模块的来源是chan_zap.c这件代码,如果当Asterisk进行configure进行环境预检查配置的时候没有发现Zeptel的时候,他不会对chan_zap.c进行编译,所以也不会有chan_zap.so这个模块,因此必定要先搞定Zaptel的安装,然后Asterisk才会把这chan_zap.c代码件部分加入进去编译成chan_zap.so模块。

四.对Asterisk进行主要配置:

1.配置SIP部分

[root@IPPBXastetc]#visip.conf

--------------------------------------------------

[sip](!

type=friend

host=dynamic

disallow=all

allow=gsm

context=test

[9901](sip)

username=9901

secret=123456

[9902](sip)

username=9902

secrest=123456

--------------------------------------------------

2.配置IAX部分

[root@IPPBXastetc]#viiax.conf

--------------------------------------------------

[iax](!

type=friend

context=test

disallow=all

allow=gsm

qualify=yes

host=dynamic

transfer=no

auth=md5

context=test

[8801](iax)

username=8801

secret=123456

[8802](iax)

username=8802

secret=123456

--------------------------------------------------

3.配置拨号规则部分

[root@IPPBXastetc]#viextensions.conf

--------------------------------------------------

[test]

exten=>_880X,1,Dial(IAX2/${EXTEN},,r)

exten=>_990X,1,Dial(SIP/${EXTEN},,r)

[zapfxo2sip]

exten=>s,1,Dial(SIP/9901,,r)

exten=>h,1,Hangup()

当FXO接受到呼叫拨入的时候,自动转呼叫SIP终端9901。

[zapfxo2iax]

exten=>s,1,Dial(IAX2/8801,,r)

exten=>h,1,Hangup()

当FXO接受到呼叫拨入的时候,自动转呼叫IAX终端8801。

--------------------------------------------------

五.对Zeptel进行主要配置:

首先要交代Zaptel的几个相关文件。

(1)zapata.conf:

这个是Zaptel的主配置文件。

(2)zaptel.conf:

这个是Zaptel的硬件配置文件。

(3)zaptel-channels.conf:

这个是Zaptel的通道配置文件,它是由zapata.conf生成的,而且它也不是必须的。

它是通过include的方式附加在zapata.conf主配置文件外的,完全也可以把通道的配置定义在zapata.conf文件中而不需要该文件。

在安装好的默认情况下,主配置路径/etc/asterisk/下会有一个Zaptel的主属性配置文件zapata.conf,在这个文件中配置了Zaptel部件的全部属性,而且一开始的时候Zeptel也只有这一个配置文件。

但是实际上Zeptel不仅仅只有这一个配置文件,它仍然需要其它配置文件,如zaptel.conf以及zapata-channels.conf,但是后来两者是需要由zapata.conf这个主配置文件生成并在这个基础上修改才能使Asterisk-Zaptel工作起来的。

接下来就简要交代一下步骤。

1.生成zaptel.conf以及zapata-channels.conf配置文件。

[root@IPPBXastetc]#genzaptelconf

使用这个命令会生成以下两个硬件和通道配置文件,而这两个配置文件是一开始没有的。

(1)/etc/zaptel.conf(注意,这个文件是直接在/etc/目录下的。

(2)/etc/asterisk/zapata-channels.conf

2.分析硬件通道配置文件生成命令

[root@IPPBXastetc]#mangenzaptelconf

--------------------------------------------------

NAME

命令名

    genzaptelconf--generateszaptelconfiguration(TDMadaptors)

                生成zaptel配置(时分多路适配器)

DESCRIPTION

描述

    genzaptelconf  is  a  scripttodetectzapteldevices(currentlymostly

    TDMcards  are  supported).  It  generates  both  /etc/zaptel.conf  and

    /etc/asterisk/zapata-channels.conf

这是一个用来探测zaptel设备(TDM卡通常支持)的脚本。

它会同时生成/etc/zaptel.conf以及/etc/asterisk/zapata-channels.conf这两个文件。

FILES

相关的文件

    /etc/zaptel.conf

          The  configuration  file  used  by  ztcfg  to  configure  zaptel

          devices.re-writtenbygenzaptelconf

          .Abackupcopyissavedto/etc/zaptel.conf.bak

/etc/zaptel.conf是用来被ztcfg命令调用来配置zaptel设备配置文件。

可以通过genzaptelconf命令来通过重新生成的方式来改写。

每次重新生成时,会把原来的配置文件备份成/etc/zaptel.conf.bak。

    /etc/asterisk/zapata.conf

          Theconfigurationfileof  Asterisk鈙  chan_zap.  Not  modified

          directly  bygenzaptelconf.  Ifyouwantgenzaptelconf鈙setting

          totakeeffect,addthe  following  line  at  the  end  of  zap-

          ata.conf:

              #include"zapata-channels.conf"

/etc/asterisk/zapata.conf是模块chan_zap.so会首先调用读取的主配置文件。

而其它的zaptel配置文件都是由genzaptelconf生成出来而不是手动写出来的。

它其中一个会生成的通道配置文件就是zapata-channels.conf。

在zapata.conf的最后加入#include"zapata-channels.conf"来使zapata.conf主配置文件外连接这个通道配置文件。

    /etc/asterisk/zapata-channels.conf

          This  is  the  snippet  ofchan_zapconfigurationfilethatgen-

          zaptelconfgenerates.

          .  A  backup  copy  is  saved  to  /etc/asterisk/zapata-chan-

          nels.conf.bak

/etc/asterisk/zapata-channels.conf是由genzaptelconf生成的zaptel通道配置文件,每次重新生成时,会把原来的配置文件备份成/etc/asterisk/zapata-channels.conf.bak。

--------------------------------------------------

3.配置zaptel硬件配置文件

[root@IPPBXastetc]#vi/etc/zaptel.conf

--------------------------------------------------

#Autogeneratedby/usr/sbin/genzaptelconf--donothandedit

#ZaptelConfigurationFile

#

#ThisfileisparsedbytheZaptelConfigurator,ztcfg

#

#Itmustbeinthemoduleloadingorder

这个是通过/usr/sbin/genzaptelconf脚本命令生成而来,然后我在这个基础上作一些配置修改。

#Span1:

WCTDM/0"WildcardTDM400PREVIBoard1"

fxsks=1

fxsks=2

fxsks=3

fxsks=4

这里是四个模块接口。

注意,这里的fxsks的信令模式,其实是表示该四个接口为FXO通道接口。

(理由:

FXO通道使用FXS信令,连接的对端是FXS端口,在Asterisk中,配置就是这样反着写的!

这个会在Asterisk很多其它地方出现,这里特别声明!

#Globaldata

#loadzone    =us

#defaultzone  =us

这里是指定区域,默认的us被我后来注释掉了。

loadzone      =cn

defaultzone    =cn

在这里我指定为cn。

--------------------------------------------------

4.察看zaptel的通道配置

[root@IPPBXastetc]#ztcfg-vvv

--------------------------------------------------

ZaptelVersion:

1.4.6

EchoCanceller:

MG2

Configuration

======================

Channelmap:

Channel01:

FXSKewlstart(Default)(Slaves:

01)

Channel02:

FXSKewlstart(Default)(Slaves:

02)

Channel03:

FXSKewlstart(Default)(Slaves:

03)

Channel04:

FXSKewlstart(Default)(Slaves:

04)

四条FXO端口已经被配置,再特别提醒一边,这里的FXS指的是“FXO端口-使用FXS信令模式-连接FXS对端”,所以标示为FXS。

也说明它自己是一个FXO端口。

在Asterisk中都是这样“显示相反的”。

这个会在Asterisk很多其它地方出现,是使人感到困惑的地方之一,请务必注意。

4channelstoconfigure.

--------------------------------------------------

5.察看ztcfg命令

[root@IPPBXastetc]#ztcfg--help

--------------------------------------------------

ztcfg:

invalidoption---

Usage:

ztcfg[options]

  Validoptionsare:

  -c    --Use  insteadof/etc/zaptel.conf

  -d[level]      --Generatedebuggingoutput.(Defaultlevelis1.)

  -f          --Alwaysreconfigureeverychannel

  -h          --Generatethishelpstatement

  -s          --Shutdownspansonly

  -t          --Testmodeonly,donotapply

  -v          --Verbose(more-v'smeansmoreverbose)

--------------------------------------------------

6.配置zaptel通道

[root@IPPBXastetc]#vizapata-channels.conf

--------------------------------------------------

;Autogeneratedby/usr/sbin/genzaptelconf--donothandedit

;ZaptelChannelsConfigurations(zapata.conf)

;

;Thisisnotintendedtobeacompletezapata.conf.Rather,itisintended

;tobe#include-dby/etc/zapata.confthatwillincludetheglobalsettings

这个文件也是通过/usr/sbin/genzaptelconf生成的,然后我在这个基础上作一些配置修改。

;Span1:

WCTDM/0"WildcardTDM400PREVIBoard1"

;;;line="1WCTDM/0/0FXSKS"

signalling=fxs_ks

callerid=asreceived

group=0

context=zapfxo2sip

这个是在拨号方案extenions.conf中的context名称。

channel=>1

context=default

;;;line="2WCTDM/0/1FXSKS"

signalling=fxs_ks

callerid=asreceived

group=0

context=zapfxo2sip

channel=>2

context=default

;;;line="3WCTDM/0/2FXSKS"

signalling=fxs_ks

callerid=asreceived

group=0

context=zapfxo2iax

channel=>3

context=default

;;;line="4WCTDM/0/3FXSKS"

signalling=fxs_ks

callerid=asreceived

group=0

context=zapfxo2iax

channel=>4

context=default

以上指定了四个通道,并对每个通道进行了一些配置修改。

--------------------------------------------------

7.修改zapata主配置文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1