学习Asterisk——配置相关

配置文件如下:

asterisk.conf——主配置文件,告知Asterisk环境目录位置,包含其他所有配置文件所包含的目录,缺省会存放在/etc/asterisk目录下,也可以通过命令参数使用不同的asterisk.conf

zaptel.conf——配置板卡驱动,配置通道

adtranvofr.conf——配置帧中继语音通道

agents.conf——配置代理通道

h323.conf——配置H323通道

iax.conf——配置IAX通道

mgcp.conf——配置MGCP(媒体网关控制协议,应用于多媒体网关单元之间)

modem.conf——配置ISDN,不是modm

phone.conf——配置linux电话设备

sip.conf——配置SIP通道

sip_notify.conf——配置SIP消息通知

skinny.conf——配置Cisco SCCP通道

vpb.conf——配置Voicetronix卡通道

zapata.conf—— 配置ZAP Digium卡通道

extensions.conf——Asterisk的拨号方案,它所有的操作控制和执行流程的主要方案,它控制呼入呼出如何被处理和路由。

extensions.ael——扩展拨号方案语言

features.conf——配置呼叫停泊,parking.conf文件名字已被修改为features.conf。自定义按键配置,同时还有一些系统默认的功能键

extconfig.conf——通过res_data方式部署扩展配置,例如通过ODBC

alarmreceiver.conf——警报接收设置

enum.conf——电话号码映射查找配置

dundi.conf——分布式全球号码发现(DUNDi)是一个对等(P2P)协议,用于提供等价于那些由电子号码(ENUM)提供的服务。DUNDi有一个超过ENUM的优点是它更有弹力,因为它缺乏一个故障中心点。DUNDi能够被用于增加DNS和它与IP语音(VOIP)服务一起发展。

festival.conf——文本语音转换配置

indications.conf——铃音清晰度配置

meetme.conf——会议配置

musiconhold.conf——音乐保持配置

queues.conf——队列配置

voicemail.conf——语音邮件配置

alarmreceiver.conf——警报接收配置

alsa.conf——致力于为Linux提供高质量的声音子系统

cdr_odbc.conf

cdr_pgsql.conf——童话详单数据库存储设置

codecs.conf——Asterisk编码配置文件

dnsmgr.conf——DNS管理

httpd.conf——内置http server配置

logger.conf——配置系统日志

manager.conf——配置管理接口

modules.conf——配置可加载模块

odbc.conf——ODBC驱动配置

oss.conf——open source software配置

privacy.conf——私密配置

res_odbc.conf——实时数据库加载配置,可以把配置文件放在数据库中

rpt.conf——循环应用配置

rtp.conf——配置RTP(实时)端口

say.conf——读出标准的数字和日期

users.conf——用户定义配置文件

adsi.conf

asterisk.adsi

telcordis-1.adsi——配置模拟显示服务接口

capi.conf——CAPI是计算机辅助面对面访问的简称,是使用基于计算机的问卷的一种调研技术,CAPI可以祥CATI一样控制复杂的逻辑,而且它可以在各种各样的场所使用,购物中心、论坛或者其他公共场所,只要是被访者可以接触到电脑的地方。

sirrix.conf——配置sirrix ISDN通道

cdr_mysql.conf——配置通话详单在mysql中存储

prepaid.conf——预付费卡配置

ldap.conf——访问x.500目录访问的标准协议

bonjour.conf——苹果服务发现接口支持

enumagi.conf——电话号码映射查找配置文件

zeroconf.conf——via zeroconf是一个轻量级的服务发现协议,适用于注册和寻找附近的可用协议、设备等等。它是bonjour的开源名称,bonjour是苹果公司力推的一个service echotraining=yes。

Asterisk目录架构:

/etc/asterisk——Asterisk主目录,包含其他关于Asterisk的配置文件

/usr/lib/asterisk/modules——包含所有可以加载Asterisk模块(应用程序/编辑器/格式和有用通道),在Asterisk启动时会加载这些模块(可以编辑modules.conf)

/var/lib/asterisk——比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数据库信息

sounds/——所有声音提示的文件在这里,包括Asterisk源代码中的sounds.txt文件

modmp3/——如果配置了音乐支持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签)

keys/——使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等联结。公钥和私钥的扩展名分别为.pub和.key

firmware/——包含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像。

images/——只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联

/var/lib/asterisk/agi-bin——包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接。

/var/spool/asterisk——保存日志,包括outgoing/、gcall/、tmp/和voicemail/。

拨号方案常用函数:

Answer()——应用于接听正在响铃通道,它不需要任何参数

