1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
|
oFono - Open Source Telephony
*****************************
Purpose
=======
The purpose of this document is to enumerate all major functionality areas
of oFono. In effect, this document will serve as the primary, up to date
source of oFono feature information. It is intended for developers, managers
and users alike to quickly gauge the progress of the project and feature
availability.
Sim Toolkit
===========
Supported Proactive Commands:
- Display Text proactive command support. Upon receiving the proactive
command notification oFono decodes it, including performing character
conversion from packed/unpacked GSM 7bit and UCS2 to UTF-8 encoded text.
The registered agent is then called using the DisplayText method on the
SimToolkitAgent interface to handle the user interaction aspects.
SIM-specified duration are handled. If immediate response to the SIM
is required, oFono sends a terminal response immediately. DisplayText
method is still executed normally, until a timeout occurs or a new
proactive command arrives from the SIM.
- Get Inkey proactive command support. When this command is received,
oFono decodes it and checks what "flavor" it is. Depending on this, the
SimToolkitAgent is called with a different method call:
* If the Get Inkey flavor indicates that this is a simple Yes/No
confirmation, then the RequestConfirmation method is called.
* If the Get Inkey flavor indicates that the SIM only expects digits,
then the RequestDigit method is called.
* Otherwise the RequestKey method is called
SIM specified durations are handled, if the user agent does not respond
in the time allowed, then the 'No Response' Terminal Response is generated
automatically.
- Get Input proactive command support. When this command is received,
oFono decodes it and checks what "flavor" it is. Depending on this, the
SimToolkitAgent is called with a different method call:
* If the Get Input flavor indicates that the SIM only expects digits,
then the RequestDigits method is called.
* Otherwise the RequestInput method is called
- More Time proactive command support. This command is intended to notify
that the SIM is still busy processing a command. For oFono, this proactive
command is a no-op. It is always replied to successfully.
- Setup Menu proactive command support. When this command is received, oFono
parses the new main menu structure and updates its MainMenu and MainMenuTitle
properties which reflect the items, icons and the alpha text of the
proactive command. Soft key support and menu help system are ignored by
oFono.
- Select Item proactive command support. When this command is received, oFono
decodes it and dispatches it to the SimToolkitAgent by calling the
RequestSelection method. This method is passed the menu selection title,
the selectable items and the default, if any.
- Timer Management proactive command support. oFono supports starting,
stopping and querying timer state flavors of this command. Up to eight
timers are supported. This proactive command is handled completely
inside oFono and no external user interaction is required.
- Set Up Idle Mode Text proactive command support. Whenever oFono receives
this proactive command, it updates the IdleText property on the main
SimToolkit interface. Indications that this property has changed are
handled by the usual means.
- Send DTMF proactive command. Whenever oFono receives the Send DTMF command,
it checks that there are calls in progress and DTMF is possible. If so,
DTMF characters are passed to the voicecall atom to be transmitted to the
modem. The appropriate terminal response is sent to the SIM once the DTMF
tones have been played or the call has been disconnected.
NOTE: This command can also be handled by the modem.
- Play Tone proactive command. Whenever oFono receives a Play Tone proactive
command it checks whether the tone is to be continuous/looped or played once.
It then calls the SimToolkitAgent PlayTone or LoopTone method as appropriate.
The sound that will be played will be determined based on the sound type
that is passed to the agent. It is up to the system integrator to provide
the appropriate sounds.
- Send USSD proactive command. Whenever oFono receives a Send USSD proactive
command it checks whether there are any USSD / SS operations in progress.
If an operation is in progress, the appropriate terminal response is sent
without performing the Send USSD operation. Otherwise the USSD string
is sent to the network, and the response is sent back to the SIM in the
terminal response.
NOTE: This command can also be handled by the modem.
- Language Notification proactive command. Whenever oFono receives a Language
Notification proactive command, it prints the language code and sends
terminal response to the SIM immediately.
- Provide Local Information proactive command. Whenever oFono receives a
Provide Local Information proactive command, it checks the type of the
information requested. If the information is about the time/date or the
language of the terminal, it responds to the command with the appropriate
terminal response. The time/date information is obtained using localtime().
The language information is obtained by checking the LANG environment
variable. All other information requests are expected to be handled by
the modem.
- Send Short Message proactive command. Whenever oFono receives a Send SMS
proactive command, it parses the PDU and submits it to the outgoing SMS
queue. A terminal response is sent to the SIM When the raw PDU has been
sent, or failed to be sent.
NOTE: This command can also be handled by the modem.
- Set Up Call proactive command. When oFono receives a Set Up Call proactive
command, it checks whether the UICC has indicated that the user should be
informed. In this case the SimToolkitAgent is called with the
ConfirmCallSetup method. If the user has authorized the operation, or if
the user's confirmation was not indicated oFono will setup the call and
optionally inform the user. The information sent by the SIM will be
available on the resulting voice call object. The relevant properties are
Information and Icon.
NOTE: This command can also be handled by the modem.
- Refresh proactive command. The specification defines 7 types
of Refresh requests:
- NAA Initialization
- NAA File Change Notification
- NAA Initialization and File Change Notification
- NAA Initialization and Full File Change Notification
- UICC Reset
- NAA Application Reset (2G only)
- NAA Session Reset (3G only)
oFono can fully perform the the first four types of Refresh. The
remaining three must be handled by the modem or its driver with a
notification sent to ofono. Regardless of whether the command is
handled by the modem or not, oFono will check whether there are any
calls or ussd operations active. If there are, the appropriate
response will be sent (e.g. busy on call or screen busy terminal
response.) Otherwise a positive response will be sent to the driver.
In the case of a 'UICC Reset' the driver / modem can interpret this
that it is safe to reset the UICC.
Alternatively, the driver / modem can notify the core of the SIM removal
/ SIM insertion events without using the Refresh proactive command. It
is up to the driver / modem to perform a warm reset. In particular, 3GPP
31.111 mandates that any change to EFimsi is done by using 'UICC Reset',
'NAA Application Reset' or 'NAA Session Reset'. Please see 3GPP 31.111
Section 6.4.7.1.
Other types are handled by oFono flushing the EF cache of the files
affected (or the entire SIM cache in case of Full File Change Notifications)
and re-reading the affected files. Any properties derived from these
Elementary Files will be updated and signaled using PropertyChanged.
NOTE: This command can also be handled by the modem.
- Sim icon support. oFono supports icons that are stored on the SIM. If the
SIM notifies oFono that an icon is available for a particular proactive
command, oFono passes this information to the UI. The UI is able to obtain
the icons by using GetIcon method on the SimManager interface. The icons
are read from the SIM and converted into XPM format.
- Text attribute support. Whenever oFono detects that text attributes have
been given to any text or alpha string, it applies them and converts the
resulting text to HTML. The UI is expected to be able to display such
HTML formatted text.
Envelopes:
- Timer Expiration envelope support. Whenever a timer expires (as started by
the Timer Management proactive command) oFono forwards, this envelope type
to the SIM. No external user interaction is required.
- Menu Selection envelope support. The user can initiate a proactive command
session by selecting something from the Sim Toolkit main menu. This is done
by using the SimToolkit's SelectItem method. As a result, oFono will send
the Menu Selection envelope to the SIM.
- CBS-PP Download envelope support. When oFono receives a cell broadcast
and on a channel listed in EFcbmid, it is dispatched to the SIM using the
CBS-PP Download envelope. No user interaction is required or signaled
whenever this occurs.
- SMS-PP Download envelope support. When oFono receives an sms message
addressed to the SIM, it is dispatched to the SIM using the SMS-PP Download
envelope. No user interaction is required or signaled whenever this occurs.
Please note that many current modems do not support returning RP-ACK and
RP-ERROR acknowledgement PDUs back to the network. This is required by the
CAT specification for SMS-PP Download. E.g. the sim response to the SMS-PP
Download Envelope is to be stored in an RP-ACK / RP-ERROR PDU and returned to
the network. It is thus anticipated that modems will transparently handle
this feature in the firmware.
The following commands are expected to be handled by the modem:
- Send SS proactive command. oFono does not explicitly support this proactive
command since AT modems do not provide the low level information necessary
for oFono to generate a valid response. The modem (or driver) shall handle
this command. Optionally the modem (or driver) can inform oFono that the
proactive command has been received and is being handled by the modem, as
well as when the terminal response has been sent by the modem. oFono will
display the necessary user information for this time period if this
information is included in the proactive command.
-----------------------------------------------------------------------
| Feature | Support | Implemented by |
| | | |
-----------------------------------------------------------------------
|Profile Download | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|SMS-PP Data Download | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|Cell Broadcast data Download | YES | BASEBAND or ME |
| | | |
-----------------------------------------------------------------------
|CALL CONTROL BY SIM | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|DISPLAY TEXT | YES | ME |
| | | |
-----------------------------------------------------------------------
|GET INPUT | YES | ME |
| | | |
-----------------------------------------------------------------------
|GET INKEY | YES | ME |
| | | |
-----------------------------------------------------------------------
|MORE TIME | YES | ME |
| | | |
-----------------------------------------------------------------------
|PLAY TONE | YES | ME |
| | | |
-----------------------------------------------------------------------
|POLL INTERVAL | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|POLLING OFF | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|REFRESH | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|SELECT ITEM | YES | ME |
| | | |
-----------------------------------------------------------------------
|SEND SHORT MESSAGE | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|SEND SS | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|SEND USSD | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|SET UP CALL | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|SET UP MENU | YES | ME |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(MCC, MNC, LAC, cellId & | | |
|IMEI) | | |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(NMR) | | |
| | | |
-----------------------------------------------------------------------
|SET UP EVENT LIST | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|EVENT: MT CALL | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|EVENT: CALL CONNECTED | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|EVENT: CALL DISCONNECTED | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|EVENT: LOCATION STATUS | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|EVENT: USER ACTIVITY | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: IDLE SCREEN AVAILABLE | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: CARD READER STATUS | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: LANGUAGE SELECTION | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: BROWSER TERMINATION | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: DATA AVAILABLE | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: CHANNEL STATUS | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: ACCESS TECHNOLOGY | YES | BASEBAND |
| CHANGE | | |
-----------------------------------------------------------------------
|EVENT: DISPLAY PARAMETERS | NO | |
| CHANGED | | |
| | | |
-----------------------------------------------------------------------
|EVENT: LOCAL CONNECTION | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: NETWORK SEARCH MODE | YES | BASEBAND |
| CHANGE | | |
| | | |
-----------------------------------------------------------------------
|POWER ON CARD | NO | |
| | | |
-----------------------------------------------------------------------
|POWER OFF CARD | NO | |
| | | |
-----------------------------------------------------------------------
|PERFORM CARD APDU | NO | |
| | | |
-----------------------------------------------------------------------
|GET READER STATUS | NO | |
|(Card reader status) | | |
| | | |
-----------------------------------------------------------------------
|GET READER STATUS | NO | |
|(Card reader identifier) | | |
| | | |
-----------------------------------------------------------------------
|TIMER MANAGEMENT | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | ME |
|(Date, Time, & Time Zone) | | |
| | | |
-----------------------------------------------------------------------
|SET UP IDLE MODE TEXT | YES | ME |
| | | |
-----------------------------------------------------------------------
|RUN AT COMMAND | YES | BASEBAND |
| | | |
-----------------------------------------------------------------------
|SEND DTMF | YES | BASEBAND-ME |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | ME |
|(Language) | | |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(Timing Advance) | | |
| | | |
-----------------------------------------------------------------------
|Language Notification | YES | ME |
| | | |
-----------------------------------------------------------------------
|LAUNCH BROWSER | YES | ME |
| | (MIN) | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(ACCESS TECHNOLOGY) | | |
| | | |
-----------------------------------------------------------------------
|OPEN CHANNEL | NO | |
| | | |
-----------------------------------------------------------------------
|CLOSE CHANNEL | NO | |
| | | |
-----------------------------------------------------------------------
|RECEIVE DATA | NO | |
| | | |
-----------------------------------------------------------------------
|SEND DATA | NO | |
| | | |
-----------------------------------------------------------------------
|GET CHANNEL STATUS | NO | |
| | | |
-----------------------------------------------------------------------
|SERVICE SEARCH | NO | |
| | | |
-----------------------------------------------------------------------
|GET SERVICE INFORMATION | NO | |
| | | |
-----------------------------------------------------------------------
|DECLARE SERVICE | NO | |
| | | |
-----------------------------------------------------------------------
|Text Attributes | YES | ME |
| | | |
-----------------------------------------------------------------------
|ICONS | YES | ME |
| | | |
-----------------------------------------------------------------------
|Bearer Independent Protocol | NO | |
| | | |
-----------------------------------------------------------------------
|VARIABLE TIMEOUT | YES | ME |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(IMEISV) | | |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(SEARCH MODE CHANGE) | | |
| | | |
-----------------------------------------------------------------------
|Extended Launch Browser | NO | |
|Capability | | |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(battery state) | | |
| | | |
-----------------------------------------------------------------------
|RETRIEVE MULTIMEDIA MESSAGE | NO | |
| | | |
-----------------------------------------------------------------------
|SUBMIT MULTIMEDIA MESSAGE | NO | |
| | | |
-----------------------------------------------------------------------
|DISPLAY MULTIMEDIA MESSAGE | NO | |
| | | |
-----------------------------------------------------------------------
|SET FRAMES | NO | |
| | | |
-----------------------------------------------------------------------
|GET FRAMES STATUS | NO | |
| | | |
-----------------------------------------------------------------------
|PROVIDE LOCAL INFORMATION | YES | BASEBAND |
|(NMR(UTRAN)) | | |
| | | |
-----------------------------------------------------------------------
|USSD Data Download and | NO | |
|application mode | | |
| | | |
-----------------------------------------------------------------------
|EVENT: BROWSING STATUS | NO | |
| | | |
-----------------------------------------------------------------------
|EVENT: MMS TRANSFER STATUS | NO | |
| | | |
-----------------------------------------------------------------------
Modem
=====
- 'silent' modem reset. Sometimes modems get in a bad state and have to reset
itself. Now oFono can be notified when a reset happens and do proper work to
put the modem back to work restoring the state before the reset.
- Lockdown support. Through the Lockdown property on the Modem D-Bus API, one
can power down the modem and lock it disallowing any other application to
use that modem. Useful for firmware update and similar stuff.
Short Messaging Service
=======================
- Unique identifier for incoming and outgoing SMS messages. Whenever a
message is received or sent by oFono, a unique ID is generated for that
message. The id is relevant to all segments of an SMS and in the case of
incoming messages is only generated when the SMS is fully assembled. The
hash used is SHA1. This unique identifier is used to identify the SMS
message to history plugins as well.
- SMS Status Report support. oFono allows requesting of SMS Status Reports
via the MessageManager UseDeliveryReports property. If enabled, oFono
will set the SRR bit and process incoming status reports. oFono takes
care of collating the status reports for multi-fragment messages. Once all
status reports are received, the UI is notified either via DBus or history
plugin API.
- Source / Destination port addressing scheme from 3GPP 23.040. A special
header is used to indicate the source / destination port of the application
this SMS message belongs to. oFono provides a handler registration
framework where plugins can handle the reception of such messages. The
handler can be registered to receive messages which contain a specific
source and destination port, or a wildcard. When such messages are received,
they are matched against the registered handlers and dispatched appropriately.
oFono takes care of de-fragmentation of such SMS messages, so the handler
is informed only once the entire message has been received, and the data
payload has been extracted.
- Smart Messaging Service - vCard support. oFono provides the ability to send
and receive vCard objects through the SmartMessaging interface. vCards can
be sent using the SendBusinessCard method and received using the
SmartMessagingAgent framework.
- Smart Messaging Service - vCalendar support. oFono provides the ability to
send and receive vCalendar objects through the SmartMessaging interface.
vCalendars can be sent using the SendAppointment method and received using
the SmartMessagingAgent framework.
- WAP PUSH notification support. oFono allows the reception of WAP PUSH
messages via SMS through the use of the PushNotification interface and the
PushNotificationAgent framework.
- Persisting of outgoing SMS messages. Whenever oFono is asked to send an SMS
message, it adds it to an internal queue and persists it on disk. The queue
is persistent across reboots of oFono and allows to queue SMS messages even
while the modem is offline.
GPRS
====
- GPRS suspension event support. The packet data service may be temporarily
suspended while a circuit switched service such as voice call or SMS is
active.
- GPRS context protocol support. oFono supports the followig types of GPRS
contexts:
- IPv4
- IPv6
- Dual Stack (IPv4 + IPv6)
- GPRS provisioning support. oFono will automatically configure GPRS contexts
if no prior configuration (e.g. user or provisioning) has been detected.
If the GPRS atom detects that provisioning is required it will query the
inserted sim card for the Service Provider Name and call each registered
provisioning plugin with the MCC, MNC, SPN of the inserted SIM card. If the
provisioning information is provided, then it is used to populate the
initial context configuration.
- GPRS provisioning via 'Mobile Broadband Provider Info'. oFono supports
provisioning of GPRS contexts via Mobile Broadband Provider Info project's
database.
Location Reporting
==================
- GPS support. Many modem manufacturers provide a GPS unit with their modem
hardware. Upon client request oFono can turn this unit on or off and pass a
file descriptor in which client may receive the desired location reporting
data.
SIM
===
- Fixed Dialing support. oFono reads the necessary bits from the SIM to
check if FDN support is allocated and enabled in the SIM. If enabled,
oFono halts the SIM initialization procedure and the modem remains in the
PRESIM state. In this state oFono will only allow emergency calls.
- Barred Dialing support. oFono reads the necessary bits from the SIM to
check if BDN support is allocated and enabled in the SIM. If enabled,
oFono halts the SIM initialization procedure and the modem remains in the
PRESIM state. In this state oFono will only allow emergency calls.
- Read / Write EFcfis / EFcphs-cff. oFono reads EFcfis/EFcphs-cff SIM files
to check if VoiceUnconditional call forwarding rule is enabled. If enabled,
ForwardingFlagOnSim will be set and VoiceUnconditional may contain the
"forwarded to" number if the number is available.
- Support SIM retry counters. oFono exports all the retry counters available on
SIM, e.g., PIN, PIN2, PUK and PUK2. Whenever an action changes them, a signal
is sent with the updated values, so user can keep track of how many times
he/she can still give a wrong pin before the SIM locking down.
Radio settings
==============
- Fast dormancy support. A fast dormancy feature can be enabled in the
cellular modem to conserve power when the end user is not actively
using the device but some networking applications are online using
packet data.
- Frequency Band Selection support. This feature allows the user to limit the
frequency bands in which the cellular modem can operate.
Text Telephony
==============
- TTY (hearing impaired) support, also known as Cellular Text Modem (CTM).
In case it's supported by the modem, oFono allows the user to enabled
or disable it through the TextTelephony interface.
Emergency Calls
===============
- Emergency number reporting. During SIM initialization phase oFono reads
EFecc in order to bootstrap the emergency calling codes provided by the SIM.
Emergency number list is exposed via the EmergencyNumbers property on the
VoicecallManager interface. If SIM is present, list is the union of default
emergency numbers(112, 911), numbers in EFecc and Network / Modem reported
emergency numbers. If SIM is not present or EFecc has not been read yet,
list is the union of default emergency numbers(112, 911) and emergency
numbers without SIM(119, 118, 999, 110, 08 and 000).
- Emergency call reporting. When a voicecall is made to a number present
on the EmergencyNumbers list it is automatically flagged as an emergency
call. This is done by setting the Emergency property on the Voicecall
interface to TRUE.
- Emergency Mode. oFono supports a concept of an 'Emergency Mode'. This mode
is activated when any emergency procedure is ongoing and restricts certain
actions (e.g. setting the modem offline). Emergency procedures are e.g.
ongoing emergency calls, or network initiated location requests related to
the emergency call. The state of the emergency mode is exposed via the
Emergency property on the org.ofono.Modem interface. This property is
intended to be used by power management daemons and other entities which
need to be aware of the ongoing emergency operation.
Supplementary Services
======================
- CNAP support. The Calling Name Presentation supplementary service is
supported by oFono. One can query whether the service is provisioned in the
network by using the CallSettings interface. If the network reports the
calling name, it is presented on the Voicecall interface using the Name
property. If no calling name is given, the Name is empty.
- CDIP support. The Called Line Presentation is supported by oFono. One can
query whether the service is provisioned in the network by using the
CallSettings interface. If the network supports this service, the number
dialed by the remote party is presented through the Voicecall interface using
the IncomingLine property.
Voice Calls
===========
- Long phone number support. oFono supports dialing of phone numbers up to
80 digits long.
- Supplementary service notifications related to mobile originated (MO) and
mobile terminated (MT) calls. oFono supports certain supplementary service
notifications, typically reported by CSSU and CSSI, that are related to
MT/MO calls:
- outgoing call has been forwarded (+CSSI: 2)
- outgoing calls are barred (+CSSI: 5)
- outgoing call barred due to call barring on remote party (+CSSI: 6)
- incoming call is a forwarded call (+CSSU: 0)
- call has been put on hold by the remote party (+CSSU: 2)
- call has been retrieved by the remote party (+CSSU: 3)
- call has been added to a mpty call by the remote party (+CSSU: 4)
Flight Mode
===========
- Flight Mode support. oFono uses the 'Online' property on the Modem interface
that controls the state of the radio. When Online state is False, all
interfaces that depend on the radio being on are removed. Other interfaces
enter reduced functionality mode where only certain actions are available
that do not depend on the radio. E.g. setting various settings on the local
store or the SIM.
Network Registration
====================
- Support for PLMN_MODE bit from CPHS Customer Service Profile (CSP) within
the 'Value Added Services' service group. oFono reads this file when the
network registration atom has been initialized. If EFcsp indicates that
manual network registration is not allowed, oFono enters into 'auto-only'
registration mode. Updates to this file via STK Refresh is also supported.
- Support for 3GPP Service Provider Name (EFspn), CPHS Operator Name
String (ONS) and CPHS Short Operator Name String fields. oFono always
tries to read the EFspn field first. If this is not available, then oFono
tries to read the CPHS variant. If neither are available and the
appropriate bits are set in the CPHS Information field, oFono tries to read
the CPHS Short ONS field. oFono then reports the network name via the
'Name' property.
PPP Stack
=========
- Support for Protocol Field Compression (PFC) packets. The oFono PPP stack
supports both receiving and sending of packets with PFC enabled. The user
can also control whether PFC capability is advertised to the peer, and used
during transmission.
- Support for Address & Control Field Compression (ACFC) packets. The oFono
PPP stack supports both receiving and sending of packets with ACFC enabled.
The user can also control whether ACFC capability is advertised to the peer,
and used during transmission.
Modem Emulator
==============
- Support for Bluetooth HandsFree Profile Audio Gateway (HFP AG). oFono
supports the underlying AT command protocol specified by BT HFP version 1.6.
Supported features include 3-way calling, ability to reject a call,
enhanced call status, enhanced call control, report of extended error results
code and indicator activation. Audio management is assumed to be performed in
another system component, e.g. PulseAudio.
- Support for Bluetooth DUN profile. oFono supports the Dial Up Networking
profile and all mandatory commands specified by BT DUN 1.1. For a list
of supported commands please see doc/dialup-command-set.txt.
CDMA Connection Manager
=======================
- Support Network Initiated disconnection of Packet Data Service over CDMA
(1xRTT and 1xEV-DO) systems.
CDMA Network Acquisition
========================
- Support reporting of the received signal strength indicator (RSSI)
measurement for the currently acquired CDMA network.
- Support reporting of the received signal strength indicator (RSSI)
measurement for the currently acquired 1xEV-DO data network.
Bluetooth Sim Access Profile
============================
- oFono supports certain modems that can utilize remote sim cards
(e.g. via SAP). This is done transparently to the user and all of oFono's
APIs are supported on such devices (assuming the device itself supports
the required features). Today the Telit UC864-G is supported in this mode.
Bluetooth Handsfree Profile
===========================
- Voicecall support. oFono supports the use of Bluetooth Handsfree capable
devices to make voicecalls. All features are supported, including 3-way
calls, multiparty calls, call waiting, etc.
- Support for Handsfree specific protocol features. oFono clients can gain
access to Bluetooth HFP specific features via the oFono Handsfree interface.
These features include voice recognition activation, last number redial,
etc.
|