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