[UX+API] Provide generic API for communication and data exchange

Bug #1627747 reported by Peter Bittner
This bug affects 40 people
Affects Status Importance Assigned to Milestone
Canonical System Image
qtubuntu (Ubuntu)

Bug Description

As a provider for online communication (instant messaging, voice, video, etc.)
I want to have a simple, generic API that allows me to plug in to the Ubuntu Touch platform
So that I can develop a "plugin into Ubuntu Touch" with little effort
And without explicit need to design a user interface and interactions.

Background and Motivation

Lemma: Smart phones, tablets, notebooks and desktop computers are multi-purpose communication devices that are used by humans to exchange information and getting things done. Information managed by all those devices has different forms: From static (slow) data, such as files, emails and calendar entries, to dynamic and ephemeral data (instant messages and real-time communication). But they all serve the same human goal that is invariant across all devices and device platforms (operating systems): Interact and exchange data.


It should be possible to provide a platform that provides:

- A generic API allowing external platforms to send and receive data (e.g. send voice or video stream, send and receive files, send and receive various types of messages)

- Unified communication to the device users (a single front-end that allows unified access to information exchanged, e.g. text messages, IM chats protocols, voice and video call protocols, related files, images, contacts)

- The user interface should allow to filter, group and sort all the information, empowering the user over the vast amount of data. (This way it should even be possible to easily build what we today know as specific "apps" by simply applying filtering and grouping to the unified communication data handling application, plus add a nice skin or theme.)

(Doesn't this even match with the concept of "scopes" in a certain way?)

Solution Examples

This API would allow to have a single telephony app (if you want so) that

- makes voice phone calls via a (default) plugin
- makes video phone calls via a (default) plugin
- makes free emergency phone calls via a (not uninstallable) plugin
- handles text messages and multimedia messages via a (default) plugin

(Until here all features existing in the phone today. Keypad, keyboard, text panels, history views are provided appropriately for the different types of information "automatically".)

- allows searching for a contact, a contact group, a communication or communication history (with the goal to initiate a call or other type of communication) [NOTE: this is scattered across several apps today: Contacts, Messaging, Phone]
- allow instant messengers to send and receive their data stream (e.g. Telegram, Hangups, Hangouts, Ring, Skype, Slack, Viber, WhatsApp, etc.) via plugins developed by the various platform providers or community people
- make VoIP calls (voice, video, presence information via SIP or XMPP) via generic (configurable) or specific plugins (preconfigured by e.g. a SIP provider of your region)

(No proprietary "apps" should be developed, but plugins that deal with transforming and shipping the data. The plugins get the information they require, based on permission sets.)

Similar Concepts, Related Bugs, Plugin Ideas

- Bug 1533104 ("VOIP")
- Bug 1535755 ("Show contact details from social accounts")
- Bug 1627753 ("Greeter should be a scopes app (showing specific scopes)")
- Bug 1544670 ("Unique lock screen design w/ circle gestures to unlock")
- Telepathy plugins (telephony voice data flows through the ofono plugin
of Telepathy, according to Felipe De La Puente), https://lists.launchpad.net/ubuntu-phone/msg22870.html

Revision history for this message
Peter Bittner (peter-bittner) wrote :

Current state of Ubuntu Touch platform components: (background reading)
- https://wiki.ubuntu.com/Touch/Components
- https://wiki.ubuntu.com/Avengers

description: updated
description: updated
Revision history for this message
Peter Bittner (peter-bittner) wrote :

Pat, is there any chance this idea is going to be discussed at Canonical?

(Please also see the list of related bugs.)

description: updated
description: updated
Revision history for this message
Simon Fels (morphis) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Michał Sawicz (saviq)
affects: qtubuntu → qtubuntu (Ubuntu)
Changed in qtubuntu (Ubuntu):
status: New → Confirmed
Changed in qtubuntu (Ubuntu):
status: New → Confirmed
Revision history for this message
Peter Bittner (peter-bittner) wrote :

See the Purism "Design report #4: symbiotic applications" for a very similar approach:

- https://puri.sm/posts/librem5-progress-report-8/

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers