【问题标题】:How to route an incoming call when I have multiple phone numbers with the same SIP provider?当我有多个电话号码使用同一个 SIP 提供商时,如何路由来电?
【发布时间】:2012-09-27 08:58:42
【问题描述】:

我的 SIP 提供商为我的办公室提供了一个主要电话号码 0120120020。我最近向我的 SIP 提供商询问了同一 SIP 帐户上的第二个电话号码 0230230030

当有人通过拨打主要电话号码呼叫办公室时,我希望 Asterisk 振铃属于 A 组 的所有电话,并且我希望它振铃属于的所有电话B 组,如果拨打的是第二个电话号码。

我的 extensions.conf 包含以下几行:

[sip-incoming-calls]
exten => s,1,Dial(SIP/10&SIP/11&SIP/12&SIP/20&SIP/21,20,tr)

分机 10、11 和 12 属于 A 组,分机 20 和 21 属于 B 组。每部电话都会因来自第二电话号码的每个来电而振铃。

如何在 CentOS 6.3 下使用 Asterisk 1.8 做到这一点?

【问题讨论】:

    标签: communication sip voip asterisk telephony


    【解决方案1】:

    对于每个呼叫,Asterisk 都会设置一些包含当前来电信息的变量。如果呼叫来自特定国家/地区,这些信息有助于采取不同的行动,您还可以阻止不良呼叫者拨打他们的电话号码,...

    我们正在寻找一种方法来检索 DID,这实际上是指直接拨入号码,即呼叫者拨打您办公室的号码。

    有两种检索方式:

    • 直接使用CALLERID(dnid)变量,其值将设置为01201200200230230030

      [sip-incoming-calls]
      exten => s,1,Set(thedid=${CALLERID(dnid)})
      
    • 如果上述变量为空,那么您的 SIP 提供商不会根据需要发送任何信息以使 Asterisk 正确填充它。

      但是,您可以使用SIP_HEADER(To) 直接从 SIP 标头内的“收件人”字段中检索电话号码,当有人从您的第二个电话号码呼叫您的办公室时,此变量将包含 <sip:0230230030@sip.provider.com>

      [sip-incoming-calls]
      exten => s,1,Set(thedid=${SIP_HEADER(To)})
      exten => s,2,Set(thedid=${CUT(thedid,@,1)})
      exten => s,3,Set(thedid=${CUT(thedid,:,2)})
      

    一旦您检索到变量内的 DID,您必须设置一个条件,让我们使用GotoIf。在您的情况下,结果会是这样:

    exten => s,4,GotoIf($["${thedid}" = "0120120020"]?6:5)
    exten => s,5,GotoIf($["${thedid}" = "0230230030"]?7)
    exten => s,6,Dial(SIP/10&SIP/11&SIP/12,20,tr)
    exten => s,7,Dial(SIP/20&SIP/21,20,tr)
    

    【讨论】:

      【解决方案2】:
      [sip-incoming-calls]
      
      exten => s,1,goto(${CUT(CUT(SIP_HEADER(TO),@,1),:,2)},1)
      
      exten => 0120120020,1,Dial(SIP/10&SIP/11&SIP/12,20,tr)
      
      exten => 0230230030,1,Dial(SIP/20&SIP/21,20,tr) 
      

      【讨论】:

        【解决方案3】:

        您可以轻松地创建中继(单独的 dahdi 端口)并将中继重定向到特定的扩展。

        【讨论】:

          【解决方案4】:

          请您的 voip 提供商发送来电的 DID 号码 然后使用下面的拨号方案

          [sip-incoming-calls] 
          exten => _0120120020,1,Dial(SIP/10&SIP/11&SIP/12,tr) 
          exten => _0120120020,n,hangup
          exten => _0230230030,1,Dial(SIP/20&SIP/21,20,tr) 
          exten => _0230230030,n,hangup
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-22
            • 1970-01-01
            • 2021-04-05
            • 2016-06-07
            • 1970-01-01
            • 2023-03-22
            相关资源
            最近更新 更多