ofono - open-source telephonyofono open-source telephony r emi denis-courmont aki niemi nokia...

24
oFono Open-source telephony emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 emi Denis-Courmont Nokia oFono

Upload: others

Post on 14-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

oFonoOpen-source telephony

Remi Denis-CourmontAki Niemi

Nokia Devices R&DMaemo Software

Maemo summit 2009 - October 10th 2009

Remi Denis-Courmont Nokia

oFono

Page 2: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

Outline

1 A brief history of Linux telephony

2 Nokia N900

3 oFono

Remi Denis-Courmont Nokia

oFono

Page 3: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Outline

1 A brief history of Linux telephony

2 Nokia N900

3 oFono

Remi Denis-Courmont Nokia

oFono

Page 4: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

What’s (cellular) telephony?

network status

network selection

SIM security (PIN, PUK. . . )

SIM phone book

voice calls

Short Message Service (SMS)

location

supplementary services

General packet radio service (GPRS)

. . .

Remi Denis-Courmont Nokia

oFono

Page 5: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

What’s (cellular) telephony?

network status

network selection

SIM security (PIN, PUK. . . )

SIM phone book

voice calls

Short Message Service (SMS)

location

supplementary services

General packet radio service (GPRS)

. . .

Remi Denis-Courmont Nokia

oFono

Page 6: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

The standard (?)

Hayes commands set

ITU V.250

3GPP 27.007

better known as AT commands

designed in the seventies. . .

originally for 300 bauds fixed serial line

ASCII

awkward multiplexing

PPP (binary) for backward-compatibility

Remi Denis-Courmont Nokia

oFono

Page 7: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

The standard (?)

Hayes commands set

ITU V.250

3GPP 27.007

better known as AT commands

designed in the seventies. . .

originally for 300 bauds fixed serial line

ASCII

awkward multiplexing

PPP (binary) for backward-compatibility

Remi Denis-Courmont Nokia

oFono

Page 8: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

The standard (?)

Hayes commands set

ITU V.250

3GPP 27.007

better known as AT commands

designed in the seventies. . .

originally for 300 bauds fixed serial line

ASCII

awkward multiplexing

PPP (binary) for backward-compatibility

Remi Denis-Courmont Nokia

oFono

Page 9: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Besides the standard

AT commands extensions:

vendor-specific commandsmany implementations not fully adherent

Full replacement for AT commands, e.g.:

Nokia: Phonet / ISIST-Ericsson: CAIF

PPP can be replaced too:

proprietary framingEthernet emulation

Remi Denis-Courmont Nokia

oFono

Page 10: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Besides the standard

AT commands extensions:

vendor-specific commandsmany implementations not fully adherent

Full replacement for AT commands, e.g.:

Nokia: Phonet / ISIST-Ericsson: CAIF

PPP can be replaced too:

proprietary framingEthernet emulation

Remi Denis-Courmont Nokia

oFono

Page 11: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Existing solutions

Qtopia: technology showcase for Qt

OpenMoko: low-level D-Bus API

Android Radio Interface Layer (RIL)

NetworkManager: laptop-centric, AT-specific, IP-centric

N900 CSD: Nokia modem-specific, closed

Remi Denis-Courmont Nokia

oFono

Page 12: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Existing solutions

Qtopia: technology showcase for Qt

OpenMoko: low-level D-Bus API

Android Radio Interface Layer (RIL)

NetworkManager: laptop-centric, AT-specific, IP-centric

N900 CSD: Nokia modem-specific, closed

Remi Denis-Courmont Nokia

oFono

Page 13: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Existing solutions

Qtopia: technology showcase for Qt

OpenMoko: low-level D-Bus API

Android Radio Interface Layer (RIL)

NetworkManager: laptop-centric, AT-specific, IP-centric

N900 CSD: Nokia modem-specific, closed

Remi Denis-Courmont Nokia

oFono

Page 14: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Outline

1 A brief history of Linux telephony

2 Nokia N900

3 oFono

Remi Denis-Courmont Nokia

oFono

Page 15: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

N900 telephony architecture

Telepathy Ring ICd ApplicationsPulseAudioD-Bus IP stack

CSD GPRS interface

Phonet stack Phonet pipe Character dev

McSAAB (Phonet device) CMT speech

OMAP SSI driver

SSI bus

Cellular modem

Remi Denis-Courmont Nokia

oFono

Page 16: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Phonet

simple datagram-based binary protocol

multiplexing out of the box

asynchronous notifications

abstraction layer for modem interconnect

one IP packet = one Phonet datagram

2.6.28: Phonet stack, GPRS, USB gadget

2.6.31: USB host driver

same stack on N900 and PC!

Remi Denis-Courmont Nokia

oFono

Page 17: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Phonet

simple datagram-based binary protocol

multiplexing out of the box

asynchronous notifications

abstraction layer for modem interconnect

one IP packet = one Phonet datagram

2.6.28: Phonet stack, GPRS, USB gadget

2.6.31: USB host driver

same stack on N900 and PC!

Remi Denis-Courmont Nokia

oFono

Page 18: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Outline

1 A brief history of Linux telephony

2 Nokia N900

3 oFono

Remi Denis-Courmont Nokia

oFono

Page 19: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

oFono architecture

D-Bus

oFono core stack

Modem driver API Plugin API

Generic AT driver Calypso driver ISI driver

TTY Phonet stack

Remi Denis-Courmont Nokia

oFono

Page 20: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

oFono core stack

Core:

D-Bus (de)serialization

network registration logic

call handling logic

SMS retransmit, format and parsing

SIM phonebook to vCard conversion

data caching

. . .

Plugins:

call history

SMS storage

Remi Denis-Courmont Nokia

oFono

Page 21: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

oFono drivers

hardware auto-detection

modem message formatting/parsing

plugin sub-layer for AT modem variants

hardware-specific extra functions

Remi Denis-Courmont Nokia

oFono

Page 22: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

oFono vs CSD comparison

D-Bus

CSD plugins oFono core

CSD oFono ISI driver

Phonet stack

OMAP SSI USB CDC-Phonet

Cellular modem Nokia device

Remi Denis-Courmont Nokia

oFono

Page 23: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

References

oFono projecthttp://www.ofono.org/

Linux kernelhttp://www.kernel.org/

Remi Denis-Courmont Nokia

oFono

Page 24: oFono - Open-source telephonyoFono Open-source telephony R emi Denis-Courmont Aki Niemi Nokia Devices R&D Maemo Software Maemo summit 2009 - October 10th 2009 R emi Denis-Courmont

A brief history of Linux telephony Nokia N900 oFono

Any questions?

Remi Denis-Courmont Nokia

oFono