Asterisk 从分机发起呼叫
是否可以从分机发起呼叫?我的扩展名如下所示:Asterisk 从分机发起呼叫,asterisk,pbx,Asterisk,Pbx,是否可以从分机发起呼叫?我的扩展名如下所示: [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
[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很陌生。你想做的事情可能会因为拨号计划而变得相当混乱。试着做以下几点:
[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()
Channel: Local/s@call_read_text
Context: read_text
Extension: s
Priority: 1
- 开始之前不要接电话李>
如果呼叫未被接听,将在拨号计划中继续,并呼叫下一分机g
如果呼叫被接听,将跳转到G()
,并结束搜寻读取文本s,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()
Channel: Local/s@call_read_text
Context: read_text
Extension: s
Priority: 1
此处有更多待命文件:。在调用文件中使用Set:foo=bar
来设置${text}