ARMTelephonyStack

Differences between revisions 10 and 14 (spanning 4 versions)
Revision 10 as of 2010-06-04 18:53:19
Size: 6191
Editor: f050144004
Comment:
Revision 14 as of 2010-06-07 14:34:31
Size: 6813
Editor: 178
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
Currently, telepathy offers a VoIP implementation and the user can access this feature through the universal empathy client. This spec explores how to integrate the oFono middleware in the existing telephony stacks, how the telephony stack can be improved in general and how we can unify the software, application development and user experience of both telephony and VoIP. In particular this spec intends to address the steps we can take in Maverick to further this goal.
Line 13: Line 13:
Modem based voice calls are not supported at the moment; also empathy is missing interfaces for messaging by SMS, MMS etc. This spec proposes integrating oFono with telepathy by integrating the telepathy-ring package shipped by Meego: http://meego.gitorious.org/meego-cellular/telapathy-ring
Line 15: Line 15:
This spec proposes integrating ofono with telepathy by integrating the telepathy-ring package shipped by meego: http://meego.gitorious.org/meego-cellular/telapathy-ring This spec proposes adding a PoC dialer UI that automatically selects sip vs. oFono calls or lets user choose which stack to use for the call.

This spec proposes to integrate the dialer application with the address book infrastructure of evolution-data-server and akonadi based distribution profiles.
Line 19: Line 21:
In order to reach out to better serve the mobile market in future, it is required to deliver a more complete and better integrated telephony stack. This includes middleware and drivers required to use modem for calls and messaging as well as driving the UI forward to a level where it can be used to exercise and showcase the telephony stack and hardware. Getting a fully integrated telephony stack in place serves a few purposes. The most significant ones are:
 * enable vendors and hardware manufacturers to easily showcase and test their hardware using a standardized telephony stack for Linux.
 * standardize the telephony stack and encourage vendors to contribute to a single project that would open doors to all Linux devices.
 * enable downstreams and distributions to efficiently create phone and handset solutions without having to do considerable development and integration work.
Line 23: Line 28:
 * We find a usb modem on the market that has free drivers and is supported by ofono (or alternatively can be enabled in ofono) (Action: Pete Goodall) A USB modem can be acquired that has free drivers in the mainline kernel and is supported by oFono (or alternatively can be enabled in oFono with reasonable effort) (Action: Pete Goodall)
Line 27: Line 32:
This spec proposes to pair ofono with telepathy and add a dialer application that allows to showcase and test the telephony and hardware stack on telepathy enabled deployments. A glue for pairing ofono and telepathy has been made available by the meego project and is called telepathy-ring, whose git branch is available at the url below: We pair oFono with telepathy. A glue for pairing oFono and telepathy has been made available by the meego project and is called telepathy-ring, whose git branch is available at the URL below:
Line 30: Line 35:
On top it is proposed to make a showcase dialer UI; outreaching to the empathy community is important and recommended as it was mentioned during UDS that they plan on working on such dialer UI. We add a dialer application that allows to showcase and test the telephony and hardware stack in telepathy enabled distribution profiles
Line 32: Line 37:
Also, the telephony dialer should be properly integrated in the system addressbook service, like evolution-data-server and in the system addressbook first this integration should happen for both, evolution-data-server and akonadi enabled distribution profiles. Reaching out to empathy developers to develop this dialer application in the empathy framework is considered important and recommended as it was mentioned during UDS that they plan on working on such dialer UI anyway.

On top we integrate the telephony dialer in common addressbook services:

 * evolution-data-server
 * akonadi

Integration is targeted to happen by using a protocol scheme.
Line 36: Line 48:
Implementation involves various items:
 * find and get access to usb modems that can do voice calls (GSM + CDMA)
Fulfill Assumptions:
 * find and get access to USB modems that can do voice calls (GSM + CDMA)
Line 39: Line 51:
  * an ofono backend can be made available
 * ensure that ofono in archive is modern enough for telepathy-ring
 * package up an ofono with support for the modem
  * ensure that an oFono backend can be made available


Core Stack work:
 * make an oFono build available that supports the modem selected above
 * ensure that oFono in the archive is modern enough for telepathy-ring
 * identify other minimum package requirements for telepathy-ring (dependencies, minimum versions, etc.) and make a plan to fulfill those requirements in the archive
 * coordinate with stakeholders of the software stack components touched for this specification
 * ensure that minimum package requirements are fulfilled; this involves updating packages required for telepathy-ring
Line 43: Line 61:
 * if needed, upgrade telepathy stack to a newer version that is supported by telepathy-ring
UI stack work:
 * initiate discussion with empathy developers on what can be achieved this cycle
 * integrate dialer application from empathy
 * or develop a simple dialer on our own
 * package and make dialer available in the archive
 * setup protocol schemes and hook that up to the dialer.
Line 47: Line 71:
Linaro Core comes with an extended telephony stack built on telepathy; a showcase dialer UI is available in the the default headless and netbook install. Linaro Core comes with an extended telephony stack built on telepathy; the middleware stack is included in the headless and netbook distribution profiles; a showcase dialer UI is available in the the netbook distribution profile.
Line 51: Line 75:
 * For netbook and phone UI profiles, integrate latest empathy and ensure that there is a seperate dialer app suitable for touchphones. For netbook and phone profiles, integrate latest empathy and ensure that there is a separate dialer application suitable for touchphones.
