Comment 0 for bug 1627747

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

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 (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 severals 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.)