asterisk 配置 mysql_Asterisk的配置详解

本文详细介绍了Asterisk的配置文件,包括sip.conf、extensions.conf等,并提供了sip.conf的基本配置示例,讲解了SIP协议和RTP的用途。此外,还讨论了如何配置cdr_mysql.conf和res_mysql.conf以连接到MySQL数据库,以及如何使用http.conf和manager.conf启用Web功能。
摘要由CSDN通过智能技术生成

Asterisk的配置文件都在/etc/asterisk目录下,重要的配置文件有:

sip.conf                      sip电话基本配置

extensions.conf        拨号规则

voicemail.conf                   配置语音信箱

meetme.conf           会议室

http.conf                   web界面相关

manager.conf           web界面相关

cdr_mysql.conf       详单数据库

res_mysql.conf        mysql数据库配置

features.conf           自定义按键配置,同时还有一些系统默认的功能键

modules.conf          定义了系统启动时加载的模块

logger.conf              日志

sip--会话初始协议,通常用于voip电话,进行呼叫建立、呼叫结束以及呼叫进程中的协商。基本上,它帮助二个端点互相通话。sip不处理媒体;当呼叫建立之后,它通过实时传输协议在电话之间直接传输媒体。

SIP使用UDP5060端口进行通信,目前asterisk没有TCP用于传输,但以后的版本可能会支持。我们所说的媒体是指端点之间传输的用于在另一端点重建你的声音数据。同样也指pbx音乐或声音提示。

RTP用于在端点之间传输媒体。Asterisk中RTP使用大数字的无特权的端口(默认10000至20000)

SIP不是第一个,也不是唯一一个我们使用的VOIP协议(其它包括H.323,MGCP,IAX等),但是目前SIP似乎是硬件厂商最大的动力。SIP协议的优点是普遍的被接受和结构灵活,简单。

下面是基本的sip.conf配置:

1 [10001]2 type=friend; ;可以定义用户(user)\端(peer)\朋友(friend)3 secret=10001 ;链接服务器的密码4 host=dynamic; ; 动态主机地址,需要注册到服务器5 context=default; ;系统分组default 默认不分组暗指所有6 username=10001; ;用户名可以省略7 mailbox=10001@default ;语音信箱8 ;record_out=Always; ;去电录音Adhoc需要时,Never从不,Always总是9 ;record_in=Never ;来电录音10 ;callgroup ;呼叫分组,默认是"1"11 ;pickupgroup ;带接组12 ;disallow ;不允许编码13 port=5060; ;通信端口号14 qualify=yes; ;监视asterisk服务器与电话之间是否延时(默认2000可达;yes也可替换毫秒)15 nat=yes; ;如果一个号码在NAT设备后面,例如路由器或者防火墙,必须配置nat=yes,强迫asterisk忽略号码的联系信息,使用收到的包的地址信息16

17 [10002]18 type=friend; ;可以定义用户(user)\端(peer)\朋友(friend)19 secret=10002 ;链接服务器的密码20 host=dynamic; ; 动态主机地址,需要注册到服务器21 context=default; ;系统分组default 默认不分组暗指所有22 username=10001; ;用户名可以省略23 mailbox=10001@default ;语音信箱24 ;record_out=Always; ;去电录音Adhoc需要时,Never从不,Always总是25 ;record_in=Never ;来电录音26 ;callgroup ;呼叫分组,默认是"1"27 ;pickupgroup ;带接组28 ;disallow ;不允许编码29 port=5060; ;通信端口号30 qualify=yes; ;监视asterisk服务器与电话之间是否延时(默认2000可达;yes也可替换毫秒)31 nat=yes; ;如果一个号码在NAT设备后面,例如路由器或者防火墙,必须配置nat=yes,强迫asterisk忽略号码的联系信息,使用收到的包的地址信息32

33 ;context=internal 定义了指令地点,用于控制电话的权限,以及如何处理此号码的呼入呼叫。sip.conf中设置的context名称和extensions.conf中的匹配。

extensions.conf的配置

1.Answer()应用用于接听正在振铃的通道

2.Playback()应用用于在通道上播放事先录制好的语音文件。在使用Playback()应用时,系统不会理会来自用户的输入。若要使用Playback(),要指定一个文件名(不需要带扩展名)作为参考。要特别说明的事,您也可以在文件名上包括完整的路径。

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

4.Background()应用播放事先录制好的语音文件当主叫方按下电话键的时候,会中断语音的播放,转到与所按数字对应的extension。Background()应用通常用于创建语音菜单。

5.Goto()应用它用于把呼叫发送到另一个context、extension以及priority

6.需要一个extension来处理主叫方没有及时输入的情况。如果主叫方在Background()完成语音文件播放后很久才按键,呼叫将被转移到textension。需要一个用来处理非法输入的extension,从而在主叫方按下一个无效输入

7.Dial()应用把不同的主叫方链接到一起。Dial()需要4个参数。第1个是呼叫的被叫地,由呼叫所采用的技术、反斜线、远地资源等组成。Dial()应用的第2个参量是超时,单位为秒。如果给定了超时参量,Dial()会一直对被叫地进行呼叫,直到有人接听,或者主叫挂断。Dial()应用的第3个参量是可选择的字符串。它包含一个或多个能够影响Dial()应用行为的字符。选项的列表太长,不能在这里逐一列出。最常用的一个是字母r。如果把字母作为第 3 个参量,在通知被叫通道有来电的这段时间内,主叫方会听到振铃声音。Dial( )应用的最后一个参量是URL。如果被叫通道支持在呼叫的同时接受URL,那么所指定的 URL将被发送。这个参量很少使用。

