【问题标题】:Filter call logs using Twilio .NET helper library使用 Twilio .NET 帮助程序库过滤呼叫日志
【发布时间】:2012-09-14 17:46:57
【问题描述】:

我正在尝试使用Twilio Rest API 来获取使用MVC .net 的通话记录列表。使用以下代码,我只能获得最近的 50 个调用。我想返回所有呼叫并根据我的选择进行过滤。

@using Twilio;
@{
    // Set our AccountSid and AuthToken
    string sid = "AC123";
    string token = "abcd";

    // Instantiate a new Twilio Rest Client
    var client = new TwilioRestClient(sid, token);    

    // Get Recent Calls
    var calls = client.ListCalls();

    if (calls.RestException != null) 
    {
        Response.Write(string.Format("Error: {0}", calls.RestException.Message));
        Response.End();
    }    
}
<h1>Call Log</h1>
@foreach (var call in calls.Calls) {
    <p>Call from @call.From to @call.To at @call.StartTime of length @call.Duration</p>
}

如何从通话记录中回复所有来电?

【问题讨论】:

    标签: asp.net-mvc twilio


    【解决方案1】:

    Call method 正在返回 default pagesize 为 50 的呼叫的分页列表。

    因此,您需要使用 ListCalls 重载进行分页,该重载采用 CallListRequest,您可以在其中指定 pageNumber。

    这是一个如何对所有调用进行分页的示例:

    var client = new TwilioRestClient(sid, token);    
    
    var pageNumber = 0;
    var totalPages = 1;
    
    var allCalls = new List<Call>();
    
    while(pageNumber < totalPages)
    {
        var calls = client.ListCalls(new CallListRequest { PageNumber = pageNumber });
    
        if (calls.RestException != null) 
        {
             Response
                 .Write(string.Format("Error: {0}", calls.RestException.Message));
             Response.End();
             break;
        }  
        allCalls.AddRange(calls.Calls);
        totalPages = calls.NumPages;
        pageNumber++;        
    } 
    

    【讨论】:

    • 谢谢!!我遇到的最大问题是找到传递 ListCalls 的正确语法,您完美地解释了这一点
    • 您知道如何在特定日期范围内回电吗?我可以回复特定日期的电话,但找不到针对某个范围的方法...
    • 不,它表明当前 REST API 不支持日期范围。您可以做的是检查您的日期范围并在给定的特定日期接到电话......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多