以文本方式查看主题 - 走遍中国 (http://www.china960.net/bbs/index.asp) -- 电脑技术 (http://www.china960.net/bbs/list.asp?boardid=13) ---- 截取字符,在ASTERISK (http://www.china960.net/bbs/dispbbs.asp?boardid=13&id=144) |
-- 作者:PABX -- 发布时间:2017/12/19 22:03:56 -- 截取字符,在ASTERISK 2.在dialplan中利用内置的方法进行截取
如 [test] exten => 123456,1,answer()
exten => 123456,n,noop(${CALLID:2}) //这里是指将主叫截取成 3456 exten => 123456,n,noop(${LEN(abcd)}) //这里是指查看abcd字符串的长度 exten => 123456,n,noop(${LEN(${CALLER})}) //这里是指查看主叫号码中的长度 exten => 123456,n,noop(${CALLERID:0:2}) //这里是指将主叫号码从0开始,截取两个,这里的结果是12 exten => 123456,n,noop(${CALLERID:2:4}) //结果是 3456 exten => 123456,n,noop(${CALLERID:-3}) //结果是456 Extension 模式
当你在context中定义extension时,你不仅使用文字数字,字母,还要匹配extension模式。
Context包括的内容
一个extension context可以嵌套另一个,参考一下下面的范例:
Context "default":
Extension Description 101 Mark Spencer 102 Wil Meadows 0 Operator Context "local": Extension Description _9NXXXXXX Local calls include => "default" Context "longdistance": Extension Description _91NXXNXXXXXX Long distance calls include => "local" 这里我们定义三种 extension
第一种content: default 允许拨打三个电话extension: Mark, Wil, and the Operator.
第二种content: local 一个扩展模式:允许拨打7位数字号码(本地呼叫),同时也包括
“default” context,这样也允许用户拨打 Mark,Wil,或者是操作员。
第三种content: longdistance 一种允许拨打长途呼叫的扩展模式。它同时也包括上述的两种模式
(default 和 local)
使用扩展context,你可以谨慎的控制哪些人使用计费服务(内线,市话,长途)
如果一个拨叫号码匹配多个模式,你可以参阅一下“扩展模式的排序”
当Asterisk从一个通道上收到一个呼入连接,Asterisk从context定义中查询通道命令。context根据用户拨打的
extension定义了不同的命令集。例如,如果用户拨打的是“123”,context可以提供提供一套命令集来指导如何去做。如果用户拨“9”,
context可以提供另一套命令集来指导做什么,同时context可以提供一套命令集来控制用户拨打的任何以“555”开头的号码。
|