为什么我的Twilio电话会议像语音电话一样响应,却挂断了



在我的概念验证代码中,我成功地创建了一个电话会议,并且能够进入等候室并听到暂停音乐,直到另一位参与者加入。然而,当我在visualstudio中将此代码移到.NETCore生产类型的解决方案中时,它会读取Room#并立即挂断。我相信这与.NET核心有关,但还无法确定根本原因。

概念验证码

using Twilio.TwiML;
using Twilio.AspNet.Mvc;
using System.Web.Mvc;
using Twilio.TwiML.Voice;
namespace MakeAndReceiveCalls.Controllers
{
public class PhoneController : TwilioController
{
[HttpPost]
public ActionResult MakeConferenceCall()
{
var response = new VoiceResponse();
var dial = new Dial();
dial.Conference("Room 1234");
response.Append(dial);
return Content(response.ToString());
}
}
}

生产代码

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Twilio.AspNet.Core;
using Twilio.TwiML;
using Twilio.TwiML.Voice;
namespace RL.Domain.AudioConference.API.Controllers
{
[Route("v1/[Controller]")
public class AudioConferenceController : TwilioController
{       
[HttpPost("MakeConferenceCall")]
public ActionResult MakeConferenceCall()
{
var response = new VoiceResponse();
var dial = new Dial();
dial.Conference("Room 1234");
response.Append(dial);
return Content(response.ToString());
}
}
}

在返回TwiML时检查返回的HTTP MIME类型。

https://www.twilio.com/docs/voice/twiml#twilio-了解mime类型

更改返回类型从:

ActionResult
return Content(response.ToString());

收件人:

TwiMLResult
return TwiML(response);

修复了此问题。不知道为什么第一种方法在我的概念验证中起作用。

相关内容

最新更新