0

我正在使用Asterisk-java AGi,我想在我的服务器中使用googleTTS agi 。我可以在我的 agi 中使用 google tts agi 吗?有什么命令吗?

4

3 回答 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 回答