Playback()——应用在通道上播放事先录制好的语音文件.指定一个文件名(不带扩展名),可以使用绝对路径或者相对路径

Hangup()——应用在挂断一个正在活动的通道

Background()——它也播放事先录制好的语音文件,但它等待按键,然后执行对应extension。防止Backgroumd()后超出按键范围,使用i来解决问题.防止Background长时间没有选择,使用t来解决问题。

Goto()——应用使得在拨号方案的不同部分有序的转移非常容易。Goto()应用有三个参数分别是context, extension和priority。

Dial()——有4个参数。第一个是呼叫的被叫地址。如:SIP/50000或Zap/1. 可以同时拨打多个通道如:exten=>601,1,Dial(Zap/1&SIP/50000&IAX&60000);第二个是:超时,单位“秒“. 如不给定,将直到接听或主叫挂机。如果超时后被叫地没有应答,则会继续Dial()的extension下一个priority.如果被叫地通道忙,Dial()将转到priority n+101(n是Dial倍调用的Priority),如果存在的话,将能够处理被叫地忙得方式接听未接电话;第三个是可选参数,它可以影响到Dial()的行为,如:exten => 601,1,Dial(SIP/50000,30,Ttwr)其中T表示允许主叫用户按"#"转移呼叫;t表示允许被叫用户按”#“转移呼叫;r表示为被叫用户产生振铃声;w用户按”*“键开始录音;最后一个是URL参数。如exten=>601,1,Dial([email=SIP/60000@asterisk.voip.org]SIP/60000@asterisk.voip.org[/email])exten=>602,1,Dial(Zap/1/5732381)任何参数都可以为空。如exten=>601,1,Dial(SIP/60000,,T)或exten => 601,1,Dial(SIP/60000)

extensions.conf包含四部分(context,extension,priorities,applicaition)

context: 用于对extensions组命名,把拨号方案的不同部分进行分离,免得交织在一起。表示方法是把名字放在[]的中间,名字只能用a~z,A~Z,0~9,以及连字号和下划线组成(空格不再允许的字符里面,context中不要使用空格)。所有放在context定义之后的指令都是这个context一部分,直到下一个context定义的开始。

exten=>name, priority, application()

拨号方案中的变量有3种:全局变量、通道变量和环境变量

全局变量——在extensions.conf文件的开始用[globals]这个context定义或利用SetGlobalVol()应用。如[globals] 80000=Zap/1 或 [internal] exten => 123,1,SetGlobalVar(80000=Zap/1)

通道变量——通道变量与特定的呼叫相关的变量,通道变量只能在当前呼叫存在期间定义,并只能用于参与该呼叫的通道.通道变量使用Set()应用来设置。如extern => 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)

SIP.conf的常用参数配置:

sip.conf用于配置SIP通道。

[1005]——拨号方案实例

username=1005——用户名

type=friend——类型,友好

secret=123456——密码,sip呼入时验证用

qualify=no——资格

port=5060——端口,sip呼入使用的默认端口

nat=yes——网络地址转换,内网穿透

host=dynamic——主机名动态获取

context=from-sql——对应拨号方案中的标签from-sql

canreinvite=no——不允许重复邀请

allow=ulaw——允许使用gsm、ulaw、G729、G711、pcm、vox、wav等音频格式,不配置此项默认gsm格式。

extensions.conf拨号方案配置文件

[from-sql]

exten => 111,1,Answer() ——拨打111的第一步操作,进行应答摘机

exten => 111,n , AGI(start.php) ——拨号方案执行start.php脚本,AGI脚本(如C、Ruby、Perl、java、python)默认存放在/var/lib/asterisk/agi-bin/下

exten => 111,n, hangup ——下一步操作,挂机

features.conf自定义按键配置文件

主要需要设置featuremap(用于配置需要触发的按键)与applicationmap(配置触发按键后的动作)标签中的参数。

<1 配置featuremap>

[featuremap]

testkey1 => *3    ——定义*3键

Testkey2 =>#7    ——定义#7键

<2配置Applicationmap>

[applicationmap]

testkey1 => *3,callee,Playback, tt-monkeys

Testkey1被叫按下*3后的动作是播放tt-monkeys这个声音文件。

语法: <featurename>=><keysequence>,<caller|callee>,<App>[,App Args]

featurename——按键信息,主叫权限/被叫权限,执行的系统程序

<3配置其他需要的参数>

featuredigitimeout=20000——按键超时时间,单位:秒

atxfernoanswertimeout=15——转接过程中呼叫等待的时间,单位:秒

