Home | History | Annotate | Download | only in porting
      1 page.title=Sim Toolkit Application (STK)
      2 pdk.version=1.0
      3 doc.type=porting
      4 @jd:body
      5 
      6 <div id="qv-wrapper">
      7 <div id="qv">
      8 <h2>In this document</h2>
      9 <a name="toc"/>
     10 <ul>
     11 <li><a href="#androidSTKRILRilUp">Communication from the RIL up</a></li>
     12 <li><a href="#androidSTKRILApplciationDown">Communication from the application down</a></li>
     13 <li><a href="#androidSTKTelephony">Telephony</a></li>
     14 <li><a href="#androidSTKFeatureList">Feature List</a></li>
     15 </ul>
     16 </div>
     17 </div>
     18 
     19 
     20 <p>This document offers a high-level overview of the SIM Toolkit Application for Android 1.0 and is primarily of interest for implementors of the Radio Interface Layer (RIL). The STK is  R96 compatible (3GPP TS 11.14 v5.9.0) and complies partially with R99 (3GPP TS 101.267 v8.17.0). See the <a href="#androidSTKFeatureList">STK Feature List</a> for the complete feature list. </p>.
     21 <p>The Android STK implementation includes three layers:</p> 
     22 <ul> 
     23   <li> STK RIL: Low-level layer provided by the vendor plus <code>libril</code>.</li> 
     24   <li>STK Telephony: Protocol translation layer that converts raw messages provided by the STK RIL to application level messages.</li> 
     25   <li>STK Application: Provides the user interface interactions needed by the STK.</li> 
     26 </ul> 
     27 <p align="left"><br /> 
     28     <img src="images/stk.gif" alt="STK schema" width="566" height="516" /><br /> 
     29 </p> 
     30 <p> The Sim Toolkit communication flow is bi-directional and commands can originate from the <code>STK RIL</code> packaged in <code>RIL_UNSOL_STK_PROACTIVE_COMMAND</code>, <code>RIL_UNSOL_STK_EVENT_NOTIFY</code>, <code>RIL_UNSOL_REFRESH</code> and <code>RIL_UNSOL_STK_SESSION_END</code> messages.</p> 
     31 <p align="left">Commands originating from the STK App or STK Telephony layers are packaged in <code>RIL_REQUEST_STK_SEND_TERMINAL_REPSONSE</code>, <code>RIL_REQUEST_SEND_ENVELOPE_COMMAND</code> or <code>RIL_REQUEST_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM</code>.</p> 
     32 <p align="left">For commands sent or recieved by the STK RIL, it's not necessary to remove unused sub-commands because the upper layers will gracefully ignore unused information contained in the message. The content of each message is encoded in the BER-TLV format except for two:</p> 
     33 <ul> 
     34   <li><code>RIL_UNSOL_STK_SESSION_END</code>: has no data </li> 
     35   <li><code>RIL_REQUEST_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM</code>: has a single byte of data that indicates accept/reject.</li> 
     36 </ul> 
     37 <p>See the <a href="http://pdk-docs.prom.corp.google.com/docs/telephony.html">Android Platform Development Kit</a> for details.</p> 
     38  
     39  
     40 <a name="androidSTKRILRilUp"></a><h4>Communication from the RIL up</h4> 
     41  
     42 <p>Communication to the upper layers is done using the <code>RIL_UNSOL_xxx</code> family of commands defined in <code>/hardware/ril/include/ril.h</code>. The payload for each command is encoded using BER-TLV. As stated above, it is not necessary to remove extraneous fields. This allows the SIM to pass a complete command to the upper layers and simplifies STK RIL code. Below is the mapping from RIL_UNSOL_xxx commands to the SIM commands.</p> 
     43  
     44  
     45 <a name="androidSTKRILRilUpUnsol"></a><h4>RIL_UNSOL_STK_PROACTIVE_COMMAND</h4> 
     46  
     47 <p> The Sim Toolkit communication flow is bi-directional and commands can originate from the <code>STK RIL</code> packaged in <code>RIL_UNSOL_STK_PROACTIVE_COMMAND</code>, <code>RIL_UNSOL_STK_EVENT_NOTIFY</code>, <code>RIL_UNSOL_REFRESH</code> and <code>RIL_UNSOL_STK_SESSION_END</code> messages.</p> 
     48  
     49  
     50 <a name="androidSTKRILRilUpDisplay"></a><h5>DISPLAY TEXT (6.4.1)</h5> 
     51  
     52 <p>This command is handled by <code>StkDialogActivity</code>. If the immediate response flag is set, the terminal response is sent with an "OK" <code>(0x00)</code> result code when the message is first received. Otherwise the terminal response is sent when the dialog is dismissed either from user action or it times out.</p> 
     53 <p>The user sees a dialog box with a message and / or icon, an OK button, and a Cancel button.</p> 
     54 <p>Terminal responses include:</p> 
     55 <ul> 
     56   <li> "OK" (0x00)</li> 
     57   <li> "Session terminated by user" (0x10)</li> 
     58   <li> "Backward move by user" (0x11)</li> 
     59   <li> "No response from user" (0x12)</li> 
     60 </ul> 
     61  
     62 <img src="images/stk_display_text.gif" border="1"> 
     63  
     64  
     65 <a name="androidSTKRILRilUpGetInKey"></a><h5>GET IN KEY (6.4.2)</h5> 
     66  
     67 <P>This command is processed by <code>StkInputActivity</code>. It displays a dialog box with a prompt and or an icon and yes and no buttons.</p> 
     68 <p>Terminal responses include:</p> 
     69 <p> 
     70 <ul> 
     71   <li> OK (0x00) with Yes or No as the response text</li> 
     72   <li> Session terminated by user (0x10) << Currently not supported</li> 
     73   <li> Backward move by user (0x11)</li> 
     74   <li> No response from user (0x12)</li> 
     75 </ul> 
     76 </p> 
     77  
     78  
     79 <a name="androidSTKRILRilUpGetInput"></a><h5>GET INPUT (6.4.3)</h5> 
     80  
     81 <p>This command is handled by <code>StkInputActivity</code>. 
     82 <p>The user sees a dialog box with a prompt and / or an icon, a text box with optional default text, and an OK button. 'digits only,' 'min,' 'max,' and 'hidden' modes are all supported.
     83 <p>Terminal responses include:</p> 
     84 	<ul> 
     85 	  <li>OK (0x00) if the input criteria is met	</li> 
     86       <li>Session terminated by user (0x10) << Currently not supported	</li> 
     87       <li>Backward move by user (0x11)        </li> 
     88       <li>No response from user (0x12) </li> 
     89 </ul> 
     90  
     91  
     92 <a name="androidSTKRILRilUpPlayTone"></a><h5>PLAY TONE (6.4.5)</h5> 
     93  
     94 <p>This command is processed by <code>ToneDialog</code>.</p> 
     95 <p>The user sees a dialog box with a prompt for the duration of the tone or until the user presses the back key.</p> 
     96 <p>Terminal responses include:</p> 
     97 	<ul> 
     98 	  <li>"OK" (0x00) if the tone is played to completion	</li> 
     99       <li>Session terminated by user (0x10)  if back button is pressed </li> 
    100 </ul> 
    101  
    102  
    103 <a name="androidSTKRILRilUpSetMenu"></a><h5>SET UP MENU (6.4.8)</h5> 
    104  
    105 <p>This command is processed by <code>StkAppService</code>. It installs the STK ICON on the home page and prepares the Main menu for use when the ICON is selected. Typically this is the first RIL unsolicited command and should not be sent until after the <code>RIL_RadioFunctions.getVersion</code> routine is called.</p> 
    106 <p>Terminal reponses:</p> 
    107 <ul> 
    108   <li>OK (0x00) </li> 
    109 </ul> 
    110 <p>At a later time, the STK ICON will be selected and <code>StkMenuActivity</code> will launch and display the Main menu to the user. If an item is selected, it will be returned to the RIL in <code>RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND</code> with the item id. If no item is selected, the <code>StkMenuActivity</code> will receive a timeout message and return to the Main menu and no message will be sent to the RIL.</p> 
    111 <p>Depending upon what item is selected, the SIM may perform another action, such as sending another set of menu items via a SELECT ITEM command or performing an action like send an SMS or text display. </p> 
    112  
    113  
    114 <a name="androidSTKRILRilUpSelectItem"></a><h5>SELECT ITEM (6.4.9)</h5> 
    115  
    116 <p>This command is processed by <code>StkMenuActivity</code>. Instead of displaying the Main menu, the list of menu items provided in this command are displayed.</p> 
    117 <p>Terminal responses:
    118 <ul> 
    119   <li> OK (0x00)    </li> 
    120 </ul> 
    121 <p>The command then proceeds as in the SETUP MENU. </p> 
    122  
    123  
    124 <a name="androidSTKRILRilUpSetIdle"></a><h5>SET UP IDLE MODE TEXT (6.4.22)</h5> 
    125  
    126 <p><code>StkAppService</code> displays the message and or icon as an Android notification.</p> 
    127 <p>Terminal responses include:</p> 
    128 	<ul> 
    129 	  <li>OK (0x00)</li> 
    130 </ul> 
    131  
    132  
    133 <a name="androidSTKRILRilUpLaunchBrowser"></a><h5>LAUNCH BROWSER (6.4.26)</h5> 
    134  
    135 <p>This command is initially handled by <code>StkDialogActivity</code> and presents the user with a confirmation dialog, a URL, and OK, and cancel buttons. If the user presses OK, the browser is launched using the URL.</p> 
    136 <p>Terminal responses include:</p> 
    137 	<ul> 
    138 	  <li>OK (0x00) the browser has been launched	    </li> 
    139       <li>Session terminated by user (0x10) </li> 
    140       <li>Backward move by user (0x11)</li> 
    141       <li>No response from user (0x12)</li> 
    142 </ul> 
    143  
    144  
    145 <a name="androidSTKRILRilUpEvent"></a><h4>RIL_UNSOL_STK_EVENT_NOTIFY</h4> 
    146  
    147 <p align="left">The commands in this section are proactive in nature. They are handled by the STK RIL and the upper layers and delivered using <code>RIL_UNSOL_STK_EVENT_NOTIFY</code> message. This distinction is an implementation detail of Android and is not defined in the 3GPP sepcifications.</p> 
    148 <p align="left">The upper layers handle the UI and the STK RIL handles all other aspects of each command, which means that the STK RIL sends the terminal response (it is never sent by the STK App). Each command must be a properlery-formed proactive command. It is not necessary to remove unused fields. The behavior of any other command <em>within this context </em>sent by <code>RIL_UNSOL_STK_EVENT_NOTIFY</code> is undefined. See Event Notify Command Details. </p> 
    149 <ul> 
    150   <li>SEND SMS (6.4.10)  no response</li> 
    151   <li>SEND SS (6.4.11)  no response</li> 
    152   <li>SEND USSD (6.4.12)  no response</li> 
    153   <li>SET UP CALL (6.4.13)  responds with <code>RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM</code></li> 
    154   <li>SEND DTMF (6.4.24)  no response</li> 
    155 </ul> 
    156  
    157 <img src="images/stk_send_SMS.gif"> 
    158  
    159  
    160 <a name="androidSTKRILRilUpUnsolSim"></a><h4>RIL_UNSOL_SIM_REFRESH</h4> 
    161  
    162 <p> Used to send the <code>REFRESH</code> command. No response.</p> 
    163  
    164  
    165 <a name="androidSTKRILRilUpRefresh"></a><h4>REFRESH (6.4.7)</h4> 
    166  
    167 <p><code>RIL_UNSOL_STK_SESSION_END</code></p> 
    168 <p>Sent by the SIM to signal the end of a session. No content and no response.</p> 
    169 <P><img src="images/stk_refresh_init.gif"></p>
    170 <p><img src="images/stk_refresh_update.gif"> </p>
    171 <p><img src="images/stk_refresh_reset.gif"> </p>
    172  
    173  
    174  
    175 <a name="androidSTKRILRilUpRilUnsol"></a><h4>RIL_UNSOL_STK_SESSION_END</h4> 
    176  
    177 <p>Sent by SIM to signal end of session. No content and no response.</p> 
    178  
    179  
    180 <a name="androidSTKRILApplciationDown"></a><h4>Communication from the application down</h4> 
    181  
    182 <p>Communication from the upper layers to the RIL uses the commands below (defined in <code>ril.h</code>):</p> 
    183  
    184  
    185 <a name="androidSTKRILApplciationDownTerminal"></a><h4>RIL_REQUEST_STK_SEND_TERMINAL_REPSONSE</h4> 
    186  
    187 <p> Used to send a terminal response for commands sent via <code>RIL_UNSOL_STK_PROACTIVE_COMMAND</code>. </P> 
    188 <P>Contents include TERMINAL RESPONSE (6.8).</p> 
    189  
    190  
    191 <a name="androidSTKRILApplciationDownEnvelope"></a><h4>RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND</h4> 
    192  
    193 <p>Used to send information from to SIM encoded as BER-TLV tags (see R96  section 13). Two tags are supported:</p> 
    194 <ul> 
    195   <li> BER_MENU_SELECTION_TAG (0xd3); Contents: MENU SELECTION (8)</li> 
    196   <li>BER_EVENT_DOWNLOAD_TAG (0xd6); Contents: EVENT DOWNLOAD Language selection (11.8)</li> 
    197 </ul> 
    198 <P>Content for these tags include:
    199 <ul> 
    200   <li>MENU SELECTION (8)</li> 
    201   <li>EVENT DOWNLOAD Language selection (11.8)</li> 
    202 </ul> 
    203  
    204  
    205  
    206 <a name="androidSTKRILApplciationDownFromSim"></a><h4>RIL_REQUEST_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM</h4> 
    207  
    208 <p>Returns a single-byte parameter:</p> 
    209 <ul> 
    210   <li>1: accepted</li> 
    211   <li>0: not accepted</li> 
    212 </ul> 
    213 <p> This should cause the terminal response to be sent to the SIM.</p> 
    214  
    215  
    216 <a name="androidSTKTelephony"></a><h3>Telephony</h3> 
    217  
    218 <p>STK Telephony is a protocol translation layer used to convert messages from BERL-TLV format to Application messages and back. </p> 
    219 <p>On the STK RIL side, STK Telphony receives raw buffer messages from RIL I/F and decodes them into a command parameters container before passing them on to the application. On the Application side, this layer receives application responses for commands and encodes them into raw buffer messages, which then get sent over the RIL I/F back to the SIM card.</p> 
    220  
    221  
    222 <a name="androidSTKFeatureList"></a><h3>Feature List</h3> 
    223  
    224 <table border="1" cellspacing="2" cellpadding="2"> 
    225   <tr> 
    226     <td><p align="center"><strong>Feature</strong></p></td> 
    227     <td><p align="center"><strong>Support</strong></p></td> 
    228     <td><p align="center"><strong>Implemented by</strong></p></td> 
    229   </tr> 
    230   <tr> 
    231     <td nowrap="nowrap" valign="bottom"><p>PROFILE   DOWNLOAD - before radio turn-on</p></td> 
    232     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    233     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    234   </tr> 
    235   <tr> 
    236     <td nowrap="nowrap" valign="bottom"><p>SET UP   MENU</p></td> 
    237     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    238     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    239   </tr> 
    240   <tr> 
    241     <td nowrap="nowrap" valign="bottom" u1:str="SELECT ITEM "><p>SELECT   ITEM&nbsp;</p></td> 
    242     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    243     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    244   </tr> 
    245   <tr> 
    246     <td nowrap="nowrap" valign="bottom"><p>GET INPUT</p></td> 
    247     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    248     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    249   </tr> 
    250   <tr> 
    251     <td nowrap="nowrap" valign="bottom"><p>GET INKEY</p></td> 
    252     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    253     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    254   </tr> 
    255   <tr> 
    256     <td nowrap="nowrap" valign="bottom"><p>DISPLAY   TEXT</p></td> 
    257     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    258     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    259   </tr> 
    260   <tr> 
    261     <td nowrap="nowrap" valign="bottom" u1:str="SET UP IDLE MODE TEXT   "><p>SET UP   IDLE MODE TEXT&nbsp;&nbsp;&nbsp;</p></td> 
    262     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    263     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    264   </tr> 
    265   <tr> 
    266     <td nowrap="nowrap" valign="bottom" u1:str="SEND SHORT MESSAGE "><p>SEND   SHORT MESSAGE&nbsp;</p></td> 
    267     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    268     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    269   </tr> 
    270   <tr> 
    271     <td nowrap="nowrap" valign="bottom" u1:str="SEND SS "><p>SEND   SS&nbsp;</p></td> 
    272     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    273     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    274   </tr> 
    275   <tr> 
    276     <td nowrap="nowrap" valign="bottom"><p>SEND USSD</p></td> 
    277     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    278     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    279   </tr> 
    280   <tr> 
    281     <td nowrap="nowrap" valign="bottom"><p>SEND DTMF</p></td> 
    282     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    283     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    284   </tr> 
    285   <tr> 
    286     <td nowrap="nowrap" valign="bottom"><p>LAUNCH   BROWSER</p></td> 
    287     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    288     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    289   </tr> 
    290   <tr> 
    291     <td nowrap="nowrap" valign="bottom"><p>SET UP   CALL</p></td> 
    292     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    293     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    294   </tr> 
    295   <tr> 
    296     <td nowrap="nowrap" valign="bottom"><p>PLAY TONE</p></td> 
    297     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    298     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    299   </tr> 
    300   <tr> 
    301     <td nowrap="nowrap" valign="bottom"><p>POLL   INTERVAL</p></td> 
    302     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    303     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    304   </tr> 
    305   <tr> 
    306     <td nowrap="nowrap" valign="bottom"><p>POLLING   OFF</p></td> 
    307     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    308     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    309   </tr> 
    310   <tr> 
    311     <td nowrap="nowrap" valign="bottom" u1:str="TIMER MANAGEMENT "><p>TIMER   MANAGEMENT&nbsp;</p></td> 
    312     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    313     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    314   </tr> 
    315   <tr> 
    316     <td nowrap="nowrap" valign="bottom"><p>MORE TIME</p></td> 
    317     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    318     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    319   </tr> 
    320   <tr> 
    321     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (MCC, MNC, LAC, Cell ID &amp; IMEI)</p></td> 
    322     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    323     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    324   </tr> 
    325   <tr> 
    326     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (NMR)</p></td> 
    327     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    328     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    329   </tr> 
    330   <tr> 
    331     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (Timing Advance)</p></td> 
    332     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    333     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    334   </tr> 
    335   <tr> 
    336     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION(battery state)</p></td> 
    337     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    338     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    339   </tr> 
    340   <tr> 
    341     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (IMEISV)</p></td> 
    342     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    343     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    344   </tr> 
    345   <tr> 
    346     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (NMR(UTRAN))</p></td> 
    347     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    348     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    349   </tr> 
    350   <tr> 
    351     <td nowrap="nowrap" valign="bottom"><p>PROVIDE   LOCAL INFORMATION (Search Mode change)</p></td> 
    352     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    353     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    354   </tr> 
    355   <tr> 
    356     <td nowrap="nowrap" valign="bottom"><p>REFRESH</p></td> 
    357     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    358     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    359   </tr> 
    360   
    361   <tr> 
    362     <td nowrap="nowrap" valign="bottom" u1:str="SET UP EVENT LIST "><p>SET UP   EVENT LIST&nbsp;</p></td> 
    363     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    364     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband  ME</p></td> 
    365   </tr> 
    366   <tr> 
    367     <td nowrap="nowrap" valign="bottom"><p>Event: MT   call</p></td> 
    368     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    369     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    370   </tr> 
    371   <tr> 
    372     <td nowrap="nowrap" valign="bottom"><p>Event:   Call connected (all modes)</p></td> 
    373     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    374     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    375   </tr> 
    376   <tr> 
    377     <td nowrap="nowrap" valign="bottom"><p>Event:   Call disconnected (all modes)</p></td> 
    378     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    379     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    380   </tr> 
    381   <tr> 
    382     <td nowrap="nowrap" valign="bottom"><p>Event:   Idle screen available</p></td> 
    383     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    384     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    385   </tr> 
    386   <tr> 
    387     <td nowrap="nowrap" valign="bottom"><p>Event:   Browser termination</p></td> 
    388     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    389     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    390   </tr> 
    391   <tr> 
    392     <td nowrap="nowrap" valign="bottom" u1:str="Event: Location status "><p>Event:   Location status&nbsp;</p></td> 
    393     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    394     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    395   </tr> 
    396   <tr> 
    397     <td nowrap="nowrap" valign="bottom"><p>Event:   Data available</p></td> 
    398     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    399     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    400   </tr> 
    401   <tr> 
    402     <td nowrap="nowrap" valign="bottom"><p>Event:   Channel status</p></td> 
    403     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    404     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    405   </tr> 
    406   <tr> 
    407     <td nowrap="nowrap" valign="bottom"><p>Event:   Access Technology changed</p></td> 
    408     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    409     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    410   </tr> 
    411   <tr> 
    412     <td nowrap="nowrap" valign="bottom"><p>Event:   Local Connection</p></td> 
    413     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    414     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    415   </tr> 
    416   <tr> 
    417     <td nowrap="nowrap" valign="bottom"><p>Event:   Network Search Mode Change</p></td> 
    418     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    419     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    420   </tr> 
    421   
    422   <tr> 
    423     <td nowrap="nowrap" valign="bottom"><p>GET   READER STATUS</p></td> 
    424     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    425     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    426   </tr> 
    427   <tr> 
    428     <td nowrap="nowrap" valign="bottom"><p>POWER ON   CARD</p></td> 
    429     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    430     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    431   </tr> 
    432   <tr> 
    433     <td nowrap="nowrap" valign="bottom"><p>POWER OFF   CARD</p></td> 
    434     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    435     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    436   </tr> 
    437   <tr> 
    438     <td nowrap="nowrap" valign="bottom"><p>PERFORM   CARD ADPU</p></td> 
    439     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    440     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    441   </tr> 
    442   <tr> 
    443     <td nowrap="nowrap" valign="bottom"><p>RUN AT   COMMAND</p></td> 
    444     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    445     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    446   </tr> 
    447   <tr> 
    448     <td nowrap="nowrap" valign="bottom"><p>OPEN   CHANNEL</p></td> 
    449     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    450     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    451   </tr> 
    452   <tr> 
    453     <td nowrap="nowrap" valign="bottom" u1:str="CLOSE CHANNEL "><p>CLOSE   CHANNEL&nbsp;</p></td> 
    454     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    455     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    456   </tr> 
    457   <tr> 
    458     <td nowrap="nowrap" valign="bottom"><p>RECEIVE   DATA</p></td> 
    459     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    460     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    461   </tr> 
    462   <tr> 
    463     <td nowrap="nowrap" valign="bottom"><p>SEND DATA</p></td> 
    464     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    465     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    466   </tr> 
    467   <tr> 
    468     <td nowrap="nowrap" valign="bottom"><p>GET   CHANNEL STATUS</p></td> 
    469     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    470     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    471   </tr> 
    472   
    473   <tr> 
    474     <td nowrap="nowrap" valign="bottom"><p>CALL   CONTROL BY SIM</p></td> 
    475     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    476     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    477   </tr> 
    478   <tr> 
    479     <td nowrap="nowrap" valign="bottom"><p>SMS-PP   data download</p></td> 
    480     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    481     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    482   </tr> 
    483   <tr> 
    484     <td nowrap="nowrap" valign="bottom"><p>SMS-CB   data download</p></td> 
    485     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    486     <td nowrap="nowrap" valign="bottom"><p align="center">Baseband</p></td> 
    487   </tr> 
    488   <tr> 
    489     <td nowrap="nowrap" valign="bottom" u1:str="BIP over GPRS "><p>BIP over   GPRS&nbsp;</p></td> 
    490     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    491     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    492   </tr> 
    493   <tr> 
    494     <td nowrap="nowrap" valign="bottom"><p>BIP over   USB</p></td> 
    495     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    496     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    497   </tr> 
    498   <tr> 
    499     <td nowrap="nowrap" valign="bottom" u1:str="Text Attributes  "><p>Text   Attributes&nbsp;&nbsp;</p></td> 
    500     <td nowrap="nowrap" valign="bottom"><p align="center">NO</p></td> 
    501     <td nowrap="nowrap" valign="bottom">&nbsp;</td> 
    502   </tr> 
    503   <tr> 
    504     <td nowrap="nowrap" valign="bottom"><p>Color   icons</p></td> 
    505     <td nowrap="nowrap" valign="bottom"><p align="center">YES</p></td> 
    506     <td nowrap="nowrap" valign="bottom"><p align="center">ME</p></td> 
    507   </tr> 
    508 </table> 
    509