Asterisk - 在两个本地电话之间拨号

Asterisk - Dial between two local phones

在软电话上,我已经连接了两个帐户 tom 和 paul 作为测试目的。在 tom 设备上,我拨了分机号 100,它确实在 paul 设备上响了。当我接听电话时,我可以听到背景音乐,但它没有执行 same => n,Playback(demo-moreinfo)

这是什么原因造成的?

我在 sip.conf 文件中有两个 sip 中继:

[office-phone](!)
type=friend
context=LocalSets
host=dynamic
nat=yes
secret=password
dtmfmode=auto
disallow=all
allow=ulaw
allow=alaw

[tom](office-phone)
[paul](office-phone)

在 extension.conf 文件中:

[LocalSets]
exten =>   100,1,Dial(SIP/paul)
same  =>   n,Playback(demo-moreinfo)
same  =>   n,Hangup()
[LocalSets]
; Dial connets the callee and caller channels.
exten =>   100,1,Dial(SIP/paul)
; Otherwise Playback is executed (after a Dial timeout occurs)
same  =>   n,Playback(demo-moreinfo)
same  =>   n,Hangup()

就像这个例子,当电话无人接听时,播放 vm-nobodyavail 声音。

exten => 123,1,Dial(SIP/100,10,m)
;; if the the call is answered, the next priority is never executed
exten => 123,n,Playback(vm-nobodyavail)
exten => 123,n,Hangup()

如果您想播放声音文件,Answer 应用程序会确保通道已连接,然后下一个优先级可以执行 Playback

exten => 100,1,Answer()
exten => 100,n,Playback(demo-moreinfo)

在此示例中,当有人拨打 100 时,该呼叫将由 Answer 应用程序接听。然后来电者会听到声音文件。

exten => 100,1,Answer()
 same => n,Noop("100 answered")
 same => n,Playback(demo-moreinfo)
 ; same => n,Noop("heard the info, dial 200")
 ; same => Dial(SIP/200);
 same => n,Hangup()

您可以在 Playback 之后执行 Dial