C# get call logs

  • 1
  • Question
  • Updated 12 months ago
I have a sanbox set up, and I have 2 call logs in it both are missed calls, but I don't think that matters in my case.

What I want to do is return all call logs for all users to display a count of how many Inbound and outbound calls were made by each user.

The code I have in my  web page seems to execute fine, but it is not returning any call logs.
[HttpGet]
        [Route("api/CallLogs/")]
        public async Task<string> GetCallLogs()
        {
            rc = new RestClient(appKey, appSecret, isProduction);
            await rc.Authorize(userName, "", password);
            DateTime input = DateTime.Today;
            int delta = DayOfWeek.Monday - input.DayOfWeek;
            DateTime monday = input.AddDays(delta);
           
            var extension2 = rc.Restapi().Account().Extension();
            var callLogs = await extension2.CallLog().List(new { dateFrom = monday.ToString("yyyy-MM-dd") });
            //var callLogs = await extension2.CallLog().List(new { direction = "Inbound" });
            //var callLogsO = await extension2.CallLog().List(new { direction = "Outbound" });
            return callLogs.records.Count().ToString();
        }

The count comes back as 0.
But when I go to RC page https://developer.ringcentral.com/api-explorer/latest/index.html#/!/Call_Log/loadCompanyCallLog

And run Get company call logs I get back both of my calls.
Thanks for any help or advice.
Keith.
Photo of Keith Stephens

Keith Stephens

  • 142 Points 100 badge 2x thumb

Posted 12 months ago

  • 1
Photo of Phong Vu

Phong Vu, Devangelist

  • 3,112 Points 3k badge 2x thumb
Hi Keith,

If you want to read call logs from all users, login with the main company account (or extension with admin role). Then call the calllog endpoint at the account level.

var mainAccount = rc.Restapi().Account();
var callLogs = await mainAccount.CallLog().List(new { dateFrom = monday.ToString("yyyy-MM-dd");
...

Let me know if this helps.
+ Phong