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