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