extensiion.conf 中 start, timeout, invalid疑惑?
exten => s, 1, application()和
exten => 123, 1, application()
有什么区别,具体一点start代表什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
exten => s, 1, application()和
exten => 123, 1, application()
有什么区别,具体一点start代表什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
讲得好明白。。
可以简单地这么理解,在Asterisk系统上可连接两种设备范围,一为中继,或称外线、上端;二为分机或称内线。
现在我们假设外线设备为一张FXO卡,通道为zap/1,有若干ip话机以sip账号注册到系统中,通道为sip/800、sip/801等。又假设zap/1和sip/800、sip/801的context都是office
在/etc/asterisk/extensions.conf中对office的定义如下:
[office]
;s定义了zap/1通道的行为
;也就是说zap/1通道来电时进入s处理流程,这里直呼sip/800话机
exten => s,1,Dial(sip/800,60)
exten => s,2,Hangup
;这里定义了分机互打的规则
;也就相当于定义了内线号码
;如果分机拨501就呼叫sip/801通道
;分机账号为sip/801的分机号是501,要打电话给它就拨501
exten => 501,1,Dial(sip/801,60)
exten => 501,2,Hangup
;同上,相当于账号为sip/800分机的分机号为500,要打电话给它就拨500
exten => 500,1,Dial(sip/800,60)
exten => 500,2,Hangup
;一样是处理分机送号的规则
;定义9字头加外线号码打外线
;比较复杂一点,看我一一道来
;9X.前面的下划线表示后面的字符是特殊符号,比如在C语言的printf函数输出时,n是回车符,n就是字符n,这里用下划线作为转义符
;如果没有这个下划线,那拨号的时候就很麻烦啦,意思是你要透过键盘输入这几个符号,你见过电话机上有X键和.键吗?
;当字符X是特殊符号时,表示数字1-9,意思是不可以打长途哦,要打长途就用N,表示数字0-9
;X后面的点也是特殊符号,表示任意多个任何字符
;${EXTEN}这是通道变量,表示你拨的号码,比如你拨号910000,那${EXTEN}的值为91000
;${EXTEN:1}这里1是偏移量,表示从第一个数字之后开始的值,也就是10000,这才是你要透过zap/1送出去的真正的号码呀
;9是出局字头,透过偏移量就可以去掉
exten => _9X.,1,Dial(zap/1/${EXTEN:1},60)
exten => _9X.,2,Hangup
exten => i,1,Playback(exten-invalid)
exten => i,2,Hangup
s是程序没有指定时系统default要去的exten, 123是程序指定要去的exten
你的问题和你的帖子内容不完全符合。
s表示当这个请求近来的时候没送被叫信息那么就到s处理。
这一般用在把Asterisk当作话机状态下。因为这个时候对方是不可能知道你有什么分机的。
123表示送号123的处理。详细请参阅www.voip-info.org上的资料。