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