Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asterisk 如何在拨号计划中拨打以发起呼叫?_Asterisk - Fatal编程技术网

Asterisk 如何在拨号计划中拨打以发起呼叫?

Asterisk 如何在拨号计划中拨打以发起呼叫?,asterisk,Asterisk,萨尔维特!如何拨打电话号码并让星号从分机sipX呼叫sipY sipX和sipY都出现在我的拨号计划的extensions.conf中 诀窍是,我想在我的手机上拨打337,然后我的手机出了画面,然后sipX呼叫sipY 比如说,我想在手机上按337,然后在另一部手机的扬声器上播放声音,比如说,作为闹钟 另一种考虑的方式是,我怎样才能做到这一点: 在我的手机上按337 完成我的通话,即挂断原来的来电者 即使队列中没有调用,也运行宏 打电话给西皮 在sipY上播放声音 当运行#2操作(完成调用者的

萨尔维特!如何拨打电话号码并让星号从分机sipX呼叫sipY

sipX和sipY都出现在我的拨号计划的extensions.conf中

诀窍是,我想在我的手机上拨打337,然后我的手机出了画面,然后sipX呼叫sipY

比如说,我想在手机上按337,然后在另一部手机的扬声器上播放声音,比如说,作为闹钟


另一种考虑的方式是,我怎样才能做到这一点:

  • 在我的手机上按337
  • 完成我的通话,即挂断原来的来电者
  • 即使队列中没有调用,也运行宏
  • 打电话给西皮
  • 在sipY上播放声音

  • 当运行#2操作(完成调用者的会话)并让其余的过程在之后完成时,我们可以使用类似的方法吗?

    一个想法是创建一个调用文件,并使用agi脚本将其移动到/var/spool/asterisk/outgoing/中。

    您可以在应用程序中这样做。如下所示:

    [default]
    exten => 337,1,NoOp()
    same => n,Originate(SIP/Y,exten,default,originated,1)
    same => n,Hangup()
    
    exten => originated,1,NoOp()
    same => n,Playback(tt-monkeys)
    same => n,Hangup()
    
    当然,不同之处在于,始发线程阻塞执行扩展337的pbx_线程,直到SIP/Y应答或以其他方式失败。也就是说,SIP/Y和扩展中的应用程序之间的实际调用发生在它自己的线程上,因此一旦知道SIP/Y的状态,337将挂起。因此,它与您所寻找的非常接近,并且不涉及调用文件之类的外部机制。

    以下是答案。 您将
    答案
    作为第一部分,并以“挂断”结束。这将处理“忙信号”

    没有AGI。这很有效

    [from-internal]
    exten => 3334,1,Goto(AngelusBell,startbell,1)
    
    
    [AngelusBell]
    exten => startbell,1,Answer
    exten => startbell,n,System(asterisk -rx "channel originate Local/callviking@AngelusBell/n extension playbell@AngelusBell")
    exten => startbell,n,Hangup
    
    exten => callviking,1,Dial(SIP/Y,10,D(5))  ;calls my ATA to my paging box and plays 5 tone
    exten => callviking,2,Hangup
    
    exten => playbell,1,Answer
    exten => playbell,2,Playback(custom/angelusbellWAV)
    exten => playbell,3,Hangup
    

    在dialplan中运行originate的想法更好,除了使用system或spool目录

    Exten:
    same => n,Originate(SIP/Y,exten,context,s,1)
    same => n,Originate(Local/s@chanspy,exten,eagi,s,1)
    
    App:
    same => n,Originate(SIP/Y,app,playback,tt-monkeys)
    

    嗯,我可以让西皮回答,因为这是一个扬声器。这是个好主意。我正在从1.2升级到1.8,所以在升级完成之前我还不能尝试。在1.2版中不会起作用,是吗?如果我想把它放在宏中,是这样吗<代码>[宏调用]
    扩展=>s,1,NoOp()
    相同=>n,起源(SIP/Y,扩展,默认,起源,1)
    …不,在1.6.2中添加了起源。您可能想考虑使用GOGUB而不是宏,因为宏已经被禁止使用GOSUBS(这并不能说明您的工作原理,只有嵌套宏的已知限制会导致难以调试错误)。但是是的,你的宏语法看起来是正确的。我认为这是正确的答案。我仍在进行版本更改,所以现在无法测试,但看起来不错。谢谢,乔丹先生。好的,我正在将我的星号从1.2增加到1.8,现在我可以使用
    origine()
    。有没有办法让337在它开始创作之前挂断?这么久了,我又来了!我无意中在谷歌上搜索并找到了我自己的问题。好的,我有星号11。我可以很好地发起呼叫,但正如我们所知,它不会挂断呼叫分机。有什么想法吗?这是个想法,我确实想到了,但不是我想要的。最重要的答案已经这么说了。你为什么要添加其他相同的答案?