2011-11-02 92 views
2

可以从分机发起呼叫吗?我的扩展如下所示:从分机发起呼叫

[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的答案,它起着文字和挂断,如果没有人回答它继续拨打 我试着拨打电话文件,但它需要有些频道需要设置,我试图使用本地,但没有成功。 我也发现有队列,但无法找到一种方法来启动调用来自调用文件的队列。星号非常新。

回答

2

你想做什么可以从拨号方案变得非常混乱。试试沿着这些线路:

[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() 
  • 不要接听电话,然后再开始!
  • g将继续在拨号规则,如果电话无人接听,拨打和下延,如果电话被接听
  • G()会跳转到read_text,s,1,结束追捕
  • 您可以使用快速启动这一切通过连接第一个上下文和第二个上下文来调用文件(将在答案上发生)。

这些方针的东西:

Channel: Local/[email protected]_read_text 
Context: read_text 
Extension: s 
Priority: 1 

更多关于此调用文件:http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out。在通话文件中使用Set: foo=bar设置${text}