如何拨号从拨号方案内发起呼叫?

时间:2012-06-06 00:50:38

标签: asterisk

Salvete!如何拨打号码并让Asterisk发起从分机sipX到sipY的呼叫?

sipX和sipY都出现在我的拨号方案的extensions.conf中。

诀窍是我想在手机上拨打337,然后我的手机不在图片中,然后sipX拨打sipY。

说我希望能够在手机上按337,并通过另一部手机的扬声器播放声音,比如说,作为闹钟。


考虑它的另一种方法是,我该怎么做:

  1. 在手机上按337
  2. 完成我的通话,即挂断原来的来电者
  3. 即使队列中没有呼叫
  4. 也运行宏
  5. 致电sipY
  6. 在sipY上播放声音
  7. 当运行#2动作(完成呼叫者的会话)并让其余的过程完成后,我们可以使用类似pre-dial handlers in Asterisk 11的内容吗?

4 个答案:

答案 0 :(得分:2)

您可以使用Originate应用程序执行此操作。如下所示:

[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()

当然,区别在于Originate阻止pbx_thread执行扩展337,直到SIP / Y应答或以其他方式失败。话虽这么说,SIP / Y和扩展中的应用程序之间的实际调用发生在它自己的线程上,所以一旦知道了SIP / Y的状态,337将被挂断。因此它非常接近您所寻找的内容,并且不涉及调用文件等外部机制。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

这是答案。 您将Answer作为第一部分,并以' hangup'结束。这照顾了忙碌的信号"。

没有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

答案 3 :(得分:0)

除了在系统目录或假脱机目录中运行外,最好在Dialplan内部运行。

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)