In this chapter we describe possibilities, limits and features of some MEs and SIMs STK developer can come across. We are interested only in STK enabled mobile equipment.
For you as a developer the properties/behaviour of ME are the most important. As of SIM things are simple because Turbo can fake SIM features to ME, and also for most of your applications you do not have to worry about SIM at all.
For STK, Turbo resp., developer there are two main standards which come handy:
These standards describe properties of ME and SIM and communication between them.
Unfortunately in the real world standards are to be interpreted in different ways, misintepreted or implementated badly. Further there are things important for application development but not described anywhere or left upon vendor - implementator. Such example can be usage of T9 or selection from phonebook in case of GET INPUT.
Here we describe several properties of mobile phones we came across during Turbo development.
- We try to collect and post all the ME/SIM information we can get. If you had any information not available here please send it for publication.
During the initialization phase ME and SIM exchange information on what features are supported by either of them:
- ME informs SIM with TERMINAL PROFILE APDU (ref. Ref. 11.14) - a list of bytes where each bit has some defined meaning, usually describing support of STK command or behaviour in some situation
- on SIM there are two EF (Elementary Files) describing SIM capabilities: EF_PHASE and EF_SST. The EF_PHASE simply says version (1,2,3) of SIM (as GSM standard evolved), the EF_SST is more interesting and describes (in bit represenation) SIM services support (e.g. supports STK, phonebook, SMS, etc.)
Application can access both TERMINAL PROFILE (stored in Turbo) and EF_SST (on SIM) to gain information on environment it is running on. To access TERMINAL PROFILE use terminal_profile() call, to access EF_SST (less likely you will ever need it) use read_binary() call.
ME does not have to support all the services supported by SIM (usually new SIM in the older ME). The number of EF_SST bytes read gives indication what services ME does support.
ME and SIM communicate on serial bus with some default speed as defined in ISO 7816 and Ref. 11.11 resp. It is possible to use higher speed (we call it Enhanced speed support) if both ME and SIM support it.
There are the following 4 possible situations how the Turbo flexible cable has to be attached to the SIM PCB.
The Ref. 11.11 describes image (bw and colour) support. Here we describe what kind of image support ME does provide (if any, image size).
Older STK standard allowed only ~160 chars long. Today it allows 240 bytes but you can come accross old device supporting only short text.
In the embedded space power consumption is everything. To save the battery ME can stop clock or lower frequency between APDUs.
To use and be able to restart the Idle Task it is necessary to inform ME that clock should be left on between APDUs. Some phones have no problem with this, however some phones do not allow to reset clock stopping or do not ask SIM at all.
Selecting phone numbers from phonebook in GET INPUT is crutial for many applications (e.g. send SMS to?). Turbo operation system can provide (if compliled in Proc - System Information) fake phonebook support in case ME does not allow such selection.
If T9 usage in GET INPUT is possible. This is too MMI specific and cannot be controled nor emulated by Turbo.
Although Ref. 11.14 says it should be possible to send SMS without user confirmation some ME require extra confirmation.
If ME supports OPEN CHANNEL then of what max buffer size.
Does ME store outgoing SMS on SIM? Crutial for SMS archivation.
This property says if it is possible to resetting clock stopping once clock stopping was allowed. Crutial for Idle Task.
Says if AT+CMGR, AT+CMGW, AT+CMGD commands are supported and whether it is possible to upload applications via cable, Ref. 07.07 for AT commands.
|Copyright © 2004-2006 BLADOX
Turbo version 1.2