Объект RingCentral ExtensionCallLogResponse для вызовов

Я новичок в использовании RingCentral и вызовах API.

Я использую пример RingCentral C # nuget, чтобы помочь мне вместе с попыткой получить как исходящие, так и входящие журналы вызовов с их ногами.

Пока я пытаюсь получить входящие звонки, используя

ExtensionCallLogResponse callLogsInBound = await mainAccount.CallLog().List(new {
  dateFrom = monday.ToString("yyyy-MM-dd"),
  dateTo = monday.AddDays(5),
  view = "Detailed",
  direction = "Inbound"
});

Это вложенный объект с навигационной информацией, пейджинговой информацией и несколькими записями (вызовы). Каков наилучший способ прочитать эту информацию в представлении сетки для создания отчетов об именах пользователей, количестве вызовов, этапах вызовов? Я попытался преобразовать этот объект в datatable, но пока не добился успеха, и мне интересно, есть ли лучший способ? Спасибо, К.


person Kevin    schedule 04.09.2018    source источник


Ответы (1)


Есть несколько способов избежать чтения большого фрагмента или всего журнала вызовов, который заставит вас использовать навигационные данные для перехода между страницами.

Один из способов — прочитать журнал вызовов каждого расширения за короткий период времени (fromDate и toDate) и установить для параметра perPage максимум 1000 элементов. (используйте конечную точку журнала вызовов пользователя)

Если вы хотите прочитать весь журнал вызовов компании с помощью конечной точки журнала вызовов компании, укажите еще более короткий период времени, чтобы он уместился на 1000 элементов на странице.

Чтобы добавить данные в вашу базу данных, я не уверен, о каком типе базы данных вы думаете, но вы можете сделать, например. формате .csv, затем проанализируйте ответ, чтобы извлечь данные, которые вы хотите сохранить. Информацию об ответах см. в справочнике по API.

// e.g.
var callLogs = await rc.Restapi().Account().Extension(1234567890).CallLog().List(parameters);
var csv = "id,uri,result";
foreach(var record in callLogs.records)
{
  csv += "\r\n" + record.id + "," + record.uri + "," + record.result;
}
System.Console.WriteLine(csv);

Является ли имя пользователя, которое вы упомянули, именем каждого расширения/пользователя под учетной записью? Если это так, я думаю, вы можете вызвать список расширений, чтобы прочитать информацию обо всех расширениях под учетной записью, использовать идентификатор расширения для чтения журнала вызовов этого расширения, как показано выше. Затем, когда вы анализируете ответ журнала вызовов, просто добавьте имя этого расширения в столбец имени данных csv.

person Paco Vu    schedule 05.09.2018
comment
Здравствуйте, мистер Ву. Это очень помогает мне, спасибо. В приведенном вами фрагменте кода вы не используете var csv. Что мне нужно, так это получить все исходящие звонки в компании в течение одной недели с понедельника по пятницу и получить подсчет количества звонков, сделанных в день, по каждому человеку или добавочному номеру и общее количество. Таким образом, каждая строка у меня будет: Ext + имя пользователя, количество понедельников, количество вторников и т. д. до пятницы, а затем общее количество всех вызовов для этого пользователя. - person Kevin; 07.09.2018