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

  1. sip.conf                      sip电话基本配置
  2. extensions.conf        拨号规则
  3. voicemail.conf                   配置语音信箱
  4. meetme.conf           会议室
  5. http.conf                   web界面相关
  6. manager.conf           web界面相关
  7. cdr_mysql.conf       详单数据库
  8. res_mysql.conf        mysql数据库配置
  9. features.conf           自定义按键配置,同时还有一些系统默认的功能键
  10. modules.conf          定义了系统启动时加载的模块
  11. 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配置:

 [10001]
type=friend; ;可以定义用户(user)\端(peer)\朋友(friend)
secret=10001 ;链接服务器的密码
host=dynamic; ; 动态主机地址,需要注册到服务器
context=default; ;系统分组default 默认不分组暗指所有
username=10001; ;用户名可以省略
mailbox=10001@default ;语音信箱
;record_out=Always; ;去电录音Adhoc需要时,Never从不,Always总是
;record_in=Never ;来电录音
;callgroup ;呼叫分组,默认是"1"
;pickupgroup ;带接组
;disallow ;不允许编码
port=5060; ;通信端口号
qualify=yes; ;监视asterisk服务器与电话之间是否延时(默认2000可达;yes也可替换毫秒)
nat=yes; ;如果一个号码在NAT设备后面,例如路由器或者防火墙,必须配置nat=yes,强迫asterisk忽略号码的联系信息,使用收到的包的地址信息 [10002]
type=friend; ;可以定义用户(user)\端(peer)\朋友(friend)
secret=10002 ;链接服务器的密码
host=dynamic; ; 动态主机地址,需要注册到服务器
context=default; ;系统分组default 默认不分组暗指所有
username=10001; ;用户名可以省略
mailbox=10001@default ;语音信箱
;record_out=Always; ;去电录音Adhoc需要时,Never从不,Always总是
;record_in=Never ;来电录音
;callgroup ;呼叫分组,默认是"1"
;pickupgroup ;带接组
;disallow ;不允许编码
port=5060; ;通信端口号
qualify=yes; ;监视asterisk服务器与电话之间是否延时(默认2000可达;yes也可替换毫秒)
nat=yes; ;如果一个号码在NAT设备后面,例如路由器或者防火墙,必须配置nat=yes,强迫asterisk忽略号码的联系信息,使用收到的包的地址信息 ;context=internal 定义了指令地点,用于控制电话的权限,以及如何处理此号码的呼入呼叫。sip.conf中设置的context名称和extensions.conf中的匹配。

详细配置信息说明: http://www.cnblogs.com/yhyjy/archive/2012/07/25/2608417.html

  • 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将被发送。这个参量很少使用。

 [general]
exten => 10001,1,Dial(SIP/10001);
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) //用户忙转语音信箱

Asterisk的配置详解的更多相关文章

  1. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  2. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  3. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  4. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  5. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

  6. logback配置详解2<appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  7. log4j.properties配置详解

    1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ...

  8. Log4J日志配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  9. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

随机推荐

  1. HDU 5593 ZYB's Tree 树形dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5593 题意: http://bestcoder.hdu.edu.cn/contests/contes ...

  2. 【CentOS】搭建git服务器

    参考资料: https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md http://blo ...

  3. 【bzoj1008】[HNOI2008]越狱

    1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 7692  Solved: 3296[Submit][Status] ...

  4. Windows+Apache+MySQL+PHP(WAMP)环境搭建

    运行操作系统:Windows Server 2008 R2 Apache版本:Apache 2.2 MySQL版本:MySQL 5.5 PHP版本:PHP 5.6.14(当前最新版) 更新日期:201 ...

  5. CSS绝对定位和相对定位 position: absolute/relative

    absolute(绝对定位): 会把对象拖离HTML文档流,并通过top, left, right, bottom确定对象的具体位置,这个四个位置属性至少要设置一个,否则无法激活对象的absolute ...

  6. vs2010创建并使用DLL

    一.为什么需要dll 代码复用是提高软件开发 效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架, 如ATL ...

  7. C# 模拟一个处理消息队列的线程类 Message Queue

    // 模拟一个处理消息队列的类 class MessageHandler { // 消息队列 private Queue<string> messageQue = new Queue< ...

  8. linux gcc loudong

    五事九思 (大连Linux主机维护) 大连linux维护qq群:287800525 首页 日志 相册 音乐 收藏 博友 关于我     日志       spcark_0.0.3_i386.src.t ...

  9. Office 2013 note

    1.每次打开重新配置: 问题表现:启动后发现每次打开都会出现“正在配置”的进度 执行:reg add HKCU\Software\Microsoft\Office\15.0\Word\Options ...

  10. ExtJs布局之border

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...