使用Twilio .NET帮助程序库筛选调用日志

时间:2012-09-14 17:46:57

标签: asp.net-mvc twilio

我尝试使用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>
}

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

1 个答案:

答案 0 :(得分:3)

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++;        
}