




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安装注意事项: 主要包:Asterisk主程序,libpri库,zaptel;(libpri-zaptel-Asterisk) 安装Asterisk须要的包:gcc3.x(编译);bison:代替yacc解析器(extensions.conf表达式需要bison解析)与cli;OpenSSl:Cryptographic;使用zttool工具须要libnewt;实时做用ztdummy或使用zaptel提供的硬件驱动,都要安装zaptel包;使用ztdummy驱动做时钟接口就须要libpri库检查依赖包是否安装及安装方法:rpm -q kernel-develrpm -q bisonrpm -q bison-develrpm -q ncursesrpm -q ncurses-develrpm -q zlibrpm -q zlib-develrpm -q opensslrpm -q openssl-develrpm -q gnutls-develrpm -q gccrpm -q gcc-c+yum install kernel-develyum install bisonyum install bison-develyum install ncursesyum install ncurses-develyum install zlibyum install zlib-develyum install opensslyum install openssl-develyum install gnutls-develyum install gccyum install gcc-c+安装asterisk:1、安装 Libpri: 进入安装目录cd /path/to/source/libpri makemake install2、安装 Zaptel: 进入安装目录cd /usr/src/asterisk/zaptelmakemake install3、安装 Asterisk: 进入安装目录cd /usr/src/asterisk/asterisk./configuremakemake installmake samplesasterisk的目录 :/etc/asterisk/Asterisk主目录,包含其它关于Asterisk的配置文件;*zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在/etc/asterisk里. /usr/lib/asterisk/modules/这个目录包含所有可以加载Asterisk模块(应用程序编辑器格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf). /var/lib/asterisk/比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数据库信息. sounds/所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件 mohmp3/如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签). /var/lib/asterisk/agi-binagi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接. /var/spool/asterisk/outgoing/ 外呼文件配置文件 :/etc/zaptel.conf硬件接口的基本层. /etc/asterisk/zapata.conf为硬件配置Asterisk的接口. /etc/asterisk/sip.confSIP协议配置文件 /etc/asterisk/iax.conf呼入和呼出IAX通道 /etc/asterisk/extensions.conf拨号方案配置文件 /etc/asterisk/logger.conf 调试信息的配置文件/etc/asterisk/manager.conf 登录的账号配置文件/etc/asterisk/meetme.conf 会议配置文件/etc/asterisk/modules.conf 模块加载配置文件/etc/asterisk/feature.conf 电话按键配置文件Zapata配置 trunkgroupschannelslanguage=cncontext=from-pstn;signalling=fxs_ks;signalling=pri_netsignalling=pri_cpe;switchtype=nationalswitchtype=euroisdnpridialplan=nationalcallerid=asreceivedusecallerid=yeshidecallerid=nocallwaiting=yesusecallingpres=yescallwaitingcallerid=yesthreewaycalling=yestransfer=yescancallforward=yescallreturn=yesinternationalprefix = 00nationalprefix=0localprefix=0574echocancel=yesechocancelwhenbridged=yesechotraining=yesrxgain=0.0txgain=0.0group=0callgroup=1pickupgroup=1immediate=nochannel = 1-15,17-31;channel = 32-46,48-62;channel = 63-77,79-93;channel = 94-108,110-124Zaptel配置span=1,1,0,ccs,hdb3span=2,1,0,ccs,hdb3span=3,1,0,ccs,hdb3span=4,1,0,ccs,hdb3#span1bchan=1-15dchan=16bchan=17-31#span2bchan=32-46dchan=47bchan=48-62#span3bchan=63-77dchan=78bchan=79-93#span4bchan=94-108dchan=109bchan=110-124loadzone=cndefaultzone=cnSIP和RTP SIP是一个应用层的信令协议.他使用的端口是5060(通常)进行通信.SIP可以通过UDP和TCP传输层协议进行传输.Asterisk目前没有TCP用于传输SIP信息. RTP用于端点间传输媒体(语音),Asterisk中RTP使用大数字的无特权端口(默认10,000到20,000) SIP优点:普通的被接受和结构灵活.其它的VOIP协议还有H.323,IAX,MGCP. SIP配置 /etc/asterisk/sip.conf文件中: general context=default 10000 username=10000 ;用户名 type=friend ;可以定义用户(user)端(peer)朋友(friend) secret=123456 ;认证密码 record_out=Always;去电录音Adhoc须要时,Never从不,Always总是record_in=Never;来电录音 callgroup=1;呼叫组,默认为1 disallow=all ;不允许编码 allow=ulaw;允许编码 port=5060 ;端口号 qualify=yes ;监视Asterisk服务器与电话之间是否延时(默认2,000可达;yes可替换毫秒) context=default;指令的地点 host=dynamic ;要求号码要注册,以便Asterisk如何找到电话.(static则不需要注册) dtmfmode=rfc2833 ; nat = yescallerid=device canreinvite=no ;注意:用户户类型是用于认证呼入呼叫;端类型用于呼出呼叫;朋友类型两种都用.(这个常用在sip.conf与iax.conf中用到) 完整的extension由三部分组成: 应用(或者命令),针对呼叫完成一些动作 这三个部分用英文逗号分开,如: exten = name,priority,application()变量 在拨号方案中使用变量可以减少打字、增加清晰度,也有助于在拨号方案中加入逻辑. 这里的变量有全局变量,通道变量和环境变量. 全局变量: 全局变量应该在extensions.conf文件的开始利用globals这个context定义或利用 SetGlobalVar()应用.如: globals 80000=Zap/1 或 internal exten = 123,1,SetGlobalVar(80000=Zap/1)通道变量 通道变量与特定的呼叫相关的变量,通道变量只能在当前呼叫存在其间定义,并只能用于参与该呼叫的通道.通道变量使用 Set()应用来设置.如: exten = 601,1,Set(80000=Zap/1)环境变量 环境变量是一种在 Asterisk 中访问操作系统环境变量的方法.这些变量以$ENV(var)形式引用,其中的 var 是所要引用的操作系统环境变量. 综合上面举例: globals PSTN=Zap/1 TEST=SIP/80000 test exten = s,1,Answer() exten = s,2,Background(enter-ext-of-person) exten = 101,1,Dial($PSTN,10) exten = 101,2,Playback(vm-nobodyavail) exten = 101,3,Hangup() exten = 101,102,Playback(tt-allbusy) exten = 101,103,Hangup() exten = 102,1,Dial($TEST,10) exten = 102,2,Playback(vm-nobodyavail) exten = 102,3,Hangup() exten = 102,102,Playback(tt-allbusy) exten = 102,103,Hangup() exten = i,1,Playback(pbx-invalid) exten = i,2,Goto(incoming,s,1) exten = t,1,Playback(vm-goodbye) exten = t,2,Hangup() default exten = 101,1,Dial($PSTN,r) exten = 102,1,Dial($TEST,r)模式匹配 :使用模式及匹配是用不同的字母和符号来代表可能要匹配的数字.模式总是用一个下划线 (_) 开始,它告诉Asterisk 要做模式匹配,这不是一个 extension 名字.(这意味着不能使用下划线作为 extension 名字的开始字符.) 模式匹配语法 :在下划线之后,可以使用一个或者多个下面列出来的字符: X:匹配 0-9 的任何数字; Z:匹配 1-9 的任何数字; N:匹配 2-9 的任何数字; .(句号)通配符,匹配一个或多个字符; 15-7:匹配1,5,6,7;使用$EXTEN通道变量:Asterisk会把通道变量$EXTEN设置为所拨的数字.通过sayDigits()检测拨到号码内容如: exten = _9XXXXXXX,1,SayDigits($EXTEN) ;SayDigits()应用会把所拨的8位extension读出来 exten = _9XXXXXXX,1,SayDigits($EXTEN:1) ;只读出来后7位数,其中1表示不拨前面1位数 exten = _9XXXXXXX,1,SayDigits($EXTEN:-1) ;只读出来最后1位,其中1表示只拨出最后1位数常规指令:Answer:如果呼叫回复一个信道Busy:显示忙的情形等待挂断Congestion:显示拥塞等待挂断Dial:设置一个指令连接当前的信道注意:参数r、M(x): Executes the macro (x) upon connect of the call (i.e. when the called party answers). S(n): Hangup the call n seconds AFTER called party picks up. L(x:y:z): Limit the call to x ms, warning when y ms are left, repeated every z ms)Hangup: 无条件挂断Ringing显示呼叫SetCallerID: 建立CallerID,发生矛盾服从CallerIDCallerIDSoftHangup: 请求挂断转到另一个信道Application integration AGI: 执行一套AGI 适应程序 DeadAGI: 在中断的信道上执行AGI EAGI: 执行一套 AGI 适应程序Macro: 执行较大的程序 NoOp: 不进行操作,可将数值打印到控制太进行调试 Goto:转到优先码,扩展名和过渡段 GotoIf: 条件展转接 SetGlobalVar:赋数值变量Set: 设信道变量和功能值 SetVar: 赋数值变量(如果不允许,使用 Set)Background: 当执行其它命令的时候播放声音文件MP3Player: 播放MP3声音文件MusicOnHold: 无限度地播放音乐Playback: 播放一个声音文件Playtones: 当执行其它命令的时候播放声音列表StopPlaytones: 停止播放音调列表SayDigits: 显示阿拉伯数字SayNumber: 显示数字SayPhonetic:显示语音Monitor: 录音电话会话到声音文件StopMonitor: 停止监测路线通道变量:$ANSWEREDTIME: 通话时长(秒) $BLINDTRANSFER: 通道是否为转接类型$CALLERID(all): 主叫用户名(主叫ID) 格式 name(123454)$CALLERID(name): 主叫用户名 sip.conf 里的 username=XXXX $CALLERID(num): 主叫号码sip.conf 里的 callerid=XXXX $CHANNEL: 当前通道标识 $CONTEXT: 当前context$DATETIME: 当前日期时间 $DIALSTATUS: 当前通道状态 $DNID: 用户所拨打的号码 $EXTEN: 当前所拨打分机号码 $HANGUPCAUSE: The last hangup return code on a Zap channel connected to a PRI interface $LANGUAGE: 提示语言 $PRIORITY: The current priority $UNIQUEID: 当前唯一标识AGI说明:1、GET DATA timeout max digits放音收号例子:$result= $agi-get_data($file,$timeout,1);return array, see evaluate for return information. result holds the digits and data holds the timeout if present.注意:井号键,全部空值2、$agi-exec_dial($dialpara1,base_setnum($othernum),$dialpara2.|r)例子:exec_dial(ss7/siuc,053187910596,40)注意:$agi-exec(Dial,” ss7/siuc/053187910596|40”)3、EXEC 例子:$agi-exec(playback,Sound_Path.prevoice);注意:playback(“”,”noanswer”)不摘机放音4、GET VARIABLE 例子:$agi-get_variable(ANSWEREDTIME);return array, see evaluate for return information. result is 0 if variable hasnt been set, 1 if it has. data holds the value.5、Agi调试命令$agi-verbose(-get DTMF faild-);输出要需要的字符串,用来做调试用6、$agi-hangup;AMI说明:Login:登录例子:Action:login Username:admin Secret:godLogout:退出例子:ACTION: LOGOFF Response: GoodbyeRedirect:重定向例子:Action: Redirect Channel: Zap/73-1 ExtraChannel: SIP/199testphone-1f3c Exten: 8600029 Context: default Priority: 1Hangup:挂机例子:ACTION: Hangup Channel: SIP/x7065558529-99a0附录1、:linux下访问sql server一、下载相关软件 unixODBC、freetds和DBD-ODBC 首先需要下载3个文件: Linux系统的ODBC unixODBC-2.2.8.tar.gz ( ) 连接SQLServer或Sybase的驱动 freetds-0.62.4.tar.gz ( ) perl的ODBC模块 DBD-ODBC-1.12.tar.gz ( ) 把下载到的三个文件放到同一个目录 二、安装和配置(前提:DBI模块已成功按装)1、安装unixODBC # tar vxzf unixODBC-2.2.8.tar.gz # cd unixODBC-2.2.8 # ./configure -prefix=/usr/local/unixODBC # make # make install 2、安装freetds # tar vxzf freetds-0.62.4.tar.gz # cd freetds-0.62.4 # ./configure -prefix=/usr/local/freetds -with-unixodbc=/usr/local/unixODBC -with-tdsver=8.0 # make # make install 3、安装DBD-ODBC 在安装之前要先设置一下环境变量 # export ODBCHOME=/usr/local/unixODBC 之后开始编译安装 # tar vxzf DBD-ODBC-1.12.tar.gz # cd DBD-ODBC-1.12 # perl Makefile.PL # make # make install 所有的软件到现在都安装完成了,接下来就是配置了 4、配置freetds # vi /usr/local/freetds/etc/freetds.conf 修改以下的一段,并把;去掉 改好之后的内容: MyServer2k host=00 port=1433 tds version=8.0 其中的MyServer2k代表在客户端使用的服务器名称,host代表SQLServer服务器的IP地址,port代表端口,测试连接; # /usr/local/freetds/bin/tsql -S MyServer2k -H 00 -p 1433 -U sa -P 111111 or# /usr/local/freetds/bin/tsql -S MyServer2k -U sa -P 1111111 use pubs2 go 1 select count(*) from jobs 4 1 quit 一切都很顺利 现在来说明以下这些参数的作用,-S MyServer2k是在freetds.conf中定义好的,-H 2服务器IP地址,和freetds.conf中的一致,如果使用了-S参数,这个参数可以不用,-p 1433用来指定端口是1433 ,-U sa用来指定连接数据库的用户名,-P password用来指定连接数据库的密码。 5、配置unixODBC # cd /usr/local/unixODBC 向ODBC添加SQLServer驱动 # vi etc/odbcinst.ini 写入如下内容: TDS ;驱动名称 Description = MS-SQLServer ;描述 Driver = /usr/local/freetds/lib/libtdsodbc.so ;驱动程序 Setup = /usr/local/freetds/lib/libtds.so ;不要问我,我也不知道这是什么 FileUsage = 1 保存退出 添加DSN # vi etc/odbc.ini 写入如下内容 mspubs ;DSN名称 Driver = TDS ;ODBC驱动 Server = 2 ;服务器IP Database = pubs;要使用的数据库 Port = 1433 ;端口 Socket = Option = Stmt = 保存并退出,测试ODBC的连接 # bin/isql -v mspubs sa 111111SQL select count(*) from jobs+-+ | | +-+ | 4 | +-+ SQL quit OK,测试通过,开始测试perl能否正确使用ODBC 在使用perl连接ODBC之前要做些准备工作 把ODBC的共享库都复制到/usr/lib目录 # cp /usr/local/unixODBC/lib/libodbc.* /usr/lib 6、perl脚本测试能否成功; # vi test.pl 内容如下 #!/usr/bin/perl use DBI; my $dbh=DB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版地热能开发打钻承包协议
- 二零二五年度企业工商注册代理专项服务合同范本
- 综合实践课工作总结
- 美术机构工作总结
- 2025年风场运维三措两案
- 银孚注册消防工程师课件
- 2023-2029年中国烤鱼片行业市场深度分析及发展潜力预测报告
- 湖镇污水处理厂工程项目建议书(代可行性研究报告)的批复-
- 年度工程项目个人总结
- 物业公司年度培训总结
- GB/T 45089-20240~3岁婴幼儿居家照护服务规范
- 燃气表施工应急预案方案
- 平安在线测评 iq 30题 答案
- 老年人多重用药评估与管理中国专家共识
- 重庆市园林水生植物栽植技术标准
- 2024年海南省海口市规划信息资料服务中心招聘4人(高频重点复习提升训练)共500题附带答案详解
- 投诉法官枉法裁判范本
- 鲁教版历史六年级上册全册课件(五四制)
- 食材配送服务方案投标方案(技术方案)
- 2024CSCO肿瘤患者静脉血栓防治指南解读
- 减脂饮食培训课件
评论
0/150
提交评论