Line 55: Line 79:
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.
Line 60: Line 80:

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.
Line 86: Line 104:
 * Does a heavywieight client effect agnostic and lightweight environments?  * Does a heavyweight client effect agnostic and lightweight environments?
  • Launchpad Entry: arm-m-telephony-stack

  • Created: May 5, 2010

  • Contributors: David Sugar, Alexander Sack

  • Packages affected: ofono, telepathy, telepathy-ring (NEW), empathy (dialer)

Summary

This spec explores how to integrate the oFono middleware in the existing telephony stacks, how the telephony stack can be improved in general and how we can unify the software, application development and user experience of both telephony and VoIP. In particular this spec intends to address the steps we can take in Maverick to further this goal.

This spec proposes integrating oFono with telepathy by integrating the telepathy-ring package shipped by Meego: http://meego.gitorious.org/meego-cellular/telapathy-ring

This spec proposes adding a PoC dialer UI that automatically selects sip vs. oFono calls or lets user choose which stack to use for the call.

This spec proposes to integrate the dialer application with the address book infrastructure of evolution-data-server and akonadi based distribution profiles.

Rationale

Getting a fully integrated telephony stack in place serves a few purposes. The most significant ones are:

  • enable vendors and hardware manufacturers to easily showcase and test their hardware using a standardized telephony stack for Linux.
  • standardize the telephony stack and encourage vendors to contribute to a single project that would open doors to all Linux devices.
  • enable downstreams and distributions to efficiently create phone and handset solutions without having to do considerable development and integration work.

Assumptions

A USB modem can be acquired that has free drivers in the mainline kernel and is supported by oFono (or alternatively can be enabled in oFono with reasonable effort) (Action: Pete Goodall)

Design

We pair oFono with telepathy. A glue for pairing oFono and telepathy has been made available by the meego project and is called telepathy-ring, whose git branch is available at the URL below:

We add a dialer application that allows to showcase and test the telephony and hardware stack in telepathy enabled distribution profiles

Reaching out to empathy developers to develop this dialer application in the empathy framework is considered important and recommended as it was mentioned during UDS that they plan on working on such dialer UI anyway.

On top we integrate the telephony dialer in common addressbook services:

  • evolution-data-server
  • akonadi

Integration is targeted to happen by using a protocol scheme.

Implementation

Fulfill Assumptions:

  • find and get access to USB modems that can do voice calls (GSM + CDMA)
    • ensure that free drivers exist
    • ensure that an oFono backend can be made available

Core Stack work:

  • make an oFono build available that supports the modem selected above
  • ensure that oFono in the archive is modern enough for telepathy-ring
  • identify other minimum package requirements for telepathy-ring (dependencies, minimum versions, etc.) and make a plan to fulfill those requirements in the archive
  • coordinate with stakeholders of the software stack components touched for this specification
  • ensure that minimum package requirements are fulfilled; this involves updating packages required for telepathy-ring
  • package and stabilize telepathy-ring

UI stack work:

  • initiate discussion with empathy developers on what can be achieved this cycle
  • integrate dialer application from empathy
  • or develop a simple dialer on our own
  • package and make dialer available in the archive
  • setup protocol schemes and hook that up to the dialer.

Release Note

Linaro Core comes with an extended telephony stack built on telepathy; the middleware stack is included in the headless and netbook distribution profiles; a showcase dialer UI is available in the the netbook distribution profile.

UI Changes

For netbook and phone profiles, integrate latest empathy and ensure that there is a separate dialer application suitable for touchphones.

Test/Demo Plan

Unresolved issues

UDS Maverick Discussion

Problem Space

  • Lots of communication methods and services
    • with different api's
    • different client experiences
    • ranging from VoIP to cellular, and all in between
  • Many kinds of applications
    • generic communication programs
    • specialized custom enterprise apps
    • ACD agents and relationship management
  • Need to integrate other system resources such as address books
  • Telephony application development often need to deal with audio processing
    • and different network transport protocols long before the "application"

Proposed Goals

  • Unify disparate communication systems with different api's
  • Simplify telephony application programming
  • Single solution that works for cell phones to desktop

Questions

  • Is desktop agnostic essential?
  • Can we use just a heavyweight client with an external API?
  • Does a heavyweight client effect agnostic and lightweight environments?
  • Can we use ofono as a top layer telephony application stack?
  • How much work is needed to make ofono usable this way in Ubuntu?
  • Can we reduce telephony application development to something like "quickly"?
  • How have others tried to solve this, and what can we learn?

Discussion Notes

  • What are the differences and advantages of Ofono regarding Telepathy?
    • Telepathy has a more complete/complex API, aka ofono would restrict the feature set
    • oFono plugin for telepathy exists for nokia, but is currently closed source
    • call routing: might not work on phones; power consumption for VOIP isnt optimal
      • preferred way to route calls could be auto selected; where? client needs to take care
        • because telepathy has no concept to do that; client could be != UI
    • priority should be to get use cases and devices work; then think about UI
    • integration with bearer management to make call routing decisions

Action Items

  • bearer management service as part of the default
  • client that integrates with bearer management, address book (eds, akonadi), telepathy
  • sipwitch as proxy service? benefit: smart voip routing, smart NAT support, multi-device handling
    • 100k overhead
  • package ofono and friends
  • UI: DTMF dialer; bearer management problem; should we extend the empathy UI?
  • complicated question: how to do routing? where do do that?

Telepathy contacts: sjoerd rob mcquen


CategorySpec

Specs/M/ARMTelephonyStack (last edited 2010-06-07 14:34:31 by 178)