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