1 [general]2 exten => 10001,1,Dial(SIP/10001);3 exten => 10002,1,Dial(SIP/10002);

简单的例子说明:

(1)    应答,播放语音,挂掉

exten=>s,1,answer ; 接听

exten=>s,2,Playback(hello-world);播放语音文件

exten=>s,3,hangup();挂断

范例:

exten=>123,1,Answer

exten=>123,2,Playback(tt-weasels)

exten=>123,3,Voicemail(44)

exten=>123,4,Hangup

这是单个名为“123”的extension的定义。但一个呼叫被安排到 extension 123,Asterisk将自己回答这个呼叫,播放一个名为“tt-weasels”的声音文件,提示用户是否留下语音邮件,然后挂断电话。

应该注意的是,Asterisk没有关注这几行代码在extensions.conf文件中的顺序。

语音信箱的使用和配置

在voicemail.conf中建立语音信箱

8001=>1234,8001,8001@device;

说明:箭头左边的8001是邮箱号码,箭头右边1234是邮箱的密码,8001是邮箱主人的名字,8001@device是邮箱所有者的Email地址

在extension.conf中添加语句

exten=>_X.,1,Dial(SIP/${EXTEN},r,10)           ;呼叫连接当前的通道

exten=>_X.,2,Voicemail(u${EXTEN}@default)     ;在十秒钟内没有接听电话,不可用的信息能被播放

exten=>_X.,102,Voicemail(b${EXTEN}@default)  ;它将我们的呼叫送往语音邮件,将听到忙的消息

电话会议的配置

[rooms]

conf=>1001,1111,2222 声明会议室号是1001,普通用户进入密码1111,管理员密码2222

要使用web功能要配置http.conf,manager.conf

如要使用web功能,在这两http.conf中设置:

enabled=yes

enablestatic=yes

在manager.conf中设置:

[general]

displaysystemname = yes

enabled = yes

webenabled = yes

port = 5038

[administrator]//添加asterisk

gui用户

secret = 123456

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

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

[astbillman]//添加astbill用户

secret = ab87AstBtii3

deny=0.0.0.0/0.0.0.0

;permit=81.229.203.216/255.255.255.255

permit=127.0.0.1/255.255.255.255

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

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

cdr_mysql.conf的配置

[global]

hostname=localhost;

dbname=asteriskcdrdb

table=cdr

password=password

user=asteriskcdruser

port=3306

sock=/var/lib/mysql/mysql.sock

userfield=1

在每次通话结束后,运行mysql,使用asteriskcdrdb数据库就能看到cdr表下产生的话单

res_mysql.conf 配置

[general]

dbhost = localhost   //astbill 数据库

dbname = astbill

dbuser = astbilluser

dbpass = astbill419

dbport = 3306

dbsock = /var/lib/mysql/mysql.sock

logger.conf配置

[logfiles]

debug => debug

console => notice,warning,error

messages => notice,warning,error  //都是设置要输出的信息。

;保存在/var/log/asterisk下

[default]

include => DID //包含DID context

include => featuremap //可以使用features.conf中定义的功能

include => parkedcalls //支持call park

exten => 1000,1,saydigits(${EXTEN})

exten =>

1000,2,Set(DYNAMIC_FEATURES=testfeature#musichold#record#unrecord)

exten => 1000,3,background(hello-world)

exten => 1000,4,waitexten(10,m)

exten => i,1,playback(pbx-invalid)

exten => i,2,goto(default,1000,1)

exten => t,1,playback(vm-goodbye)

exten => t,2,hangup()

exten => 1,1,goto(internal,s,1)

exten => _9.,1,goto(out-bound,s,1) //拨9呼外线,需另外写out-bound context。

exten =>

500,1,voicemailmain() //收听语音信箱内容

exten => 500,2,hangup()

exten =>

1234,1,meetme(,IpM) //拨500加入会议,会提示输入会议号和密码

exten => _5XXX,1,Dial(SIP/ServerA/${EXTEN:1},30,r) //拨5呼叫serverA下的用户

exten => _5XXX,2,Answer()

exent => _5XXX,3,hangup()

[internal]

include => featuremap

include => parkedcalls

exten => s,1,Ringing

exten => s,n,wait,2

exten => s,n,background(enter-ext-of-person)

exten => s,n,waitexten(10,m)

exten => _1XX,1,wait(3)

exten =>

_1XX,2,Set(DYNAMIC_FEATURES=testfeature#musichold#record#unrecord)

exten => _1XX,3,Dial(SIP/${EXTEN},10,tTwW)

exten => _1XX,4,playback(vm-nobodyavail)

exten => _1XX,5,voicemail(u${EXTEN}@default) //超时5秒转语音信箱

exten => _1XX,6,hangup()

exten => _1XX,104,playback(tt-busy)

exten => _1XX,105,voicemail(b${EXTEN}@default) //用户忙转语音信箱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值