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