ofono – open source telephony june 2009 denis kenzior oscon 2009

33
oFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

Upload: clemence-morgan

Post on 24-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

oFono – Open Source Telephony

June 2009

Denis Kenzior

OSCON 2009

Page 2: 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

Page 3: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 4: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

44Software and Services Group 4

Intel Confidential

Product Categorization

• Plain old telephony system

Page 5: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

55Software and Services Group 5

Intel Confidential

Product Categorization

• Desktop devices

Page 6: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

66Software and Services Group 6

Intel Confidential

Product Categorization

• Mobile Telephony Devices

Page 7: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 8: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 9: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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 )

Page 10: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 11: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 12: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 13: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 14: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 15: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 16: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

1616Software and Services Group 16

Intel Confidential

oFono: Architecture

Page 17: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 18: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 19: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 20: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 21: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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)

Page 22: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 23: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 24: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 25: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 26: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 27: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 28: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 29: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 30: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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

Page 31: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

3131Software and Services Group 31

Intel Confidential

Future Work

• Cell Broadcast

• USSD

• Message Waiting Indicators

• GPRS– PPP– Vendor specific

• Power Management

Page 32: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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– [email protected]

• IRC– #ofono on freenode.net

Page 33: OFono – Open Source Telephony June 2009 Denis Kenzior OSCON 2009

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.