How would you design a system for your contacts and incoming and outgoing call logs? - system-design

I was recently asked in an interview to design a system for managing contacts and call logs.

Related

Blocking spam call with CallKit by sending network request

I'm working on iOS app that blocks incoming spam calls. I'm going to use CallKit. When someone is calling, I'd like to send a request to backend API to check whether the phone number is marked as spam in database. I learned that I have to use CXCallDirectoryProvider. But I heard that iOS doesn't allow sending network requests from CXCallDirectoryProvider implementation. Is it true? Should I have a local database with spam phone numbers in my app?
I didn't test it on device yet, just trying to figure out the most appropriate architecture. Services like TrueCNAM do not allow to pull the whole database. They only provide an API that allows to check one phone number per request.

MS Graph API - Real time call notifications

I am exploring the MS graph APIs to build integration with MS Teams. In order to do that, I need real-time notifications or information about calling activities like incoming calls, transferred, on hold, hung up etc within.
I read through the MS Graph API documentation a couple of times but couldn't find anything related to it. I came across this Teamwork - Get System messages, and checked how it works. I got a few notifications when the call started in a channel or when a group call started, but it does not send any messages related to a 1-to-1 call.
I also tried the Communication API Call Records APIs, but this is not real-time. It sends the notification 12 mins or so after the call ended.
Has anyone in the community worked with real-time notifications related to calls? If yes, please do share details. Also if it is not possible with MS graph APIs then is there any other way to get real-time updates on calls?
I would really appreciate it if I get any help or pointers on this.
Thank you!

How do I retrieve callRecords or logs for calls made to Microsoft Teams Phone System Call Queues?

We have recently introduced Microsoft Teams Phone System with Direct routing in our company.
We have set up a Call Queue for our front desk number to be able to be picked up by free users.
We want to obtain information on these calls for integration into our CRM to log phone activity with customers.
I am using a Change Notification Subscription to /communications/callRecords and GET https://graph.microsoft.com/v1.0/communications/callRecords/{id} to obtain records of calls made through Teams, and in particular, the Teams Phone System.
(https://learn.microsoft.com/en-us/graph/api/callrecords-callrecord-get?view=graph-rest-1.0)
I now do receive change notifications for callRecords of calls made and received from all users.
However, I do not receive callRecords of calls made to the Call Queue.
I only receive callRecords of calls that a user assigned to the call queue has picked up.
In particular, unanswered calls to the call queue seem to show up nowhere in any log or callRecord.
Therefore my question is:
Is there any way to retrieve callRecords (or any other kind of log) for calls made to our call queue, or more general, to numbers assigned to our Resource Accounts?
So far the only information I found seems to suggest that this is a missing feature since 2018.
https://microsoftteams.uservoice.com/forums/555103-public/suggestions/35920921-basic-reports-and-call-lists-for-queues-and-aa

Codename One how to communicate with other users of an app

I am developing an app that requires communication between other users of the same app. A user might want to invite another user to an event, so the request must be sent directly to a specific user with the event data. If the invitee accepts the invite, the inviter will need to receive a message back to notify and record the acceptance. How would I go about achieving this communication functionality? What are the main pieces to this functionality?
Like you would with any platform, using the network.
The question is how do users discover each other? Vicinity? Common interests?
Either way you will need to create a server to which the apps connect via a web service with the proper information (e.g. location, common interests etc.) then the server can return the identifier for the appropriate match and facilitate communication between them.

Callbacks when events happen such as new comments or new tasks

Is there a way using the Asana API for my program to receive some sort of notification when items change or are added (such as new tasks, or comments)? I want to make a realtime app that integrates with Asana. For example, using the comments on an item in a way that it's a realtime chat between people. I imagine if Asana API can support this by sockets or long polling, that would be great.
(I work at Asana.) Not yet, but requests for a notification system are common and we are already designing a solution for it. While we are targeting real- or near-real-time responsiveness, I can't say for certain whether it will be appropriate to support "real-time chat" via comments, nor can I give any details on the timeline, but we'll definitely announce it when we launch.
They have recently implemented Events in asana api.

Resources