2

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

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

4

1 回答 1

3

Call 方法返回默认页面大小为 50的调用的分页列表。

因此,您需要使用可以指定 pageNumber的ListCalls重载进行分页。CallListRequest

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

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++;        
} 
于 2012-09-14T18:16:13.867 回答