ofono – open source telephony june 2009 denis kenzior oscon 2009
Post on 24-Dec-2015
216 Views
Preview:
TRANSCRIPT
oFono – Open Source Telephony
June 2009
Denis Kenzior
OSCON 2009
22Software and Services Group 2
Intel Confidential
Agenda
• What is Telephony?
• What is GSM?
• Past Approaches
• oFono
• Questions
33Software and Services Group 3
Intel Confidential
What is Telephony?
• Definition: The use or operation of an apparatus (as a telephone) for transmission of sounds as electrical signals between widely removed points
• Today it is much more than that:– POTS– Mobile Telephony– IP Telephony
44Software and Services Group 4
Intel Confidential
Product Categorization
• Plain old telephony system
55Software and Services Group 5
Intel Confidential
Product Categorization
• Desktop devices
66Software and Services Group 6
Intel Confidential
Product Categorization
• Mobile Telephony Devices
77Software and Services Group 7
Intel Confidential
Convergence
• Line between “Mobile” and “Desktop” telephony is blurring– Laptops / Netbooks with 3G– Mobile Phones with WiFi– Mobile Internet Devices (MID)
• Power Management
• Standards, Carrier Compliance
• Comprehensive solution for Mobile Telephony missing– Start with the best candidate: GSM
88Software and Services Group 8
Intel Confidential
Understanding GSM
• GSM – Global System for Mobile communications
• Used by 80% of the mobile market
• 3 Billion subscribers
• 212 Countries
• Digital Voice & Data network
99Software and Services Group 9
Intel Confidential
Understanding GSM
• Voice
• Data
• Fax
• General Packet Radio Service (GPRS)
• Supplementary Services
• Short Messaging Service (SMS)
• Cell Broadcast (CB)
• Enhanced SMS (EMS)
• Multimedia Messaging Service (MMS)
• Location Services
• (U)SIM Application Toolkit ( USAT / STK )
1010Software and Services Group 10
Intel Confidential
What makes GSM so hard?
• Voluminous specifications– Call Handling– Supplementary Services– SMS– Cell Broadcast– USSD– Sim Toolkit
• Vendor / Carrier Enhancements– Enhanced SMS (EMS)– Smart Messaging– WAP– OTA
• Technological / Storage Limitations– Number, kind of calls– SIM Filesystem
1111Software and Services Group 11
Intel Confidential
What makes GSM really hard?
• Backwards Compatibility– Several evolutions of the spec– Each adds new capabilities, but does not deprecate old ones
• Every bit counts– 7 Bit alphabet– Packing / Unpacking– Binary data structures
• Broken Hardware
1212Software and Services Group 12
Intel Confidential
Past Approaches: Qt Extended (Qtopia)
• Developed by Trolltech (now Nokia)
• Dual license (GPL / Commercial)
• Embedded Application Platform
• Fairly Comprehensive Telephony solution– Modem adaptation layer– Modem simulation– Voice / Data, GPRS, SMS / CB– Sim Toolkit support– Custom IPC system based
• Not quite GCF ready out of the box
1313Software and Services Group 13
Intel Confidential
Past approaches: FSO
• Aims to provide fully Open Source mobile phones• Open Hardware• Open Source OS & applications
– Similar in scope to Qtopia– Device management APIs– Telephony APIs– Contacts APIs– GPS / Locality
• Telephony based on frameworkd / ogsmd / gsmd– Provides low-level procedural APIs over DBUS, Python based– Modem Adaptation layer– Handles Voice / Data calls, SMS & Cell Broadcast
• Really not GCF ready
1414Software and Services Group 14
Intel Confidential
Why reinvent the wheel?
• Qtopia– Custom IPC, broadcast based, no point to point– Too slow– Too heavy– Too complex
• FSO– Does not really consider multiple backend implementations– Only mobile phone useage, no desktop use cases– Logic pushed onto the application– Standards compliance an afterthought– Too slow
• Need something for the 21st century
1515Software and Services Group 15
Intel Confidential
Introducing oFono
• oFono is a core system daemon– DBUS API
• Launched by Intel & Nokia on May, 2009
• Licensed under GPL v2– Core and plug-ins are always Open Source
• Plug-ins can be licensed under GPL or GPL compatible (e.g. certain versions of BSD)
• Client applications can choose any license
1616Software and Services Group 16
Intel Confidential
oFono: Architecture
1717Software and Services Group 17
Intel Confidential
oFono: Philosophy
• Support for all kinds of devices– Desktop– Notebook / Netbook– MID / Mobile Phone– Other embedded devices
• Fast and Light
• Easy to use, powerful API
• Easy to extend
• Command line & graphical interfaces possible
• User Interface easy to replace, logic in the daemon
• Focus on standards compliance from the start
• Ready for the 21st century
1818Software and Services Group 18
Intel Confidential
Broad Support
• Support multiple technologies– AT Commands– Library / Socket APIs– AT command-like interfaces
• Bluetooth Handsfree devices
• Support multiple devices simultaneously– USB modems– Serial Modems– Bluetooth devices– Simulated Devices
1919Software and Services Group 19
Intel Confidential
Keep experts where they belong
• oFono– Takes care of core logic– Addresses all Telephony aspects that are “Hard to get it right”– Stable and Standards based – Take care of hardware / vendor idiosyncrasies– Take care of compliance– Telephony experts go here
• UI has different focus– Animations– Ease of use– Graphic Design– UI experts go here, not telephony experts
2020Software and Services Group 20
Intel Confidential
API so good, anyone can use it
• Consistent– Naming conventions– Similar structure
• Minimal– No Bloat, no more than one way of accomplishing a task– It is easier to add than to change– Most important things first– Feature creep is bad
• Complete– Accomplish everything a typical UI can
• Easy to use
2121Software and Services Group 21
Intel Confidential
All Interfaces look alike
• Methods
• Properties– Readonly– Readwrite
• Signals– Emitted when events of interest happen
• Two special methods dealing with properties– dict GetProperties()– SetProperty(string property, variant value)
• Special signal dealing with properties– PropertyChanged(string property, variant value)
2222Software and Services Group 22
Intel Confidential
Make it extendable
• Plug-ins can:– Add new modem adaptations– Storage backend for call history– Write to the SIM– Read from the SIM– Send SMS– Receive SMS
• Plug-ins are also first-class citizens:– Add new (unofficial) D-Bus APIs– Example: Datagrams over SMS
2323Software and Services Group 23
Intel Confidential
Make UI writer’s job easier
• Multiple user interfaces can be active at the same time– All applications will be informed via DBUS signals when something
has changed
• UI tasks can be logically separated– Dialer– Settings– SMS Client
• UI Applications do not need to be resident
• State is kept by the daemon– State query is fast
2424Software and Services Group 24
Intel Confidential
Make UI writer easily replaceable
• UI should be easy to replace– Branding– Customization– Look & Feel
• Can be Open Source or proprietary license
2525Software and Services Group 25
Intel Confidential
Standards Compliance
• Take care of magic MMI incantations (22.030)– Registration– Activation– Interrogation– Deactivation– Erasure
• Unrecognized Requests are– Checked for validity– Passed onto the network in the form of a USSD
2626Software and Services Group 26
Intel Confidential
Take care of the gory details
• Read & Write appropriate entries to the SIM– Subscriber Numbers– Message Waiting Indications– Service Numbers– Mailbox Numbers– Call Forwarding Settings– Outgoing Call History– Incoming Call History– Cell Broadcast Identifiers
2727Software and Services Group 27
Intel Confidential
Take care of the really gory details
• Service Provider Display– Support Mobile Virtual Network Operators (MVNO)– Files on the SIM control how the operator is displayed
• EFspn• EFspdi• EFspni
• Operator Display– Operator lists outdated– Broadcasting the name is not good enough– Enhanced Operator Name
• EFpnn• EFpnni• EFopl
2828Software and Services Group 28
Intel Confidential
• Don’t use SIM for Contacts– Limited storage– Limited attribute length– Limited set of attributes– Management details tend to bleed through into UX– SyncML is just better
• Don’t use SIM for SMS– Limited space– Out-of-space conditions
Welcome to the 21st Century
2929Software and Services Group 29
Intel Confidential
Peer Collaboration
• oFono plugin for BlueZ– Provides server-side Handsfree Profile capability
• oFono plugin for ConnMan– Planned– Will provide network management of 3G connection
• Future– Time / Timezone settings– Modem emulator
• DUN• Serial Port Profile
– OTA
3030Software and Services Group 30
Intel Confidential
Current Development
• Network Registration
• Voice Calls
• Supplementary Services– Call Waiting, Hold, Multiparty– User Determined User Busy– Explicit Call Transfer– Call Forwarding– Call Settings– Call Barring– Advice of Charge
• SMS– Send– Receive
• SIM Phonebook export using vCard 3.0
3131Software and Services Group 31
Intel Confidential
Future Work
• Cell Broadcast
• USSD
• Message Waiting Indicators
• GPRS– PPP– Vendor specific
• Power Management
3232Software and Services Group 32
Intel Confidential
Questions?
• Website– http://ofono.org
• Code– http://git.kernel.org/?p=network/ofono/ofono.git;a=summary
• Mailing List– ofono@ofono.org
• IRC– #ofono on freenode.net
3333Software and Services Group 33
Intel Confidential
Legal Information
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT.
Intel may make changes to specifications, product descriptions, and plans at any time, without notice.
All dates provided are subject to change without notice.
Intel is a trademark of Intel Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others.
Copyright © 2009, Intel Corporation. All rights are protected.
top related