在某些条件下为星号入站中继添加前缀

时间:2012-01-24 06:58:09

标签: asterisk

任务很简单,但我还没想出来。

一个行李箱在德国有一个本地号码.. 因此,如果来自德国的人呼叫CID是没有国家代码的号码。 但是,如果来自外部电话的somone,国家/地区代码附带CID(如果您位于德国境内则完全没问题)

我的传出规则是使用国家代码0049来选择呼叫来自的voip中继。 但由于0049不是为了入站呼叫而来的..它永远不会被选中..你必须手动编辑号码(这是模拟电话上的痛苦)并且经常被误忘记。

是否有可能简化入站CID重建

像这样:

  • 如果入站CID是_00。然后将CID转发给环组
  • 如果入站CID是_0Z。然后从原始CID中删除第一个数字(0),前缀0049并发送到环组。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:3)

将您的主干路由到自定义开始上下文并在那里进行规范化。例如:

[globals]
LOCAL_PREFIX=511  ; Hannover local prefix for example

; trunk A starts here
[inbound_trunk_A]
; 123 is your extension, everything after "/" is an extension filter on CALLERID(num)
exten => 123/_00X.,1,NoOp(CallerID is just fine)
exten => 123/_0ZX.,1,Set(CALLERID(num)=0049${CALLERID(num):1})
exten => 123/_ZX.,1,Set(CALLERID(num)=0049${LOCAL_PREFIX}${CALLERID(num)})
; after CallerID normalization, jump to the real context
exten => 123,2,Goto(real_context,${EXTEN},1)

; all other trunks start here
[real_context]
exten => 123,1,DoRingGroupStuff()