Asterisk语法基础
extensions.conf(四部分:context,extension,priorities,application)
context:用于对extensions组命名,把拨号方案的不同部分进行分离,免得交织在一起。
表示方法是把名字放在[]的中间,名字只能用a~z,A~Z,0~9,以及连字号和下划线组成(空格不在允许的字符里面,context中不要使用空格).如:[context1],[incoming],[default];所有放在context定义的之后的指令都是这个context一部分,直到下一个context定义的开始。context的一个重要用途就是加强安全性.如果没有仔细设计拨号方案,可能会造成别人盗用你的系统的不良后果。extensions:extensions是asterisk要执行的指令,由来电或通道上所拨数字来触发.可以定义电话分机 extension的语法是单词exten后面跟着一个由等号和大于号组成的箭头,如:exten => extension的名字。
一个完整的extension由三部分组成:
extensions的名字或号码
priority(每个extension可以有多个步骤,步骤的编号称作priority)
应用(或者命令),针对呼叫完成一些动作
这三个部分用英文逗号分开,如: exten => name,priority,application()
priorities:每个extension都可以有几个步骤,称作priorities。如:
exten=>50001,1,Answer() #编号为1的priority,执行接听电话
exten=>50001,2,Hangup() #编号为2的priority,然后挂电话
必须确保priority从1开始并且连续的编号
application:动作,比如:播放声音,接受音频拨号输入或者挂断电话等。