发布
社区首页 >问答首页 >使用AMD的Twilio Tailor出站呼叫

使用AMD的Twilio Tailor出站呼叫
EN

Stack Overflow用户
提问于 2018-12-21 03:50:29
回答 1查看 118关注 0票数 0

我用twilio和d打出站电话。基本上是使用呼叫资源对一个号码创建一个呼叫。现在我要在通话过程中进行人工检测。呼叫是由人选择的,那么我需要将呼叫转发给我的系统代理。为此,我试图在“应答”状态调用中获得"AnswerBy“值,但"Answerby”始终为空。您能让我知道如何在呼叫过程中得到“回答”,然后再进行呼叫。下面是我正在使用的代码示例。

创建出站呼叫

代码语言:javascript
代码运行次数:0
复制
        string accountSid = WebConfigurationManager.AppSettings["AccountSid"];
        string authToken = WebConfigurationManager.AppSettings["AuthToken"];
        TwilioClient.Init(accountSid, authToken);
        var statusCallbackEvent = new List<string>();
        statusCallbackEvent.Add("initiated");
        statusCallbackEvent.Add("answered");

        var call = CallResource.Create(
            url: new Uri("http://demo.twilio.com/docs/voice.xml"),
            to: new Twilio.Types.PhoneNumber("+1XXXXXXXXXXXXX"),
            from: new Twilio.Types.PhoneNumber(WebConfigurationManager.AppSettings["FromNumber"]),
            method: Twilio.Http.HttpMethod.Get,
            machineDetection: "Enable",
            statusCallbackEvent: statusCallbackEvent,
            statusCallback: new Uri("https://68456c0d.ngrok.io/TwilioCallback/CallResponse"),
            statusCallbackMethod: Twilio.Http.HttpMethod.Get


        );

        var response = call.Sid;

应答状态回调

代码语言:javascript
代码运行次数:0
复制
string accountSid = WebConfigurationManager.AppSettings["AccountSid"];
        string authToken = WebConfigurationManager.AppSettings["AuthToken"]; ;
        TwilioClient.Init(accountSid, authToken);
        var response = new VoiceResponse();
        var call = CallResource.Fetch(pathSid: obj.CallSid);
        if (call.AnsweredBy?.ToLower() == "human")
        {
            //TO- DO
        }
        else
        {

            response.Say("hello world!", voice: "alice");
            response.Play(new Uri("http://demo.twilio.com/docs/classic.mp3"));
        }
EN

回答 1

Stack Overflow用户

发布于 2019-01-07 00:51:42

两位开发人员在这里传道。

如果要在调用连接时响应,则不希望在状态回调中这样做。相反,您希望使用在请求中设置的URL来创建调用。

当前,当您启动调用时,仍然使用演示TwiML响应

代码语言:javascript
代码运行次数:0
复制
    var call = CallResource.Create(
        url: new Uri("http://demo.twilio.com/docs/voice.xml"),

您需要更新该url以指向应用程序。然后,当调用连接时,Twilio将向您的应用程序发出请求。此请求将包括所有调用参数,包括从应答机检测到的响应。因此,传入的请求主体拥有所需的一切,而不是进行API调用来检索调用状态。然后,可以使用这些参数来影响响应中的调用。例如:

代码语言:javascript
代码运行次数:0
复制
public ActionResult Call(string AnsweredBy) {
  if (AnsweredBy.ToLower() == "human")
  {
     // do something
  }
  else
  {
     // do something else
  }
}

如果这有帮助的话请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53878939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档