Почему мой конференц-вызов Twilio отвечает как голосовой вызов и вешает трубку?
В моем коде подтверждения концепции я успешно создаю конференц-связь и могу войти в комнату ожидания и услышать музыку ожидания, пока не присоединится другой участник. Однако, когда я перемещаю этот код в решение производственного типа .NET Core в Visual Studio, он отвечает, читая номер комнаты и немедленно вешая трубку. Я считаю, что это как-то связано с .NET Core, но не смог определить основную причину.
Подтверждение концепции кода
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());
}
}
}
2 ответа
Изменение типа возврата с:
ActionResult
return Content(response.ToString());
К:
TwiMLResult
return TwiML(response);
Исправлена проблема. Не уверен, почему первый подход сработал в моем доказательстве концепции.
Проверьте возвращаемый тип HTTP MIME при возврате TwiML.
https://www.twilio.com/docs/voice/twiml#twilio-understands-mime-types