星号拨号方案 - 防止挂机

时间:2015-06-11 15:51:16

标签: php asterisk asteriskami

考虑以下情况:

  1. A正在与B
  2. 通话
  3. B挂机
  4. 有没有办法将A的频道重定向到其他某个上下文,以便A的呼叫不会断开,我可以通过使用php AGI脚本或使用AMI连接事件处理程序然后将另一个频道桥接到A.通过AMI执行重定向?

    以下是我想要的行为:

    1. A正在与B通话,C正在等候名单
    2. B挂机
    3. A的呼叫未挂断,可以使用DTMF切换到C的呼叫
    4. 我正在使用星号13.

      修改 呼叫是来电或通过写入呼叫文件进行呼叫,而不使用拨号命令

4 个答案:

答案 0 :(得分:1)

你可以在拨号命令中使用选项'g'。使用此选项,当被叫方说B挂断时,继续在下一个优先级的当前上下文中执行命令。详情请访问Asterisk Dial cmd options

答案 1 :(得分:0)

是的,如果您通过拨号命令拨打“g”选项,呼叫将拨打拨号,您将可以呼叫其他人

[Syntax]
Dial(Technology/Resource[&Technology2/Resource2[&...]][,timeout[,options[,URL]]])

[Arguments]
Technology/Resource
    Specification of the device(s) to dial.  These must be in the format
    of 'Technology/Resource', where <Technology> represents a particular
    channel driver, and <Resource> represents a resource available to that
    particular channel driver.
Technology2/Resource2
    Optional extra devices to dial in parallel
    If you need more then one enter them as Technology2/Resource2&Te
    chnology3/Resourse3&.....
timeout
    Specifies the number of seconds we attempt to dial the specified
    devices
    If not specified, this defaults to 136 years.
options
   .....
   g: Proceed with dialplan execution at the next priority in the current
       extension if the destination channel hangs up.

答案 2 :(得分:0)

似乎你想把队列放在一样的功能上。如果是,则执行队列并将手机置于自动应答模式。它可以解决你的目的。 A将充当代理,B和C将拨打队列号并等待队列中的A.

答案 3 :(得分:0)

执行此操作的最佳方法如下:

  1. 接受A调用进入Stasis应用程序
  2. 使用bridges API,将A调用置于保持桥
  3. 接受B调用到新的Stasis应用程序
  4. 通过共享存储(Redis,Memcache,MySQL)获取网桥的位置
  5. 使用bridge API,将B调用放入网桥

    当B呼叫挂断时,呼叫仍然在桥接器中,等待下一个呼叫 - 这将是执行此操作的最佳方法。当您使用Asterisk 13时,ARI和Stasis随时为您服务。

    看看http://www.phpari.org以了解这个想法 - 并不像听起来那么复杂。