<4拨号方案中的配置>

在拨号方案中需要include引入featuremap中自定义的按键名称,以及按键触发动作的脚本名称也需要引入(动作脚本定义在拨号方案中,以标签的形式定义)

[key_test]

include=>testkey1

include=>keycommand

exten=>_XXX,1,Set(DYNAMIC_FEATURES=nway-start)

exten=> _XXX,n,Dial(SIP/${EXTEN})

[keycommand]

exten =>s,1,SoftHangup(${BRIDGEPEER})

meetme.conf配置asterisk的会议功能

[rooms]

语法:Usage is conf =>confno[,pin][,adminpin]

举例:conf => 1001,123456,654321

conf =>1002

使用conf标签开始,1001是会议室编号,123456是会议室密码,654321是管理员密码

MeetMe()函数有三个参数:会议室名、可选项、密码

可选项有这几个:

a——设置此项,用户将使用高级管理员进入会议

p——设置此项,Asterisk将在按“#”键后推出会议

s——设置此项,Asterisk将在按“*”键后提供一个菜单给用户

m——设置此项,用户只能收到来自会议室的音频。

注:配置meetme.conf后需要重启asterisk以重新读取该配置文件中的参数配置。

例:

exten=>4000,1,MeetMe,4000    将直接呼叫着(会议成员)加入到号码4000的会议。

exten=>100,1,MeetMe,4000|mp|1234    将允许呼叫着进入会议里只能听,将允许呼叫者通过按"#"键离开会议,和需要输入一个有效密码1234之前加入。

exten=>100,2,MeetMeCount,4000    播放参与人数

exten=>100,3,Playback,callersin    

exten=>100,4,MeetMe,4000    加入呼叫者到4000会议室。

实现一个完整功能的会议系统的步骤:

编辑meetme.conf和为每个会议创建一个的登录入口

编辑extensions.conf和利用MeetMe应用内部拨号计划呼叫会议和利用MeetMeCount引用随时播放参与者号码。

Zapata.conf配置Asterisk与zaptel驱动程序之间通讯。

信令类型是唯一强制设置,在分配一个通道之前,必须定义信令类型。如果连接的模拟电话设备,注意模拟信令是导致混乱的来源。FXS通道采用FXO信令,反之,Asterisk通知内部设备爱用相反方式。FXO接口卡采用FXS信令,同样须定义。设置通道信令类型,这些参数必须与zaptel驱动配置匹配。设置基于采用什么样的办卡,如果通道信令设置错误,如果配置描述与zaptel驱动配置不匹配,或者如果卡不存在而配置正确,Asterisk不会工作。正确的设置通常包含下面4种信令中一种:fxs_ks,fxo_ks,pri_cpe or pri_net。该设置没有缺省值,必须在分配通道前设置信令值。

Asterisk支持的信令类型:

em:E&M Immediate Start

em_w:E&M Immediate Start

em_e1:E&M CAS signalling for E1 lines

........

配置通道:

context=testflow    ——首先进入拨号方案

group=1

channel=>1-15,17-31

channel=>32-46,48-62

channel=>63-77,79-93

channel=>94-108,110-124

modules.conf配置asterisk未加载的模块。默认全部加在,可以在此处noload不需要的模块。

zaptel.conf配置板卡驱动,配置通道。

span=1,1,0,ccs,hdb3

bchan=1-15    ——bchan配置语音通道

dchan=16    ——dchan配置信令通道

bchan=7-31

manager.conf配置管理接口,这个管理接口是用于远程浏览和修改控制台

交互方式:telnet host 5038

#vi  /etc/asterisk/manager.conf

[general]

enabled=yes

port=5038

bindaddr=0.0.0.0

[theuser]

secret=somepassword

read=system,call,log,verbose,command,agent

write=system,call,log,verbose,command,agent

Asterisk的应用指令:

Authenticate——鉴别用户

VMAuthenticate——根据“voicemail.conf"鉴别用户

Curl——接受外接URLs的修复,支持POSTING

DUNDiLookup——用DUNDi查询号码

SendDTMF——发送独裁的DTMF数据

SendImage——发送图像档案

SendText——发送给客户正文消息

SendURL——发送客户URL以显示

System——执行系统命令

Transfer——将访客转移到另一个扩展名

TrySystem:0——回复执行系统命令

Wait  ——稍等

WaitExten——稍等

WaitForRing——等待呼叫申请

WaitMusicOnHold——等待,在线音乐

转载于:https://my.oschina.net/u/1467351/blog/212346

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值