Skip to content
This repository was archived by the owner on Oct 2, 2019. It is now read-only.
This repository was archived by the owner on Oct 2, 2019. It is now read-only.

support for call history sync #212

@zolkis

Description

@zolkis

Requirement: a phone call should always be recorded in call history. Even if the system load is so high that an incoming call is not shown until timeout, the call should be recorded as a missed call (real use case, with measurements and proof).

There are 2 ways to mitigate:

  1. ensure prioritization of the whole SW stack (related processes) up to the dialer/web runtime.
  2. ensure prioritization of a small core component in telephony MW which keeps a short log of call history, which is then synchronized with the dialer app(s).
    Here we have 2 cases:
    a. After sync, the short log is cleared, i.e only one entity can read it.
    b. A full call history DB is maintained, with a client API to read, write back, revisions support, id allocation. This added complexity works against the requirement, so it is not desirable. 2a is the simpler, preferred solution.

If option 1 is feasible, then we don't need any action.
If option 2 is chosen in a platform (like in our case, 2a), then we need an API for call history sync. The impact is to move call history to the main spec (not appendix), and define a sync API to fetch call history.

Possible conflicting requirements of call history across different platforms:

  1. different dialer apps should see the same call history
  2. different dialer apps should maintain their own slice of call history.

In the first case, a common call history storage is needed, but then that could be provided by the telephony middleware or the API implementation (2b), and a sync API could be used to sync that data into the app cache, and back. Sync API functionality needs to cover:

  • read call history items since last read (app specific)
  • write call history items since last write (app specific).
  • id's have to be allocated from a central place, in order to ensure uniqueness.

In the second case, dialers are not required to see the same call history, so it is OK if either one reads the short log via a DataStore API, and no need to sync back.

In both cases it seems feasible to use DataStore API for sync, with the schema of CallHistoryEntry. We need to have a way to say from the dialer that "I am using a DataStore with schema specified by CallHistoryEntry", similar to the C++ syntax of:

DataStore<CallHistoryEntry> callHistory;

Discussion time :).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions