Twilio c# TwiML 不拨号码。换句话说

Twilio c# TwiML not dialing number. Saying it instead

我正在设置屏蔽呼叫。当我在拨打屏蔽号码后收到以下 TwiML 响应时,它没有拨打我指定的号码。它只是在说完 say

的内容之后再说数字

这是 TwiML

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <Say>Your call will be charged blah blah.</Say>
  <Dial action="http://mywebsite.com/Call/CallComplete" callerId="+441XXXXX">
    <Number>+44795XXXXX</Number>
  </Dial>
</Response>

这里是 c#

public static string TwiMLDial(string maskedNumber, string to, string actionURL)
{
  var response = new Twilio.TwiML.VoiceResponse();
  response.Say("Your call will be charged blah blah.");

  var dial = new Twilio.TwiML.Dial(action: actionURL, callerId: maskedNumber);
  dial.Number(to);
  response.Dial(dial);
  return response.ToString();
}

我正在使用 c# .Net 核心。在我的 startup.cs 中包含以下可能相关的内容:

services.AddMvc(config =>
            {
                // Add XML Content Negotiation
                config.RespectBrowserAcceptHeader = true;
                config.InputFormatters.Add(new XmlSerializerInputFormatter());
                config.OutputFormatters.Add(new XmlSerializerOutputFormatter());
            })
             .AddJsonOptions(options =>
             {
                 options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                 options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
             });

此处为 Twilio 开发人员布道师。

问题是您的端点正在返回类型为 text/plain 的响应,而 Twilio 认为这意味着,请读出它。

您需要将您的回复 Content-Type 设置为 text/xmlapplication/xml

恐怕我不是 C# 开发人员,但希望这能为您指明正确的方向。