【问题标题】:Initiate call from extension从分机发起呼叫
【发布时间】:2023-03-21 14:48:01
【问题描述】:

可以从分机发起呼叫吗?我的扩展如下所示:

[read_text]
    exten => s,1,Answer( )
    exten => s,n,Dial(SIP/1,G(99))
    exten => s,n,Dial(SIP/2,G(99))
    exten => s,n,Goto(1)
    exten => s,100,System(echo '${text}' | /usr/bin/espeak  --stdout |sox -t  wav - -r 8000  /tmp/voice.wav)
    exten => s,n,Playback(/tmp/voice)
    exten => s,n,System(rm /tmp/voice.wav)
    exten => s,n,Hangup( )

所以如果 SIP/1 或 SIP/2 应答,它会播放文本并挂断,如果没有人应答,它会继续拨号 我尝试制作通话文件,但它需要设置一些频道,我尝试使用本地,但不成功。 我还发现有队列,但找不到从调用文件发起对队列的调用的方法。我对星号很陌生。

【问题讨论】:

    标签: asterisk pbx


    【解决方案1】:

    您尝试做的事情可能会因拨号方案而变得非常混乱。尝试以下方式:

    [call_read_text]
    exten => s,1,Dial(SIP/1,gG(read_text,s,1))
    exten => s,n,Dial(SIP/2,gG(read_text,s,1))
    exten => s,n,Goto(1)
    
    [read_text]
    exten => s,1,System(echo '${text}' | /usr/bin/espeak  --stdout |sox -t  wav - -r 8000  /tmp/voice.wav)
    exten => s,n,Playback(/tmp/voice)
    exten => s,n,System(rm /tmp/voice.wav)
    exten => s,n,Hangup()
    
    • 在开始之前不要接听电话!
    • 如果电话无人接听,g 将在拨号方案中继续,并拨打下一个分机
    • 如果呼叫被应答,G() 将跳转到 read_text,s,1,并结束搜索
    • 您可以通过调用文件快速启动所有这一切,方法是将第一个上下文与第二个上下文连接起来(将在应答时发生)。

    类似的东西:

    Channel: Local/s@call_read_text
    Context: read_text
    Extension: s
    Priority: 1
    

    更多关于通话文件的信息:http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out。在调用文件中使用Set: foo=bar设置${text}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多