走遍中国乌托邦电脑技术 → 截取字符,在ASTERISK


  共有4689人关注过本帖树形打印复制链接

主题:截取字符,在ASTERISK

帅哥哟,离线,有人找我吗?
PABX
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:79 积分:960 威望:0 精华:0 注册:2011/4/16 21:27:45
截取字符,在ASTERISK  发帖心情 Post By:2017/12/19 22:03:56 [只看该作者]

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”开头的号码。

 回到顶部