Asterisk 星号:如何在没有呼叫方的情况下播放公告

Asterisk 星号:如何在没有呼叫方的情况下播放公告,asterisk,asteriskami,Asterisk,Asteriskami,我有以下带有星号的任务,我不知道如何解决它 我有一个具有自己默认扩展名的上下文 [my-context] exten => s,1,Answer() same => n,Dial(SIP/817,10,tTwWA(demo-congrats)) same => n,Hangup() 我在CLI中使用origine命令运行它,或者通过telnet在AMI中运行它 originate SIP/814 extension s@my-context

我有以下带有星号的任务,我不知道如何解决它

我有一个具有自己默认扩展名的上下文

[my-context]
exten => s,1,Answer()
        same => n,Dial(SIP/817,10,tTwWA(demo-congrats))
        same => n,Hangup()
我在CLI中使用origine命令运行它,或者通过telnet在AMI中运行它

originate SIP/814 extension s@my-context
它很简单,并按顺序工作:

  • SIP/814振铃
  • 我回答SIP/814
  • SIP/817振铃
  • 另一个人回答SIP/817
  • 在SIP/817播放广播
  • 挂断
  • 但它还不符合我的要求,我根本不想让主叫方(本例中为SIP/814)加入序列,我只想给被叫方(SIP/817)一个通知,就这样,但我不知道如何做

    顺便说一句,当被叫方来自DAHDI来源(例如DAHDI/1/${my Phone number})时,在我接受呼叫之前播放公告,所以我只能听到公告的结尾部分。我该如何解决这个问题

    任何帮助都将不胜感激
    致以最诚挚的问候

    Loi Dang

    您应该使用调用文件或其他技术触发另一个调用

    在该通话中,您应该将一段连接到SIP/817,另一段连接到拨号计划分机,该分机希望播放您的消息


    您可以触发外部脚本,通过系统命令进行调用,或者创建守护进程,在某些情况下(使用AMI/事件)侦听事件/调用。

    不要在上下文中使用拨号,而是使用播放,然后拨打您要接收通知的分机

    [my-context]
    exten => s,1,Answer()
    same => n,Wait(2)
    same => n,Playback(demo-congrats)
    same => n,Hangup()
    
    然后发射你的子弹

    originate SIP/817 extension s@my-context
    

    谢谢达斯汀,这有助于解决我的问题。我也可以做这件事“发起SIP/817应用程序播放演示恭喜”这也是最有效的!我刚刚添加了wait命令,以帮助解决DAHDI频道过早关闭音频的问题。好吧,它并没有像预期的那样工作。当您使用模拟pstn线路拨打外部电话号码时,您无法知道被叫人何时接听,因此将wait命令放入分机无法在正确的时间播放消息。现在我宣布我需要使用ISDN线路而不是模拟线路。使用并添加一个“talk”扩展到您的上下文中。它需要微调,但应该有帮助。@lodiang当我的接线员分机接听电话时,它说号码无效:(