【问题标题】:Playback file in Call Waiting on Asterisk在 Asterisk 上的呼叫等待中播放文件
【发布时间】:2016-05-18 11:10:35
【问题描述】:

请帮忙解决我最近遇到的问题。

在实现通知主叫“用户在第一线通话请稍候或稍后回拨”功能时。使用 Asterisk 中的“呼叫等待”功能,我使用这个宏:

extensions_custom.conf

[from-internal-custom]
exten => _XXX,1,Macro(check-number,${EXTEN})
include => macro-check-number

[macro-check-number]
exten => s,1,NoOp(Enter in macro-check-number)
exten => s,n,Set(devst=${DEVICE_STATE(SIP/${ARG1})})
exten => s,n,ExecIf($["${devst}" = "INUSE"]?Playback(ml))
exten => s,n,NoOp(Exit from macro-check-number)

ml - 播放文件名

而且这个功能有效!

但宏适用于整个 Asterisk,此队列调用、组调用 - 这就是问题所在。

我有一个想法 - 一组呼叫和队列呼叫分配号码四位数的分机,例如:2222 - 但不是你不应该,这是一个错误的解决问题的方法,因为在未来可能是个问题!

也许有人遇到过类似的问题?

【问题讨论】:

  • 这很大程度上取决于您的拨号方案。您可以在进入拨号方案时设置一个变量来激活这样的功能,而在进入组或队列上下文时该变量是未设置的。
  • 谢谢,我正在考虑这个选项,但不幸的是,这可能是因为我在处理宏方面经验不足 - 我还没有找到解决方案。我将不胜感激!

标签: asterisk telephony freepbx elastix


【解决方案1】:

您不需要在 from-internal-custom 上下文中包含部分 因为 extensions_custom.conf 文件包含在拨号计划中。

你需要改变扩展的模式:

[from-internal-custom]
exten => _99XXX,1,Macro(check-number,${EXTEN:2})

[macro-check-number]
exten => s,1,NoOp(Enter in macro-check-number)
exten => s,n,Set(devst=${DEVICE_STATE(SIP/${ARG1})})
exten => s,n,ExecIf($["${devst}" = "INUSE"]?Playback(ml))
exten => s,n,NoOp(Exit from macro-check-number)


【讨论】:

    【解决方案2】:

    你已经根据你的拨号方案分析了通话环境。

    对于此类拨号方案的示例,您可以在 freepbx 项目中查看重新计算宏。然而最简单的方法是使用不同的上下文进行响铃组/队列和直接拨号。

    【讨论】:

    • 我使用标准拨号方案,3 位数字。感谢您提供有关如何处理上下文记录的想法。结果如何-我在这里发表评论。
    【解决方案3】:

    问题在电路中解决了。 由于我们为不超过 250 名成员的电话服务器提供服务,因此决定为组和队列创建一个四位数的号码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      相关资源
      最近更新 更多