我正在使用Asterisk-java AGi,我想在我的服务器中使用googleTTS agi 。我可以在我的 agi 中使用 google tts agi 吗?有什么命令吗?
问问题
1087 次
3 回答
0
很抱歉花了 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();
}
于 2018-05-01T22:44:18.960 回答
-1
您真正想要做的是依次调用两个 AGI(在您的拨号方案中)并将信息传递给您的 AGI 脚本。
所以,在你的 AGI 脚本(使用 Asterisk-Java 的那个)中,将一个变量设置为你想要的 TTS 值,然后......完成你的 AGI 脚本的执行并将其传递回拨号方案,并将该变量用于谷歌 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 的效率很低。当你需要做一些 Asterisk 不能做的事情时,调用你的 AGI 应用程序。
于 2013-07-22T15:31:44.983 回答
-1
不幸的是,你不能在另一个 AGI 中使用 AGI!
AGI 使用 STDIN/STDOUT 从 Asterisk 读取/写入信息...
于 2013-07-16T18:39:04.990 回答