Communications

Last edit: 2023.10.19

The communications domain spans the following sub-domains:

Making a phone call

The TomTom Digital Cockpit platform provides flexible architecture components that allow the integration of a wide range of voice calling services. The TomTom Digital Cockpit application suite provides the end-user with a consistent user interface through which they can make and receive calls, as well as view contacts and recent calls.

The TomTom Digital Cockpit platform comes with support for making phone calls using a Bluetooth-connected phone. TomTom Digital Cockpit can also be extended to support other communications services. For example Voice Over Internet Protocol (VOIP) calling. This can be done by integrating an SDK of an online conference calling service by implementing a ConnectionService for it.

How to do this is described in: How to create a custom connection service

High level overview

The following diagram shows a high-level overview of the architecture of calling in TomTom Digital Cockpit.

Calling high-level overview image

It shows the following components:

  • Communications frontend: This implements the user interface for incoming call notifications, the ongoing call process panel, as well as the recent calls and contacts list.
  • Telecom service: This service provides support for initiating calls and getting the status of all current calls, both incoming and outgoing.
  • Custom connection service: An example of a custom connection service, which can be used to extend TomTom Digital Cockpit with new calling services.
  • Recent calls service: This service provides the recent calls list.
  • Contacts service: This service provides the contacts list.
  • IVI in-call service: This service receives call state information from Android and passes this to the telecom service.
  • Telecom manager: This is an Android service that provides calling functionality.
  • Content resolver: This is the Android content database which, among other things provides the contacts and recent calls lists.
  • HFP Connection Service: This is the Android Bluetooth hands free profile connection service, that implements hands free calling using a Bluetooth connected phone.

Send and receive messages

The TomTom Digital Cockpit platform provides flexible architecture components to allow a wide range of messaging services to be integrated. The TomTom Digital Cockpit application suite provides the end-user with a consistent user interface through which messages can be read and responded to. For some messaging systems (like SMS) it is also possible to directly send messages, instead of only responding to an existing conversation.

Currently the suite comes with support for SMS, using devices connected through Bluetooth, and WhatsApp using the example companion app.

In TomTom Digital Cockpit, messages are subdivided in Conversations. A conversation contains all messages sent between the user and a specific list of peers using the same messaging provider like SMS, WhatsApp, Facebook Messenger, etc.

TomTom Digital Cockpit can be extended with support for a new messaging service as follows:

High level overview

The following diagram shows a high-level overview of the architecture of messaging in TomTom Digital Cockpit.

Messaging high-level overview image

It shows the following components:

  • Messaging frontend: This implements the user interface for message notifications.
  • Messaging application service: This provides state and business logic for the frontend.
  • Messaging service: This service implements all messaging functionality, including providing a list of all current conversations.
  • Messaging provider service api: This is a discoverable service API for transparently supporting multiple types of messaging.
  • SMS service: Messaging provider implementation that adds SMS messaging support to the platform.
  • Companion app messaging service: Messaging provider that adds messaging support through the companion app.
  • Communications messaging service: This is the messaging service definition used for communications between TomTom Digital Cockpit and the companion app.

Extending TomTom Digital Cockpit with a new messaging service

TomTom Digital Cockpit can be directly extended with support for a new messaging service by implementing a new discoverable MessagingProviderService.

Extending messaging using a companion app

TomTom Digital Cockpit comes together with a framework that supports running remote services on a companion app. This framework also contains the communications MessagingService, which can directly be used to extend TomTom Digital Cockpit messaging.

Communications plugins configuration

The communications plugins default configuration can be changed by adding a custom configuration resource file in your application, such as <module>/res/value/ttivi-communication-configuration.xml. The custom configuration overrides the default values. The How to configure the communications plugins guide explains this procedure.