我尝试使用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>
}
如何从通话记录中返回所有来电?
答案 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++;
}