TODO: Remove Owners from orphaned tasks
[platform/upstream/ofono.git] / TODO
1 Background
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 - Asynchronously acknowledge SMS DELIVER messages sent by the SMS driver
35   to core using ofono_sms_deliver_notify().  This may require the struct
36   ofono_sms_driver to be extended with one more function pointer like:
37     void (*deliver_ack)(unsigned char *pdu, int len, cb_t cb, void *data)
38   because currently messages are automatically acknowledged by either the
39   modem (this is the case of some AT modems) or the driver right after
40   ofono_sms_deliver_notify() and a failure to deliver at an upper level is
41   ignored.  The PDU can be an RP-ACK or RP-ERROR message with optional
42   TP-User-Content element, for example if returned from USIM Data Download.
43
44   Priority: Low
45   Complexity: C2
46
47 SIM / SIM File system
48 =====================
49
50 - SIM Call History plugin.  New UICCs support four new SIM elementary files
51   for storing call history information on the SIM: EFici, EFict, EFoci, EFoct.
52   A plugin should be developed for oFono that will write to these files.
53
54   Priority: Low
55   Complexity: C2
56
57 - Add support for SIM 'ready' notifications from the driver to the core.  Most
58   modem manufacturers initialize the SIM (e.g. cache SIM file system, STK
59   initialization, etc) internally before allowing the telephony stack to
60   access these portions.  When the PIN is locked, this can lead to oFono being
61   too fast for the modem and asking it for things before the firmware is ready.
62
63   The proposal is to introduce a new sim function:
64     void ofono_sim_ready_notify(struct ofono_sim *sim);
65
66   When oFono determines the SIM PIN is READY, it checks whether
67   ofono_sim_ready_notify has been called.  If it hasn't, then it stalls the
68   initialization procedure (and calling post_sim) until
69   ofono_sim_ready_notify is called.
70
71   Priority: High
72   Complexity: C2
73
74 - Add support for CPHS Customer Service Profile (CSP).  This task adds support
75   for reading the EFcsp file and in particular, interpreting the PLMN mode bit
76   within the 'Value Added Services' service group.
77
78   Based on the PLMN mode value, manual network selection needs to either be
79   enabled or disabled in the netreg atom.  Also to accommodate this, there
80   probably needs to be a new 'forced' mode to indicate that manual network
81   selection is disabled.
82
83   Priority: Medium
84   Complexity: C1
85
86 - Support SIM authentication: SIM and AKA suites.
87
88   Priority: Medium
89   Complexity: C4
90
91 - Support SIM authentication: GBA_U suite.
92
93   Priority: Low
94   Complexity: C4
95
96 - ISIM support
97
98   ISIM is the SIM application for IP Multimedia Subsystem, specified in
99   3GPP TS 31.103. The UICCs can support multiple ISIMs for different IMS
100   identities.
101
102   Priority: Low
103   Complexity: C4
104
105
106 Modem Emulator
107 ==============
108
109 - Support HFP AG emulator.  We should provide a new HFP_AG_EMULATOR atom type
110   that will implement the Bluetooth HFP AG profile.  Voicecall atom, netreg
111   atoms can register command handlers for this atom appropriately.
112
113   Complexity: C4
114   Priority: Medium
115   Owner: Frédéric Danis <frederic.danis@linux.intel.com>
116
117 - Support extensions to HFP AG emulator.  Some carkits support additional
118   AT command extensions to the Bluetooth HFP AG standard.  Refer to CE4A
119   white paper: "AT-commands for Automotive Premium Phone Integration".
120   Plugins can register additional command handlers appropriately to handle
121   such commands.
122
123   Complexity: C4
124   Priority: Medium
125   Depends: HFP AG emulator
126   Owner: Frédéric Dalleau <frederic.dalleau@linux.intel.com>
127
128 - Support HSP AG.  Similar to HFP AG emulator but implements the much reduced
129   Bluetooth HSP AG profile.
130
131   Priority: Low
132   Complexity: C1
133   Owner: Frédéric Dalleau <frederic.dalleau@linux.intel.com>
134
135 - Support DUN emulator. Implement the Bluetooth DUN profile with only mandatory
136   AT command support. Implement USB DUN as well.
137
138   Complexity: C4
139   Priority: Medium
140
141   Depends: PPP Server mode
142
143 - Support Bluetooth SPP profile.
144
145   Complexity: C4
146   Priority: Medium
147
148
149 PPP
150 ===
151
152 - IPv6 CP support.  To support IPv6 based GPRS contexts via PPP, GAtPPP
153   needs to be updated to support IPv6CP from RFC 2472.
154
155   Priority: Low
156   Complexity: C4
157
158 - ACFC support.  Extend GAtPPP to support packets with Address & Control Field
159   Compression enabled.  Refer to RFC 1662 for details.
160
161   Priority: Medium
162   Complexity: C1
163
164 - PFC support.  Extend GAtPPP to support packets with Protocol field
165   compression enabled.  Refer to RFC 1661 for details.
166
167
168 Location Services
169 =================
170
171 - Neighbor Cell Info.  Add dedicated atom, D-Bus API and atom driver(s) for
172   Neighbor Cell information.
173
174   This feature is not discussed in 27.007, thus manufacturer specific commands
175   are required.
176
177   Complexity: C4
178   Priority: Medium
179
180
181 Supplementary Services
182 ======================
183
184 - Closed User Group (CUG) support.
185
186   Priority: Low
187   Complexity: C8
188
189 - Call Completion to Busy Subscriber (CCBS) support
190
191   This feature is not discussed in 27.007, thus manufacturer specific commands
192   are required.
193
194   Priority: Low
195   Complexity: C8
196
197 - User to User Signaling (UUS) support
198
199   Priority: Low
200   Complexity: C8
201
202 - Multiple Subscriber Profile (MSP) support
203
204   Priority: Low
205   Complexity: C2
206
207 - CPHS Support.  This includes ALS and CPHS specific elementary files.
208
209   Priority: Low
210   Complexity: C8
211
212 - Call forwarding state handling change
213
214   At the moment call forwarding states are not always correct. Any active
215   conditional call forwarding should become quiescent while unconditional call
216   forwarding is activate. If call forwarding unconditional is subsequently
217   deactivated, all the quiescent forwardings should become operative again.
218   I.e. No conditional call forwardin string should be returned while
219   unconditional call forwarding is active even if they exist.
220
221   If there is an successful attempt to activate/deactivate conditional call
222   forwarding while unconditional call forwarding is active the conditional cache
223   flag should cleared.
224
225   Priority: Low
226   Complexity: C1
227
228
229 Voicecall
230 =========
231
232 - Dial strings. Include CLIR prefixes and 2nd stage dial strings in the
233   DialString call property. Add dialstring accessor method to C API.
234
235   Priority: Medium
236   Complexity: C4
237
238 - Provide feedback of sent DTMF tones. Emit SendingTones signal if modem can
239   provide approximate starting and stopping times for DTMF tones. Signal
240   argument contains a string of DTMF tones to be sent, or empty string when
241   all tones has been sent.
242
243   Priority: Medium
244   Complexity: C2
245
246 - Blacklisting. According to 3GPP TS 22.001 annex E, the TE must provide
247   automatic calling repeat call attempt restrictions.
248
249   There should be a method to manually reset blacklisting.
250
251   Priority: Medium
252   Complexity: C1
253
254
255 Sim Toolkit
256 ===========
257
258 - Support of the BIP (Bearer Independent Protocol) proactive commands.
259   The specification defines several bearer types. For now, only the packet data
260   service bearer is considered.
261
262         - OPEN CHANNEL: requests the terminal to open a data channel with
263         parameters indicated in the command. A user confirmation may be
264         requested by the SimToolkitAgent.
265         - CLOSE CHANNEL:requests the terminal to close the specified data
266         channel.
267         - RECEIVE DATA:requests the terminal to return to the UICC data
268         received on the specified channel.
269         - SEND DATA:requests the terminal to send on the specified channel data
270         provided by the UICC.
271         - GET CHANNEL STATUS: requests the terminal to return the current
272         status of all available data channels.
273
274   Priority: Medium
275   Complexity: C4
276   Owner: Philippe Nunes <philippe.nunes@linux.intel.com>
277
278 - Support Setup Event List proactive command.
279   To fully support the class 'e', the following events
280         -Data Available event
281         -Channel status event
282   shall be monitored by oFono if part of the current event list.
283   This list is supplied by the last SETUP EVENT LIST command.
284
285   Priority: Medium
286   Complexity: C2
287   Owner: Philippe Nunes <philippe.nunes@linux.intel.com>
288
289 Emergency Calls
290 ===============
291
292 - Network / Modem updating of the emergency number list. Support the list of
293   emergency numbers dynamically updated by the network or by the modem (e.g.
294   additional numbers burned into modem ROM).
295
296   Priority: High
297   Complexity: C2
298
299
300 Miscellaneous
301 =============
302
303 - Bluetooth SAP Client support.  The Telit UC864-G devices support Bluetooth
304   SAP client mode.  This requires the use of a modem side-channel to read the
305   APDU & CPDU data and send it to the remote phone device over Bluetooth RFCOMM
306   channel.
307
308   Complexity: C4
309   Priority: Low
310
311 - PolicyKit support.  Add support for PolicyKit checking of all oFono D-Bus
312   interfaces.
313
314   Complexity: C4
315   Priority: Low
316
317 - Internet Access Provider database.  Have oFono automatically configure
318   GPRS contexts based on an internal database.  Database format to be decided.
319   If there are multiple matches in the database, then some user intervention
320   might be required.
321
322   Priority: Medium
323   Complexity: C8
324
325 - Add Location Service API for providing basic E911 support.
326   This will be based on the 27.007 defined AT commands using
327   XML for transport of positioning request and responses.
328
329   Priority: Medium
330   Complexity: C2
331
332 - Add support for main.conf.  This task will add support for general
333   as well as per-atom configuration options that are read and parsed
334   at startup from a configuration file under /etc/ofono.
335
336   Priority: Medium
337   Complexity: C1
338
339 CDMA Voicecall
340 ==============
341
342 - Add support for Mobile Originated and Mobile Terminated Voice Call over
343   a CDMA network. This includes management of call state and providing
344   appropriate values for the LineIdentification in each case.
345
346   Priority: High
347   Complexity: C2
348
349 - Add support for Three-Way Calling over a CDMA network. Three-Way Calling
350   provides the subscriber with the capability to add a third party to an
351   established two-party call, so that all three parties may communicate in a
352   three-way call.
353
354   In CDMA mode, the originating subscriber of a current conversation can
355   request for a third party to be added to a conversation by sending a Flash
356   With Information Message (FWIM) with dialed digits to the network. Upon
357   setting up a two-way conversation with the added party, the originating
358   subscriber can request to establish a three-way conversation by sending
359   another Flash With Information Message. Upon receiving the second Flash With
360   Information Message, the MSC reconnects the original party to the
361   conversation thus completing the setup of a three-way conversation.
362
363   CDMA Three-Way Calling is described by Figure B-5 in 3GPP2 C.S0005-E Version
364   2.0.
365
366   Priority: High
367   Complexity: C2
368
369 - Add support for Call Waiting over a CDMA network. Call Waiting (CW) provides
370   notification of an incoming call to an originating subscriber, while the
371   subscriber's call is in the 2-way state. Subsequently, the originating
372   subscriber can either answer or ignore the incoming call. If the originating
373   subscriber answers the second call, it may alternate between the two calls.
374
375   In CDMA mode, the originating subscriber of a current conversation will
376   receive either a Flash With Information Message or an Alert With Information
377   Message from the network if there is an additional mobile terminated voice
378   call incoming. The originating subscriber can change conversation parties by
379   sending a Flash With Information Message to the network and the MSC will
380   toggle the speech path between the two conversations.
381
382   CDMA Call Waiting is described by Figure B-6 in 3GPP2 C.S0005-E Version
383   2.0.
384
385   Priority: High
386   Complexity: C2
387
388 - Support sending DTMF tones over CDMA network.
389
390   Priority: High
391   Complexity: C2
392
393 - Support optional network-based Plus Code Dialing for international calls over
394   a CDMA network. An input key, e.g. the "+" key, or a functional equivalent
395   can be used to replace the international access prefix when dialing. When
396   received, transmitted or stored, an international indicator can be included
397   with the address digits although it is the responsibility of the network to
398   ignore the international indicator when attached to a national number. This
399   is described in Section 2.7.1.3.2.4 of 3GPP2 C.S0005-E v2.0 and Section 1.2
400   of 3GPP2 N.S0027 v1.0.
401
402   Priority: High
403   Complexity: C2
404
405 CDMA SMS
406 ==============
407
408 - Support CDMA SMS stack in PDU mode. This includes basic support of
409   SMS Point-to-Point Message, SMS Broadcast Message and SMS Acknowledge
410   Message as per 3GPP2 C.S0015-B version 2.0.
411
412   Priority: High
413   Complexity: C4
414
415 - Support sending Wireless Messaging Teleservice (WMT) Submit Message and
416   receiving WMT Deliver Message as defined 3GPP2 C.S0015-B version 2.0.
417
418   Priority: High
419   Complexity: C4
420
421 - Support Delivery Acknowledgment. oFono allows requesting of CDMA SMS
422   Delivery Acknowledgment via the MessageManager's
423   UseDeliveryAcknowledgement property. If enabled, oFono's CDMA SMS stack
424   will encode the Reply Option subparameter in the Submit message and
425   process incoming SMS Delivery Acknowledgment Message. oFono will notify
426   UI either via DBus or history plugin API.
427
428   Priority: Medium
429   Complexity: C2
430
431 - Support receiving Voice Mail Notification (VMN) Teleservice Deliver
432   message. CDMA network uses VMN Teleservice to deliver the number of
433   messages stored at the Voice Mail System to the CDMA mobile subscriber.
434
435   Priority: High
436   Complexity: C4
437
438 - Support sending Wireless Enhanced Messaging Teleservice (WEMT) Submit
439   Message and receiving WEMT Deliver Messsage as defined 3GPP2 C.S0015-B
440   version 2.0.
441
442   WMT does not support message fragmentation thus can not be used to for
443   long message. WEMT is devised to support long message and Enhanced
444   Messaging Service (EMS). The WEMT SMS message's CHARi field of the
445   subparameter User Data encapsulate GSM-SMS TP-User Data as defined in
446   Section 9.2.3.24 of 3GPP TS 23.040.
447
448   Priority: Medium
449   Complexity: C4
450
451 - Support sending Wireless Application Protocol (WAP) Teleservice Submit
452   Message and receiving WAP Deliver Messsage as defined 3GPP2 C.S0015-B
453   version 2.0.
454
455   Priority: Medium
456   Complexity: C4
457
458 - Support Call-Back Number. The Call-Back Number subparameter indicates
459   the number to be dialed in reply to a received SMS message.
460
461   In transmit direction, oFono allows setting of Call-Back Number. If the
462   Call Back Number property is set, CDMA SMS stack will encode Call-Back
463   Number subparameter in the Submit Message.
464
465   In receiving direction, oFono will process the Call-Back Number
466   subparameter in the incoming Deliver Message and notify UI of the
467   Call-Back Number together with the newly received text message.
468
469   Priority: Medium
470   Complexity: C2
471
472 - Support immediately displayed message. oFono CDMA SMS stack will
473   process the optional Message Display Mode subparameter in the incoming
474   SMS message. If Message Display Mode subparameter indicates the
475   message display mode is Immediate Display, oFono will send
476   ImmediateMessage signal, otherwise oFono will send IncomingMessage
477   signal.
478
479   Priority: Medium
480   Complexity: C2
481
482
483 CDMA CMAS
484 ==============
485
486 - Support Commercial Mobile Alert Service (CMAS) over CDMA systems. CMAS
487   over CDMA system is defined in TIA-1149. The CMAS message is carried in
488   the CHARi field of the User Data subparameter of CDMA SMS Broadcast
489   message.
490
491   Priority: Medium
492   Complexity: C4
493
494 CDMA Network Acquisition
495 ========================
496
497 - Support reporting of the received signal strength indicator (RSSI)
498   measurement and of the pilot energy ratio (Ec/Io) measurement, for the
499   currently acquired CDMA network.
500
501   Priority: Medium
502   Complexity: C1
503
504 - Support reporting of the received signal strength indicator (RSSI)
505   measurement and of the signal to interference-plus-noise ratio (SINR)
506   measurement, for the currently acquired 1xEV-DO data network.
507
508   Priority: Medium
509   Complexity: C1
510
511 - Support reporting of the Enhanced Roaming Indicators (ERI) to indicate the
512   current roaming condition of the CDMA mobile device. Each indicator maps to
513   a unique display number within the Standard and Non-Standard service ranges,
514   as described in Section 8 of 3GPP2 C.R1001-C v1.0.
515   These numbers are stored on the device in the (Enhanced) Preferred Roaming
516   List (PRL) and it is the responsibility of the modem to broadcast the
517   relevant indicator for a currently acquired system. Further details of the
518   system acquisition process are described in 3GPP2 C.S0016-B v1.0.
519
520   Priority: Medium
521   Complexity: C2
522
523 - Support reporting of identifiers of the currently acquired CDMA network,
524   including the System Identifier (SID) and the Network Identifier (NID),
525   It is the responsibility of the modem to broadcast the relevant identifiers
526   for a currently acquired system, and these identifiers are provided by the
527   network. This is described in 3GPP2 C.S0005-E v2.0.
528
529   Priority: Medium
530   Complexity: C2
531
532 - Support International Roaming, including support for reporting the Mobile
533   Country Code (MCC) and the Mobile Network Code (MNC) for the currently
534   acquired network. International Roaming is provided via enhancements to the
535   PRL by encoding the MCC and the (two digit only) MNC in existing SID/NID
536   fields, as described in the CDMA Development Group standards Document "IPRL
537   Enhancements for International Roaming - CDG Doc #86". It is the
538   responsibility of the modem to broadcast the values for the currently
539   acquired system.
540
541   Priority: Medium
542   Complexity: C2
543
544 CDMA Connection Manager
545 =======================
546
547 - Support Packet Data Service over CDMA (1xRTT and 1xEV-DO) systems. This
548   includes Mobile Originated connection and disconnection features.
549
550   Priority: Medium
551   Complexity: C4
552
553 - Support Network Initiated disconnection of Packet Data Service over CDMA
554   (1xRTT and 1xEV-DO) systems.
555
556   Priority: Medium
557   Complexity: C2