summaryrefslogtreecommitdiffstats
path: root/doc/overview.txt
blob: 741f3a22c05c3d79a772d39de851fb089ace29cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
oFono - Open Source Telephony
*****************************

Copyright (C) 2008-2010  Intel Corporation. All rights reserved.
Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies).


Mission statement
=================

The overall goal of the oFono project is to create an open telephony stack
for embedded/mobile and desktop systems based on Linux.

It currently targets supporting User Equipment (UE) supporting GSM/UMTS and LTE
based on 3GPP specifications as well as CDMA/EVDO based on 3GPP2 specifications.

The oFono stack delegates implementation of the actual cellular protocol stack
(L1-L3) to a modem firmware. Communication with the modem typically uses
standard AT commands (3GPP TS 27.007) via a serial interface. Proprietary
control protocols such as the Intelligent Serial Interface (ISI) can also be
supported.

Within oFono there is clear abstraction between the application interfaces
based on D-Bus, the hardware level (via drivers) and the integration with
other system components (plugins). The whole architecture is modular and
flexible.


Telephony features
==================

This paragraph lists features that have been implemented so far, features that
are going to be supported in the future, and especially features that will not
be part of oFono.

Implemented features:

	Modem abstraction

		Currently there are two modem drivers available.

		The "atmodem" driver handles hardware based on the 3GPP
		TS 27.007 standard.

		The "isimodem" driver handles hardware based on the ISI
		protocol.

	Network registration

		The network registration interface contains support for
		network detection. It also handles the automatic or manual
		registration to a mobile network.

		Additional information about the current network can be
		easily retrieved and displayed to the user.

	Network time indications

		oFono includes support for receiving Network Identity and
		Timezone (NITZ) indications, and handles processing of
		this information via system-specific plugins.

		An example network time plugin is provided that simply
		prints out the received time information. A more advanced,
		real-world plugin could automatically set the system time
		based on the received information.

	Voice call handling

		The voice call interface handles simple call creation and
		termination. It also supports 3way-calling and multi-party
		features.

		This is only for voice control. It doesn't contain support
		for the voice data path/routing.

	Advanced voice call control

		Features like COLR/CLIR/CLIP/COLP are supported by the
		voice call handling interface.

		The support for call forwarding and call waiting is also
		present.

		Interfaces for call barring and advice of charge do exist,
		but highly depend on if the operator supports them.

	Call history

		The call history is realized via a plugin interface and
		not handled directly. This allows an easy integration with
		storage systems like Evolution-Data-Server.

	Phonebook support

		The storage of the SIM card is not used. The only supported
		features are to allow simple import and export of the contacts
		stored on the SIM card to some third-part entity.

		SIM card storage is limited, slow and not flexible enough
		for modern telephony applications.

	Short message service

		The SMS support for text messages is available.  oFono
		supports concatenated messages of up to 255 segments, UCS2 and
		GSM alphabets as well as extended alphabets.  Delivery
		confirmations (Status Reports) are also supported.

		Selection of SMS bearer settings is supported through the
		'Bearer' property on the SmsManager interface.

	SIM PIN handling

		SIM PIN locks, network and service provider locks are
		supported.

	Cell Broadcast

		Cell broadcasts should be fully supported by oFono, but have
		not been well tested.  Base station name ids have been
		confirmed to work.

	GPRS

		GPRS data connections are fully supported by oFono.  Multiple
		active GPRS contexts are supported, but IPv6 context support is
		currently missing.

	Radio Access Settings

		The radio settings interface contains support for selecting
		the access selection mode and used frequency bands, and allows
		enabling and disabling fast dormancy on hardware that support
		this feature.

	Smart Messaging

		Support for sending and receiving business cards (vCard) and
		appointments (vCalendar) is available using the SmartMessaging
		interface.

	Push Notification

		Support for receiving push notifications (OMA Push over SMS) is
		available using the PushNotification interface.

	USSD

		User initiated USSD support is available, but not
		network-initiated USSD support.

Work in progress:

	SIM application toolkit

		Basic support for SIM toolkit exists.

Out-of-scope features:

	WAP support

		The WAP feature is outdated and using full Internet access
		with an embedded browser is the future.

	EMS support

		This is an Ericsson specific standard and not widely spread
		across the handset manufactures.

	Video telephony

		The support from mobile networks and available handsets is
		still limited, and the feature is considered legacy.

	IP Multimedia Subsystem

		Implementing full IMS client support is not in scope for the
		oFono project. However, oFono will provide some mandatory
		supporting features for IMS, such as an interface for running
		IMS AKA authentication on the ISIM/USIM.