Management
Technology
- Applications
- Business Intelligence
- Development
- Hardware
- Mobile & Wireless
- Networking
- Internet
- Operating Systems
- Security Products
- Servers & Datacentre
- Storage
Toolbox
Training
Books
White Papers
Webcast
Resource Centre
What's the Point of oFono?
May 12, 2009
Posted by: Glyn Moody
Even though free software was born on the server, and is currently battling to gain a foothold on the desktop, it is generally accepted that it will also thrive in two other quite different areas: embedded systems, and mobile devices.
As far as the GNU/Linux-based offerings for the latter are concerned, there's already one platform from the LiMo Foundation, together with Google's Android (and maybe Moblin if you include other kinds of mobile internet devices.) On top of that, there are also open source platforms that are not built on top of Linux, for example that from Symbian.
Against that background, you might think that the last the world needs is yet another mobile platform, but Intel and Nokia beg to differ:
Intel and Nokia are pleased to jointly announce the oFono project, an open source project for developing an open source telephony solution.
oFono.org is a place to bring developers together around designing an infrastructure for building mobile telephony (GSM/UMTS) applications.
Review the oFono architecture diagram for more information.
Review the source code for an even closer look.
oFono is licensed under GPLv2, and it includes a high-level D-Bus API for use by telephony applications of any license. oFono also includes a low-level plug-in API for integrating with Open Source as well as third party telephony stacks, cellular modems and storage back-ends.
Of course, the obvious question is: What makes oFono different? I'm glad you asked:
oFono aims to provide an easy to use interface that can be used to create rich telephony applications without requiring one to have a deep understanding of the underlying technology and its limitations. To accomplish this, oFono provides language-independent D-Bus API that is extremely easy to use without generated bindings or other 'messy' steps typically required to use an IPC based API.
The API follows the following four basic principles:
Consistent
Minimal
Easy to use
Complete
Consistent
The API should be consistent. Functionality in oFono is broken up into Interfaces, each with well-defined set of Properties. Each interface has a GetProperties() and a SetProperty() method which is used to accomplish majority of the tasks. Naming conventions are also strictly enforced. This means that once you're comfortable using one Interface, you should be able to easily orient yourself to use others.
Minimal
The API should be minimal; there shouldn't be more than one way of accomplishing a task as this leads to confusion and API bloat. We also aim to maintain API compatibility whenever possible, from the very beginning. This means that oFono APIs wil generally focus on the most important use-cases. Other features will be carefully considered before being included in the APIs.
Complete
At the same time, the APIs must be rich and complete enough to enable the creation of feature complete mobile phones. Thus, APIs for all aspects of telephony are planned, incudling but not limited to Voice calls, SMS, Cell Broadcast, Supplementary Services and SIM Phonebooks.
Easy to use
oFono aims to make writing telephony applications as easy as possible. Thus oFono will take care of the core logic, including things necessary for standards compliance. This will allow application writers to focus on what they should be doing: presentation aspects and funky animated Uis.
This is interesting for a number of reasons. First, because it seems to be trying to do something different from the usual “create open source code and see what someone can do with it” approach. It is taking the modularity that lies at the heart of free software to the next level, exposing functionality through a very simple API. That means it will appeal to those who don't necessarily want to mess around with the underlying code (although they always have the option of doing so).
It's also extremely interesting because it comes from Intel and Nokia. Intel was originally backing Moblin in this area, but recently passed the project over to the Linux Foundation. The announcement of oFono confirms my suspicions at the time that Intel decided Moblin had failed to gain traction. I fear, therefore, that Moblin will now go nowhere fast: there are just too many alternatives offering more modern approaches, and too few developers to support all the initiatives, however worthwhile they may be.
More intriguing is the fact that Nokia was also behind the open-sourcing of Symbian's code last year. So it will be interesting to see how it maintains its commitment to both mobile projects. I can't believe that it's giving up on Symbian in the same way that Intel gave up on Moblin, so it must see oFono as addressing a different market. Perhaps Symbian's open source code is aimed at the serious mobile hackers, putting together high-end smartphones, where oFono is more for companies that want a basic toolkit for creating mass market products quickly and easily.
Whether or not that's true, the appearance of oFono, with its novel, simplified approach, is yet another vote of confidence in open source on mobiles, and yet another reason to keep an eye what happens in this hugely important sector.
Update: A couple of people have suggested that oFono may represent a different part of the mobile stack from Android and LiMo. That's certainly plausible, even if the diagram on the site doesn't make it clear (to me, at least). But I stand by my comment that Intel is moving away from Moblin, and that the latter is likely to be increasingly sidelined as other projects gain strength.
Follow highlights from ComputerworldUK on Twitter
Sign up for our Daily Newsletter
The UK IT News widget Get it for your site!
<<newer entry | back to blogs index | older entry>>
Advert
Email this article to a friend or colleague:
PLEASE NOTE: Your name is used only to let the recipient know who sent the story, and in case of transmission error. Both your name and the recipient's name and address will not be used for any other purpose.
- This article is now being printed.
What are your views on this subject? Use the form below to post a comment on this article up to 1000 characters.
Click below to add 'What's the Point of oFono?' to your blog.
If you do not have a ComputerworldUK Account and would like to use this feature, please Register.
If you are a registered, logged-in user, this will post the title and first paragraph of this story to your blog to share with your readers.
Advert












































Comments received
Frank Earl said on Wednesday, 13 May 2009
Looking at their code, etc. oFono looks to be more akin to a mobile version of Microsoft's TAPI on Windows than a replacement for the UI pieces. This is telephony, which is only one aspect of the whole thing, Glyn. You might want to back up and look at this again from that angle.
Glyn Moody said on Wednesday, 13 May 2009
But that's why I'm confused: they talk about *Linux* in their stack - so doesn't that make it like Android/LiMo et al? Wouldn't something like TAPI just sit on top?
Mark Harris said on Thursday, 14 May 2009
Maybe they're just looking to leverage the community aspect to drive next gen phone system development at minimum cost to them? As Frank Earl says, this is about telephony, whereas (if I understand it, and I probably don't) Android is about platform for development of mobile devices
Paul Cooper said on Saturday, 16 May 2009
If you want to understand how Moblin and oFono relate to each other I would point you to the Moblin Core architecture diagram at http://moblin.org/documentation/moblin-overview/moblin-core
If you look down at the bottom left corner there's a purple box which says "3rd Party Cellular Stack" - that's where oFono fits in. It's the open source Cellular Stack - nothing more nothing less. The reality of devices is that the choice of cellular stack is defined as much by which modem and which operator an ODM is working with, hence the need to support a variety of options.
Of course cellular support is a complicated beast so when you create a description and a diagram it may look just as complex as a whole (mobile) OS, so confusion is understandable. We've only just started with Moblin and oFono so making sure the documentation is comprehensive and clear is something we need to work on.