0

我有一个示例拨号方案:

exten => 1,1,Wait(1)
exten => 1,n,SpeechCreate
exten => 1,n,SpeechBackground(beep)
exten => 1,n,Verbose(0, ${SPEECH_TEXT(0)})
exten => 1,n,Hangup() 

我需要使用 ARI stasis 应用程序执行语音识别,并使用 AsterNET.ARI 库在此应用程序中获得识别结果。

目前一切都已配置好,stasis 应用程序连接并接收事件:

static async void c_OnStasisStartEvent(IAriClient sender, StasisStartEvent e)
{
    // Answer the channel
    await sender.Channels.AnswerAsync(e.Channel.Id);

    // Play an announcement
    await sender.Channels.PlayAsync(e.Channel.Id, "sound:hello-world");
}

但我不知道如何调用扩展应用程序。例如这个拨号方案字符串:exten => 1,n,SpeechBackground(beep)

我试过这样的事情:

var endpoints = sender.Endpoints.List();
await sender.Channels.OriginateAsync(endpoints[0].Resource, "1,n,BackGround(hello-world)");

但这会导致异常:Response status code does not indicate success: 400 (Bad Request).

我怎样才能正确地做到这一点?

4

1 回答 1

0

为了使 RTP 音频流准备好使用(打开它),我建议不要使用...

exten => 1,1,Wait(1)

...尝试...

exten => 1,1,Answer(1000)

...反而。

阅读:https ://wiki.asterisk.org/wiki/display/AST/Answer%2C+Playback%2C+and+Hangup+Applications

于 2020-10-09T12:59:38.660 回答