[英]Twilio voice recording in ASP.Core
我正在构建一个新的应用程序,其功能之一是卖方和客户之间的通信。 因此,我想使用Twilio API。 让我们想象一下,我们有两个人:卖方和顾客,他们将进行交流。 我的想法是,这两个人不应该彼此知道真实的电话号码,因此我从Twilio购买了两个电话号码,一个用于卖方,一个用于客户,然后将它们与我的应用程序中的真实电话联系起来。 为了方便起见,我在Twilio控制台中创建了TwiML App,并设置了语音呼叫的REQUEST和STATUS CALLBACK URL,这些URL指向我应用中的Webhook。 我的应用程序基于.Net Core,但是我仍然使用完整的.Net4.6框架,因为没有用于.Net Core的.dll,并且似乎Cwild的C#Twilio帮助程序也已针对完整.Net框架构建。 无论如何,我的webhook方法看起来像:
[HttpPost("call")]
public IActionResult IncomingCall(VoiceRequest request) {
// some logic
VoiceResponse response = new VoiceResponse();
response.Dial({real_seller_number}, callerId: {virtual_customer_number}, record: "record-from-ringing-dual");
return Content(response.ToString(), "application/xml");
}
假设我是客户,我想打电话给卖家,我叫它的虚拟Twilio号码,Twilio向该Webhook发出请求,并从虚拟客户号向真实的卖家号码打电话。 可以,可以正常运行。 通话结束时,Twilio向STATUS CALLBACK网址发出请求,此方法如下:
[HttpPost("call/callback")]
public IActionResult IncomingCallCallback(StatusCallbackRequest request) {
// some logic
return Ok("Handled");
}
在第一种方法中,您可以看到我出于内部原因要记录对话,并且在第二种方法中希望使用RecordingSid和RecordingUrl,但是我总是将它们设置为null。 我可以在Twilio控制台中看到记录,但是无法通过API获取它们,这是我的问题。 我花了很多时间阅读了许多文档,但没有找到明确的解释说明如何正确执行操作。 有人能帮我吗?
Twilio开发人员布道者在这里。
录制呼叫时,在您收到statusCallback
请求时,录制可能尚未准备好。 相反,您应该设置一个recordingStatusCallback
URL ,在录制完成并准备就绪时将调用它。
[HttpPost("call")]
public IActionResult IncomingCall(VoiceRequest request) {
// some logic
VoiceResponse response = new VoiceResponse();
response.Dial({real_seller_number},
callerId: {virtual_customer_number},
record: "record-from-ringing-dual",
recordingStatusCallback: {url_in_your_application_that_processes_recordings}
);
return Content(response.ToString(), "application/xml");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.