我正在使用Asterisk-java AGi,并且我想在我的服务器中使用googleTTS agi。我可以在我的agi中使用google tts agi吗?有什么命令可以这样做吗?
发布于 2013-07-17 02:39:05
不幸的是,你不能在另一个AGI中使用AGI!
AGI使用STDIN/STDOUT从Asterisk读取/写入信息...
发布于 2018-05-02 06:44:19
很抱歉花了4年时间才给你答复,但是你可以使用命令"channel.exec()“来做。
也许你可以自己解决这个问题。张贴此答案仅用于文档目的。
public void service(AgiRequest request, AgiChannel channel)
throws AgiException
{
// Answer the channel...
answer();
// ...say hello...
channel.exec("AGI","googletts.agi","Olá Mundo!","pt-BR");
// ...and hangup.
hangup();
}发布于 2013-07-22 23:31:45
您真正想要做的是依次调用两个AGI (在您的拨号计划中),并将信息传递给您的AGI脚本。
因此,在您的AGI脚本(使用Asterisk-Java的脚本)中,将一个变量设置为TTS的值,然后...完成AGI脚本的执行并将其传递回拨号计划,然后将该变量用于google TTS。
exten => your_exten,1,Noop(Begin here)
same => n, Answer()
same => n, AGI(/path/to/your/AGI.script) ; or fastAGI etc.
same => n, Noop(This is the variable I set in my agi script: ${TEXT_TO_SPEAK})
same => n, AGI(googletts.agi,${TEXT_TO_SPEAK},en)
same => n, Hangup()不要让陷入试图通过AGI脚本控制Asterisk中的所有东西的陷阱。如果这样做,您就是在浪费时间,并且使用星号的效率很低。当你需要做一些Asterisk做不到的事情时,调用你的AGI应用程序。
https://stackoverflow.com/questions/17684149
复制相似问题