Twilio asyncAMD回调url在初始Twiml提示完成之前调用



要设置此功能,以下是用例:

  • IVR系统呼叫某人,并向他们读取一个长提示(约251个字符(
  • 在提示结束时收集用户输入
  • 如果非人类接听电话,我会使用asyncAMD回调来获得AMD的结果,然后留下语音消息

我目前正在使用以下代码拨打外呼:

var call = CallResource.Create(
machineDetection: "DetectMessageEnd",   
asyncAmd: "true",
asyncAmdStatusCallback: new Uri("[URI to callback]"),
asyncAmdStatusCallbackMethod: HttpMethod.Post,      
twiml: new Twilio.Types.Twiml("<Response><Say>[MyMessage]</Say></Response>"),       
from: new Twilio.Types.PhoneNumber(configuration["fromPhoneNumber"]),
to: new Twilio.Types.PhoneNumber(configuration["toPhoneNumber"])
);

其中";MyMessage";长约251个字符。

答录机的功能非常好,我可以留下语音信息,以防非人类回答(有关详细信息,请参阅我的问题和随后的回答"如何使用Twilio AMD留下语音邮件?"(。

然而,我一辈子都不知道如何将asyncAMD回调延长到足够长的时间,以便在人类回答的情况下完成初始提示。

我已经尝试添加所有这些可选的API调优参数,但仍然无法使其工作:

machineDetectionTimeout: 59,
machineDetectionSpeechThreshold: 6000,
machineDetectionSpeechEndThreshold: 5000,
machineDetectionSilenceTimeout: 10000,

我有什么选择?异步AMD上的保释和使用阻塞AMD?我需要能够在非人工应答的情况下留下语音消息,但我需要将异步AMD调用其回调的结果推送足够长的时间,以便在人工应答中读取初始响应。

我将采用这种方法。在接收者的回答中;你好";(他们很可能会这么说(,回答说By将返回";"人";,但如果他们不这样做,只听最初的提示,我就会得到";未知";返回在这一点上,我将处理一个回答;未知";作为回答和收听初始Twiml提示的人。

最新更新