现在的位置: 首页 > 综合 > 正文

Asterisk Extensions总结

2013年12月13日 ⁄ 综合 ⁄ 共 1368字 ⁄ 字号 评论关闭

Dialplan是整个Asterisk的核心。

关于Dialplan的配置涉及的配置文件有extensions.conf extension.ael 和 extensions.lua。

extensions.ael和extensions.lua是Dialplan的两个脚本文件,分别用AEL和LUA写的。

extensions.conf是一般Dialplan配置的文件。

Dialplan有4个基本的元素:Context, Extension, Priority, Application

1、Context

Asterisk把Dialplan分割成一个个区域叫作context。context一般以一组extensions命名。

format:

[context]

...

特殊的context

[general]

;Dialplan的一般设置

[globals]

;Global Variables

2、Extensions

extensions通常是一个数字号码,或者是一类数字号码

format:

exten => number,priority,application

exten =>: extensions的固定格式  对于同一个extension 也可以使用same => 后面可以省略number

number:号码,服从正则表达式规则,

              特殊的符号:

            
             _:模式匹配的开头

              X:0-9之间任意一个数字

              Z:1-9之间任意一个数字

              N:2-9之间任意一个数字

              .:匹配0个或多个数字

              []:匹配括号中的任意一个数字

              !:当没有其它可能的匹配存在时,结束匹配过程(不明)

            例如:_9011.   匹配以9011开头的所有号码(包括9011)

                         _9[1-378]XX   匹配91、92、93、97、98开头的四位数号码

3、Priority

priority是以1开始的数字或者n(next).连续的操作,priority必须是连续的。例如

exten => 1234,1,Answer()
exten => 1234,2,Dial(SIP/2345)
exten => 1234,3,Hangup
会依次执行Answer-->Dial-->Hangup

exten => 1234,1,Answer()
exten => 1234,2,Dial(SIP/2345)
exten => 1234,4,Hangup
只会执行 Answer-->Dial

4、Application

Application是asterisk提供的一些接口,例如Answer,Dial,Hangup,详见ast_app.c

Application可以带参数也可以不带参数,多个参数之间用逗号分割。

Note:

Answer是呼叫者与Asterisk之间的Answer

                       Asterisk
                     /2.Answer \3.Dial
                 sip/           \sip
            channel/             \channel
                  /               \
           1.Dial/       5.RTP     \4.Answer
              User1<-------------> User2   
                         RTCP

待续...

抱歉!评论已关闭.