Asterisk Dialplan 学习精要

需积分: 12 10 下载量 40 浏览量 更新于2024-09-16 收藏 135KB DOC 举报
“asterisk_dialplan学习笔记,深入解析Asterisk拨号计划与SIP配置” 在深入了解Asterisk拨号计划之前,我们先来看看SIP(Session Initiation Protocol)配置。SIP是一种用于建立、修改和终止多媒体通信会话的信令协议,常用于VoIP(Voice over Internet Protocol)系统。在Asterisk中,SIP配置文件`/etc/asterisk/sip.conf`用于定义SIP设备和用户的参数。 在`sip.conf`中,`[general]`部分设置了全局变量,如`port=5060`定义了SIP服务器监听的端口为5060,`bindaddr=0.0.0.0`表示服务器将监听所有网络接口。`context=others`指定了默认的拨号上下文,即当用户注册时,如果没有指定特定的context,将会使用[others]上下文。 接下来的`[2000]`和`[2001]`部分分别定义了两个SIP分机。`type=friend`意味着这两个分机既可以拨入也可以拨出,其他选项有`peer`(仅能呼出)和`user`(仅能呼入)。`context=my-phones`指定了这些分机在拨入时应遵循的拨号计划,即`extensions.conf`中的[my-phones]节。`secret=1234`是分机的认证密码,而`host=dynamic`表示分机的IP地址可以是动态的。 要查看SIP设备的详细信息,可以在Asterisk CLI(命令行接口)中输入`sipshowpeer <extension>`,例如`sipshowpeer 2001`。 现在转向`extensions.conf`,这是Asterisk拨号计划的核心配置文件,它定义了电话号码如何被处理。每个节(如[others]、[my-phones])代表一个拨号上下文,其中`exten`指令定义了电话号码和执行的动作。 在`[my-phones]`节中,例如`exten=>2000,1,Dial(SIP/2000,20)`,这表示当拨打2000时,Asterisk将尝试拨打SIP分机2000,并且给予20秒的时间连接。`exten=>2000,2,VoiceMail(2000,u)`则表示如果第一个动作失败或者通话结束后,会转到2000的语音邮箱。 Asterisk拨号计划允许进行复杂的路由和处理逻辑,包括转移呼叫、播放音效、执行脚本、发送短信等。它通过一系列的`exten`定义,结合条件语句(如`if`、`goto`)以及应用(如Dial、VoiceMail)来实现。在实际应用中,可以根据需要创建多个拨号上下文,以满足不同场景的需求。 Asterisk的SIP配置和拨号计划是其强大功能的基础,它们共同决定了电话系统的通话行为和路由策略。理解和熟练掌握这部分知识对于管理和维护Asterisk VoIP系统至关重要。