TODO: Mark SMS-PP download task as done
[platform/upstream/ofono.git] / TODO
1 pBackground
2 ==========
3
4 - Priority scale: High, Medium and Low
5
6 - Complexity scale: C1, C2, C4 and C8.  The complexity scale is exponential,
7   with complexity 1 being the lowest complexity.  Complexity is a function
8   of both task 'complexity' and task 'scope'.
9
10   The general rule of thumb is that a complexity 1 task should take 1-2 weeks
11   for a person very familiar with oFono codebase.  Higher complexity tasks
12   require more time and have higher uncertainty.
13
14   Higher complexity tasks should be refined into several lower complexity tasks
15   once the task is better understood.
16
17
18 SMS
19 ===
20
21 - Add support for Enhanced SMS (EMS) from 3GPP 23.040.  These SMS messages
22   support a richer set of formatting elements, including bold/italic and
23   font size selection.  Embedding images and sounds into the SMS is also
24   supported.  This task should add support for receiving such SMS messages.
25
26   Proposed solution is to convert such messages to HTML and embed image /
27   sound data as embedded MIME in the generated HTML stream.  The EMS messages
28   will have to be detected (by the presence of particular tags in the SMS)
29   and signaled separately from simple SMS messages.
30
31   Priority: Low
32   Complexity: C8
33
34 - See / Cancel pending SMS messages over DBus.  When oFono sends SMS messages
35   the method call is only returned when the message has been submitted to the
36   network.  Instead we should return an object path and allow cancellation of
37   pending messages.
38
39   Priority: High
40   Complexity: C2
41   Owner: Yang Gu <yang.gu@intel.com>
42
43 - Persist outgoing SMS messages.  Currently oFono persists incoming messages
44   that are fragmented.  However oFono does not persist queued outgoing
45   messages.  oFono should persist such messages and restore / requeue them
46   on the next oFono startup.
47
48   Priority: High
49   Complexity: C1
50   Owner: Kristen Carlson Accardi <kristen@linux.intel.com>
51
52 - Add CDMA support to the SMS stack. The idea is to support only the PDU
53   mode. To start with only Submit and Deliver message handling for WMT
54   teleservice will be added to bring the basic CDMA SMS send and receive
55   functionality.
56
57   Priority: Low
58   Complexity: C8
59   Owner: Rajesh Kadhiravan Nagaiah <Rajesh.Nagaiah@elektrobit.com>
60
61 - Add CDMA Delivery(Status) Report handling to the SMS stack.
62
63   Priority: Low
64   Complexity: C4
65   Owner: Rajesh Kadhiravan Nagaiah <Rajesh.Nagaiah@elektrobit.com>
66
67 - Add CDMA Voice Mail Notification handling to the SMS stack. In CDMA the
68   Message Waiting indication is notified through a specific teleservice ID
69   VMN. No update to corresponding elementary files required since they are
70   not present in the R-UIM. This will result in the message waiting
71   indication being initially processed within the SMS atom and then being
72   passed for delivery to the message waiting atom. Furthemore note that in
73   CDMA only voice mail type is supported.
74
75   Priority: Low
76   Complexity: C4
77   Owner: Rajesh Kadhiravan Nagaiah <Rajesh.Nagaiah@elektrobit.com>
78
79 SIM / SIM File system
80 =====================
81
82 - Read / Write EFcfis.  Call forwarding settings can be bootstrapped on the
83   SIM for faster notification of the user that call forwarding is active.
84   These settings are stored in EFcfis.  oFono should read these settings and
85   update the call forwarding atom appropriately.
86
87   Priority: Low
88   Complexity: C2
89   Owner: Jeevaka Badrappan <jeevaka.badrappan@elektrobit.com>
90
91 - SIM Call History plugin.  New UICCs support four new SIM elementary files
92   for storing call history information on the SIM: EFici, EFict, EFoci, EFoct.
93   A plugin should be developed for oFono that will write to these files.
94
95   Priority: Low
96   Complexity: C2
97
98 - Support proprietary extensions for SIM PIN retry counter.  Most vendors
99   provide an extension commands to obtain such a retry counter for PINs and
100   PUKs.  Need to enable this as a property in oFono.
101
102   Priority: Low
103   Complexity: C2
104
105 - Add support for SIM 'ready' notifications from the driver to the core.  Most
106   modem manufacturers initialize the SIM (e.g. cache SIM file system, STK
107   initialization, etc) internally before allowing the telephony stack to
108   access these portions.  When the PIN is locked, this can lead to oFono being
109   too fast for the modem and asking it for things before the firmware is ready.
110
111   The proposal is to introduce a new sim function:
112     void ofono_sim_ready_notify(struct ofono_sim *sim);
113
114   When oFono determines the SIM PIN is READY, it checks whether
115   ofono_sim_ready_notify has been called.  If it hasn't, then it stalls the
116   initialization procedure (and calling post_sim) until
117   ofono_sim_ready_notify is called.
118
119   Priority: High
120   Complexity: C2
121   Owner: Pekka Pessi <pekka.pessi@nokia.com>
122
123
124 Modem Emulator
125 ==============
126
127 - Support HFP AG emulator.  We should provide a new HFP_AG_EMULATOR atom type
128   that will implement the Bluetooth HFP AG profile.  Voicecall atom, netreg
129   atoms can register command handlers for this atom appropriately.
130
131   Complexity: C4
132   Priority: Medium
133
134 - Support extensions to HFP AG emulator.  Some carkits support additional
135   AT command extensions to the Bluetooth HFP AG standard.  Refer to CE4A
136   white paper: "AT-commands for Automotive Premium Phone Integration".
137   Plugins can register additional command handlers appropriately to handle
138   such commands.
139
140   Complexity: C4
141   Priority: Medium
142   Depends: HFP AG emulator
143
144 - Support HSP AG.  Similar to HFP AG emulator but implements the much reduced
145   Bluetooth HSP AG profile.
146
147   Priority: Low
148   Complexity: C1
149
150 - Support DUN emulator. Implement the Bluetooth DUN profile with only mandatory
151   AT command support.
152
153   Complexity: C4
154   Priority: Medium
155
156   Depends: PPP Server mode
157
158 - Support Bluetooth SPP profile.
159
160   Complexity: C4
161   Priority: Medium
162
163
164 Flight Mode
165 ===========
166
167 - Flight Mode support.  Add an 'Online' property to the Modem interface that
168   will control the online state of the modem.  When Online state is True all
169   atoms are available.  When Online state is False, all network related items
170   are removed (e.g. CallSettings) or enter into reduced functionality set
171   where only the SIM is available (e.g. DataConnectionManager, SimManager, etc)
172
173   Complexity: C4
174   Priority: High
175   Owner: Pekka Pessi <pekka.pessi@nokia.com>
176
177
178 GPRS
179 ====
180
181 - PPP Server support.  Extend GAtPPP to support PPP Server role, similarly to
182   how existing GSM modems support PPP GPRS contexts.
183
184   Priority: High
185   Complexity: C2
186
187 - IPv6 CP support.  To support IPv6 based GPRS contexts via PPP, GAtPPP
188   needs to be updated to support IPv6CP from RFC 2472.
189
190   Priority: Low
191   Complexity: C4
192
193 - Add support for IPv6 GPRS contexts.
194
195   Priority: Medium
196   Complexity: C1
197
198
199 Location Services
200 =================
201
202 - Neighbor Cell Info.  Add dedicated atom, D-Bus API and atom driver(s) for
203   Neighbor Cell information.
204
205   This feature is not discussed in 27.007, thus manufacturer specific commands
206   are required.
207
208   Complexity: C4
209   Priority: Medium
210
211
212 Supplementary Services
213 ======================
214
215 - Closed User Group (CUG) support.
216
217   Priority: Low
218   Complexity: C8
219
220 - Call Completion to Busy Subscriber (CCBS) support
221
222   This feature is not discussed in 27.007, thus manufacturer specific commands
223   are required.
224
225   Priority: Low
226   Complexity: C8
227
228 - Calling Name Presentation (CNAP) support
229
230   Priority: Low
231   Complexity: C2
232
233 - User to User Signaling (UUS) support
234
235   Priority: Low
236   Complexity: C8
237
238 - Multiple Subscriber Profile (MSP) support
239
240   Priority: Low
241   Complexity: C2
242
243 - Called Line Identification.  This affects both call_settings and voicecall
244   atoms.  3GPP service is accessed by the +CDIP command.
245
246   Priority: Low
247   Complexity: C4
248
249 - CPHS Support.  This includes ALS and CPHS specific elementary files.
250
251   Priority: Low
252   Complexity: C8
253
254
255 Voicecall
256 =========
257
258 - Supplementary service notifications on remote party actions:
259   - call has been put on hold (+CSSU: 2)
260   - call has been retrieved (+CSSU: 3), and
261   - joining call to a multiparty conference (+CSSU: 4)
262
263   Priority: Medium
264   Complexity: C1
265   Owner: Pekka Pessi <pekka.pessi@nokia.com>
266
267 - Long phone numbers. According to 3GPP TS 24.008, the callee address
268   can be up to 80 digits long.
269
270   Priority: Medium
271   Complexity: C2
272
273 - Dial strings. Include CLIR prefixes and 2nd stage dial strings in the
274   DialString call property. Add dialstring accessor method to C API.
275
276   Priority: Medium
277   Complexity: C4
278
279 - Provide feedback of sent DTMF tones. Emit SendingTones signal if modem can
280   provide approximate starting and stopping times for DTMF tones. Signal
281   argument contains a string of DTMF tones to be sent, or empty string when
282   all tones has been sent.
283
284   Priority: Medium
285   Complexity: C2
286   Owner: Pekka Pessi <pekka.pessi@nokia.com>
287
288
289 Sim Toolkit
290 ===========
291
292 - Support Refresh proactive command.  The specification defines 7 types
293   of Refresh types:
294         - NAA Initialization
295         - NAA File Change Notification
296         - NAA Initialization and File Change Notification
297         - NAA Initialization and Full File Change Notification
298         - UICC Reset
299         - NAA Application Reset (2G only)
300         - NAA Session Reset (3G only)
301
302   The 'NAA Initialization' type will be ignored by oFono, it is assumed
303   this is handled by the modem.
304
305   For 'UICC Reset', 'NAA Application Reset' and 'NAA Session Reset' oFono
306   will first check whether there are any calls or ussd operations active.
307   If there are, the appropriate response will be sent (e.g. busy on call
308   or screen busy terminal response.)  Otherwise a positive response will be
309   sent to the driver.  In the case of a 'UICC Reset' the driver / modem
310   can interpret this that it is safe to reset the UICC.
311
312   Alternatively, the driver / modem can notify the core of the SIM removal
313   / SIM insertion events without using the Refresh proactive command.  It
314   is up to the driver / modem to perform a warm reset.  In particular, 3GPP
315   31.111 mandates that any change to EFimsi is done by using 'UICC Reset',
316   'NAA Application Reset' or 'NAA Session Reset'.  Please see 3GPP 31.111
317   Section 6.4.7.1.
318
319   Other types will be handled by oFono flushing the EF cache of the files
320   affected (or the entire SIM cache in case of Full File Change Notifications)
321   and re-reading the affected files.  Any properties derived from these
322   Elementary Files will be updated and signaled using PropertyChanged.
323
324   Priority: High
325   Complexity: C8
326
327 - Support Send Short Message proactive command.
328
329   Priority: High
330   Complexity: C2
331   Owner: Andrzej Zaborowski <andrew.zaborowski@intel.com>
332
333 - Support Set Up Call proactive command.  If the UICC has indicated that
334   the user should be informed, then the SimToolkitAgent will be called
335   in order to request user's confirmation of the call setup.  If the user
336   has confirmed, or if user's confirmation was not requested, oFono will
337   setup the call and optionally inform the user.
338
339   Priority: High
340   Complexity: C8
341
342 - Support Language Notification proactive command.
343
344   Priority: Medium
345   Complexity: C1
346   Owner: Jeevaka Badrappan <jeevaka.badrappan@elektrobit.com>
347
348 - Support Provide Local Information.  Whenever oFono receives a Provide Local
349   Information proactive command, it should check the type of the information
350   requested.  If the information is about the time/date or the language of the
351   terminal, it should respond to the command with the appropriate terminal
352   response.  Otherwise, it will respond with an error.
353
354   Priority: High
355   Complexity: C2
356   Owner: Yang Gu <yang.gu@intel.com>
357
358
359 Emergency Calls
360 ===============
361
362 - Modem Emergency mode.  Support network registration and online/offline
363   mode during the emergency calls and related network activity (e.g.,
364   network-initiated location request via supplementary service channel).
365
366   Proposed solution is to introduce a new Emergency boolean property to the
367   Modem D-Bus interface and new functions to modem interface:
368
369   - ofono_modem_emergency_mode_inc()
370   - ofono_modem_emergency_mode_dec()
371   - ofono_modem_emergency_mode_get()
372   - ofono_modem_add_emergency_mode_watch()
373   - ofono_modem_remove_emergency_mode_watch()
374
375   When emergency mode is requested, modem is set to online (if needed) and
376   the watchers are notified. There can be multiple parties requesting
377   emergency mode.  When all of them have completed the emergency-related
378   operation and called ofono_modem_emergency_mode_dec(), modem is set to
379   offline (if needed) and the watchers are again notified.
380
381   Priority: High
382   Complexity: C2
383
384 - Country / Operator specific emergency numbers.  Figure out how to support
385   countries / operators with specific mandated emergency numbers which are
386   not part of the standard emergency number list. This needs to be queried
387   by the voicecall atom every time a new SIM is inserted.  The list is
388   assumed to be managed by the modem.  If no such functionality is available,
389   then the 3GPP mandated behavior is used.
390
391   Priority: High
392   Complexity: C2
393
394 - Network updating the emergency number list. Support the list of emergency
395   numbers dynamically updated by the network.
396
397   Priority: High
398   Complexity: C2
399
400 - Extend the voicecall interface with a property indicating whether this call
401   is an emergency call (essentially the CLI matches one of the numbers on the
402   emergency calling codes list.)
403
404   Priority: High
405   Complexity: C1
406
407
408 Miscellaneous
409 =============
410
411 - Bluetooth SAP Client support.  The Telit UC864-G devices support Bluetooth
412   SAP client mode.  This requires the use of a modem side-channel to read the
413   APDU & CPDU data and send it to the remote phone device over Bluetooth RFCOMM
414   channel.
415
416   Complexity: C4
417   Priority: Low
418
419 - Frequency Band Selection.  Add frequency band selection capability to the
420   RadioSettings atom.
421
422   This feature is not discussed in 27.007, thus manufacturer specific commands
423   are required.
424
425   Complexity: C2
426   Priority: Low
427
428 - PolicyKit support.  Add support for PolicyKit checking of all oFono D-Bus
429   interfaces.
430
431   Complexity: C4
432   Priority: Low
433
434 - Internet Access Provider database.  Have oFono automatically configure
435   GPRS contexts based on an internal database.  Database format to be decided.
436   If there are multiple matches in the database, then some user intervention
437   might be required.
438
439   Priority: Medium
440   Complexity: C8
441
442 - Support for modem 'silent' reset notifications.  oFono will remove all atoms
443   and re-initialize.
444
445   Priority: Medium
446   Complexity: C2
447   Owner: Gustavo F Padovan <padovan@profusion.mobi>
448
449 - Add support for Modem 'power down & lock' and 'unlock & power up'.  When the
450   'power down & lock' is given, the calling application is noted and all
451   other applications are blocked from powering up the modem.  Only the calling
452   application can lift the lock.  Alternatively, if the calling application
453   exits prematurely the lock is lifted as well.
454
455   The proposed property name is "Lockdown" as part of the Modem interface.
456
457   Priority: Medium
458   Complexity: C2
459
460 - TTY (hearing impaired) support.  Add a new oFono atom type that will enable
461   the user to enable or disable the TTY support on the modem.  Support for
462   automatic detection of TTY (signaled by the driver) is also desired.
463
464   This feature is not discussed in 27.007, thus manufacturer specific commands
465   are required.
466
467   Priority: High
468   Complexity: C1
469   Owner: Lucas De Marchi <lucas.demarchi@profusion.mobi>
470
471 - Add support for GPS power control atom.  Many modem manufacturers provide
472   a GPS unit with their modem hardware.  This unit can be turned on or off
473   and frequently takes over one of the tty ports that the modem provides.
474
475   This feature is not discussed in 27.007, thus manufacturer specific commands
476   are required.
477
478   Priority: Low
479   Complexity: C4