Confirmed users
1,340
edits
Allstars.chh (talk | contribs) |
No edit summary |
||
(39 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
To provide DOM API for the STK(SIM Toolkit), or CAT (Card Application Toolkit), which allows web contents can interact with SIM applications. | To provide DOM API for the STK(SIM Toolkit), or CAT (Card Application Toolkit), which allows web contents can interact with SIM applications. | ||
= Status = | |||
Bugzilla : https://bugzilla.mozilla.org/show_bug.cgi?id=791161 <br> | |||
Feature List: https://docs.google.com/spreadsheet/ccc?key=0AuvgnQ-Iwb6XdGV0aHZWdGdmZVEzZUxmZWNEaGJYWkE | |||
= Interface = | = Interface = | ||
Line 36: | Line 40: | ||
<pre> | <pre> | ||
/** | /** | ||
* Send the response back to ICC after an attempt to execute STK Proactive | * Send the response back to ICC after an attempt to execute STK Proactive | ||
* Command. | * Command. | ||
*/ | * | ||
void sendStkResponse(in | * @param command | ||
* Command received from ICC. See MozStkCommand. | |||
* @param response | |||
* The response that will be sent to ICC. | |||
* @see MozStkResponse for the detail of response. | |||
*/ | |||
void sendStkResponse(in jsval command, in jsval response); | |||
</pre> | </pre> | ||
=== Send Envelope Command === | === Send Envelope Command === | ||
Currently only support "Menu Selection" | Currently only support "Menu Selection", "Event Download" | ||
<pre> | <pre> | ||
/** | /** | ||
Line 52: | Line 62: | ||
* @param helpRequested | * @param helpRequested | ||
* true if user requests to provide help information, false otherwise. | * true if user requests to provide help information, false otherwise. | ||
*/ | |||
*/ | void sendStkMenuSelection(in unsigned short itemIdentifier, | ||
void sendStkMenuSelection(in unsigned short itemIdentifier, in boolean helpRequested); | in boolean helpRequested); | ||
/** | |||
* Send "Event Download" Envelope command to ICC. | |||
* ICC will not respond with any data for this command. | |||
* | |||
* @param event | |||
* one of events below: | |||
* - MozStkLocationEvent | |||
* - MozStkCallEvent | |||
*/ | |||
void sendStkEventDownload(in jsval event); | |||
</pre> | </pre> | ||
Line 94: | Line 115: | ||
** MozStkResponse | ** MozStkResponse | ||
In both MozStkCommand and | In both MozStkCommand and MozStkResponse, we expose the content of 'Command Details' as: | ||
* | * number | ||
* | * type | ||
* | * qualifier | ||
So when a webapp tries to create a MozStkResponse, the webapp needs to create exactly the same 'Command Details' as it got from MozStkCommand. | So when a webapp tries to create a MozStkResponse, the webapp needs to create exactly the same 'Command Details' as it got from MozStkCommand. | ||
Line 127: | Line 148: | ||
</pre> | </pre> | ||
The UI componet includes | The UI componet includes | ||
* Text Message | |||
* Menu | * Menu | ||
* Input | * Input | ||
* Call set up | * Call set up | ||
Line 152: | Line 173: | ||
<pre> | <pre> | ||
interface nsIDOMMozStkCommandEvent : nsIDOMEvent | interface nsIDOMMozStkCommandEvent : nsIDOMEvent | ||
{ | { | ||
readonly attribute | /** | ||
* See nsIDOMMozStkCommand for the detail of command. | |||
*/ | |||
readonly attribute jsval command; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 160: | Line 184: | ||
=== STK command === | === STK command === | ||
<pre> | <pre> | ||
dictionary MozStkCommand | |||
{ | { | ||
/** | /** | ||
* | * The number of command issued by ICC. And it is assigned | ||
* by ICC may take any hexadecimal value betweean '01' and 'FE'. | * by ICC may take any hexadecimal value betweean '01' and 'FE'. | ||
* | * | ||
* @see TS 11.14, clause 6.5.1 | * @see TS 11.14, clause 6.5.1 | ||
*/ | */ | ||
unsigned short commandNumber; | |||
/** | /** | ||
* One of | * One of STK_CMD_* | ||
*/ | */ | ||
unsigned short typeOfCommand; | |||
/** | /** | ||
* Qualifiers specific to the command. | * Qualifiers specific to the command. | ||
*/ | */ | ||
unsigned short commandQualifier; | |||
/** | /** | ||
* | * options varies accrording to the typeOfCommand in MozStkCommand. | ||
* | * | ||
* | * When typeOfCommand is | ||
* - STK_CMD_DISPLAY_TEXT | |||
* - STK_CMD_SET_UP_IDLE_MODE_TEXT | |||
* - STK_CMD_SEND_{SS|USSD|SMS|DTMF}, | |||
* | * options is MozStkTextMessage. | ||
* | * | ||
* | * When typeOfCommand is | ||
* - STK_CMD_SELECT_ITEM | |||
* - STK_CMD_SET_UP_MENU | |||
* options is MozStkMenu. | |||
* | * | ||
* | * When typeOfCommand is | ||
* | * - STK_CMD_GET_INKEY | ||
* - STK_CMD_GET_INPUT, | |||
* options is MozStkInput. | |||
* | |||
* | * When typeOfCommand is | ||
* | * - STK_CMD_LAUNCH_BROWSER | ||
*/ | * options is MozStkBrowserSetting. | ||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_SET_UP_CALL | |||
* options is MozStkSetUpCall. | |||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_SET_UP_EVENT_LIST | |||
* options is MozStkSetUpEventList. | |||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_PLAY_TONE | |||
* options is MozStkPlayTone. | |||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_POLL_INTERVAL | |||
* options is MozStkDuration. | |||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_POLL_OFF | |||
* options is null. | |||
* | |||
* When typeOfCommand is | |||
* - STK_CMD_REFRESH | |||
* options is null. | |||
*/ | |||
jsval options; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 216: | Line 258: | ||
===== Text Message ===== | ===== Text Message ===== | ||
<pre> | <pre> | ||
dictionary MozStkTextMessage | |||
{ | { | ||
/** | /** | ||
Line 222: | Line 264: | ||
* | * | ||
* @see TS 11.14, clause 12.15, Text String. | * @see TS 11.14, clause 12.15, Text String. | ||
*/ | */ | ||
DOMString text; | |||
/** | /** | ||
Line 230: | Line 272: | ||
* @see TS 11.14, clause 12.6, Command Qualifier, Display Text, bit 1. | * @see TS 11.14, clause 12.6, Command Qualifier, Display Text, bit 1. | ||
* | * | ||
* High priority text shall be displayed on the screen immediately, except if | * High priority text shall be displayed on the screen immediately, except if | ||
* there is a conflict of priority level of alerting such as incoming calls | * there is a conflict of priority level of alerting such as incoming calls | ||
* or a low battery warning. In that situation, the resolution is left to | * or a low battery warning. In that situation, the resolution is left to | ||
* the terminal. If the command is rejected in spite of the high priority, | * the terminal. If the command is rejected in spite of the high priority, | ||
* the terminal shall inform the ICC with resultCode is | * the terminal shall inform the ICC with resultCode is | ||
* TERMINAL_CRNTLY_UNABLE_TO_PROCESS in MozStkResponse. | * TERMINAL_CRNTLY_UNABLE_TO_PROCESS in MozStkResponse. | ||
Line 239: | Line 281: | ||
* true: high priority | * true: high priority | ||
* false: normal priority | * false: normal priority | ||
*/ | */ | ||
boolean isHighPriority; | |||
/** | /** | ||
Line 248: | Line 290: | ||
* | * | ||
* If this attribute is true, but user doesn't give any input within a period | * If this attribute is true, but user doesn't give any input within a period | ||
* of time(said 30 secs), the terminal shall inform the ICC with resultCode | * of time(said 30 secs), the terminal shall inform the ICC with resultCode | ||
* is NO_RESPONSE_FROM_USER in MozStkResponse. | * is NO_RESPONSE_FROM_USER in MozStkResponse. | ||
* | * | ||
* true: Wait for user to clear message. | * true: Wait for user to clear message. | ||
* false: clear message after a delay. | * false: clear message after a delay. | ||
*/ | */ | ||
boolean userClear; | |||
/** | /** | ||
Line 261: | Line 303: | ||
* @see TS 11.14, clause 12.43, Immediate response. | * @see TS 11.14, clause 12.43, Immediate response. | ||
* | * | ||
* When this attribute is true, the terminal shall immediately send | * When this attribute is true, the terminal shall immediately send | ||
* MozStkResponse with resultCode is OK. | * MozStkResponse with resultCode is OK. | ||
* | * | ||
Line 267: | Line 309: | ||
* false: otherwise. | * false: otherwise. | ||
*/ | */ | ||
boolean responseNeeded; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 273: | Line 315: | ||
===== Menu ===== | ===== Menu ===== | ||
<pre> | <pre> | ||
dictionary MozStkItem | |||
{ | { | ||
/** | /** | ||
* Identifier of item. | * Identifier of item. | ||
* | * | ||
* The identifier is a single byte between '01' and 'FF'. Each item shall | * The identifier is a single byte between '01' and 'FF'. Each item shall | ||
* have a unique identifier within an Item list. | * have a unique identifier within an Item list. | ||
*/ | */ | ||
unsigned short identifier; | |||
/** | /** | ||
* Text string of item. | * Text string of item. | ||
*/ | */ | ||
DOMString text; | |||
}; | }; | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
dictionary MozStkMenu | |||
{ | { | ||
/** | /** | ||
* Array of MozStkItem. | |||
* Array of | |||
* | * | ||
* @see TS 11.14, clause 12.9 | * @see TS 11.14, clause 12.9 | ||
*/ | */ | ||
jsval items; // MozStkItem[] | |||
/** | /** | ||
* Presentation type, one of TYPE_*. | * Presentation type, one of TYPE_*. | ||
*/ | */ | ||
unsigned short presentationType; | |||
/** | /** | ||
* Title of the menu. | * Title of the menu. | ||
*/ | */ | ||
DOMString title; | |||
/** | /** | ||
* Default item identifier of the menu. | * Default item identifier of the menu. | ||
*/ | */ | ||
unsigned short defaultItem; | |||
/** | /** | ||
* Help information available or not. | * Help information available or not. | ||
* | * | ||
* @see TS 11.14, clause 12.6, Command Qualifier, SET UP MENU, bit 8. | * @see TS 11.14, clause 12.6, Command Qualifier, SET UP MENU, bit 8. | ||
* | * | ||
* true: help information available. | * true: help information available. | ||
* false: no help information available. | * false: no help information available. | ||
*/ | */ | ||
boolean isHelpAvailable; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 336: | Line 371: | ||
===== Input ===== | ===== Input ===== | ||
<pre> | <pre> | ||
dictionary MozStkInput | |||
{ | { | ||
/** | /** | ||
* Text for the ME to display in conjunction with asking the user to respond. | * Text for the ME to display in conjunction with asking the user to respond. | ||
*/ | */ | ||
DOMString text; | |||
/** | /** | ||
* Minimum length of response. | * Minimum length of response. | ||
*/ | */ | ||
unsigned short minLength; | |||
/** | /** | ||
* Maximum length of response. | * Maximum length of response. | ||
*/ | */ | ||
unsigned short maxLength; | |||
/** | /** | ||
* Text for the ME to display, corresponds to a default text string offered | * Text for the ME to display, corresponds to a default text string offered | ||
* by the ICC. | * by the ICC. | ||
*/ | */ | ||
DOMString defaultText; | |||
/** | /** | ||
Line 366: | Line 401: | ||
* true: Alphabet set. | * true: Alphabet set. | ||
* false: Digits only. | * false: Digits only. | ||
*/ | */ | ||
boolean isAlphabet; | |||
/** | /** | ||
Line 376: | Line 411: | ||
* true: UCS2 alphabet. | * true: UCS2 alphabet. | ||
* false: default SMS alphabet. | * false: default SMS alphabet. | ||
*/ | */ | ||
boolean isUCS2; | |||
/** | /** | ||
* Visibility of input. | * Visibility of input. | ||
Line 386: | Line 421: | ||
* true: User input shall not be revealed in any way. | * true: User input shall not be revealed in any way. | ||
* false: ME may echo user input on the display. | * false: ME may echo user input on the display. | ||
*/ | */ | ||
boolean hideInput; | |||
/** | /** | ||
* Yes/No response is requested. | * Yes/No response is requested. | ||
Line 394: | Line 429: | ||
* @see TS 11.14, clause 12.6, Command Qualifier, GET INKEY, bit 3. | * @see TS 11.14, clause 12.6, Command Qualifier, GET INKEY, bit 3. | ||
* | * | ||
* true: Yes/No response is requested. | * true: Yes/No response is requested, and character sets | ||
* (Alphabet set and UCS2) are disabled. | |||
* false: Character sets (Alphabet set and UCS2) are enabled. | * false: Character sets (Alphabet set and UCS2) are enabled. | ||
*/ | */ | ||
boolean isYesNoRequested; | |||
/** | /** | ||
* User input in | * User input in packed or unpacked format. | ||
* | * | ||
* @see TS 11.14, clause 12.6, Command Qualifier, GET INPUT, bit 4. | * @see TS 11.14, clause 12.6, Command Qualifier, GET INPUT, bit 4. | ||
Line 406: | Line 442: | ||
* true: User input to be in SMS packed format. | * true: User input to be in SMS packed format. | ||
* false: User input to be in unpacked format. | * false: User input to be in unpacked format. | ||
*/ | */ | ||
boolean isPacked; | |||
/** | /** | ||
* Help information available or not. | * Help information available or not. | ||
* | * | ||
* @see TS 11.14, clause 12.6, Command Qualifier, GET INPUT/GET INKEY, bit 8. | * @see TS 11.14, clause 12.6, Command Qualifier, GET INPUT/GET INKEY, bit 8. | ||
* | * | ||
* true: help information available. | * true: help information available. | ||
* false: no help information available. | * false: no help information available. | ||
*/ | */ | ||
boolean isHelpAvailable; | |||
}; | |||
</pre> | |||
===== Browser Settings ===== | |||
<pre> | |||
dictionary MozStkBrowserSetting | |||
{ | |||
/** | |||
* Confirm message to launch browser. | |||
* | |||
* @see MozStkTextMessage for the detail specification of | |||
* confirmMessage. | |||
*/ | |||
jsval confirmMessage; | |||
/** | |||
* The URL to be opened by browser. | |||
*/ | |||
DOMString url; | |||
/** | |||
* One of STK_BROWSER_MODE_*. | |||
* | |||
* @see nsIDOMMozIccManager.STK_BROWSER_MODE_* | |||
*/ | |||
unsigned short mode; | |||
}; | |||
</pre> | |||
===== Set Up Call ===== | |||
<pre> | |||
dictionary MozStkSetUpCall | |||
{ | |||
/** | |||
* The Dialling number. | |||
*/ | |||
DOMString address; | |||
/** | |||
* The text message used in user confirmation phase. | |||
* | |||
* @see MozStkTextMessage for the detail specification of | |||
* confirmMessage. | |||
*/ | |||
jsval confirmMessage; | |||
/** | |||
* The text message used in call set up phase. | |||
* | |||
* @see MozStkTextMessage for the detail specification of | |||
* callMessage. | |||
*/ | |||
jsval callMessage; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 426: | Line 515: | ||
=== STK response === | === STK response === | ||
<pre> | <pre> | ||
dictionary MozStkResponse | |||
{ | { | ||
/** | /** | ||
* | * One of RESULT_* | ||
*/ | |||
unsigned short resultCode; | |||
*/ | |||
/** | /** | ||
* The identifier of the item selected by user. | * The identifier of the item selected by user. | ||
* | * | ||
* @see | * @see MozStkItem.identifier | ||
*/ | */ | ||
unsigned short itemIdentifier; | |||
/** | /** | ||
* User input. | * User input. | ||
*/ | */ | ||
DOMString input; | |||
/** | /** | ||
* YES/NO response. | * YES/NO response. | ||
* | * | ||
* @see | * @see MozStkInput.isYesNoRequested | ||
*/ | */ | ||
boolean isYesNo; | |||
/** | /** | ||
* | * User has confirmed or rejected the call during STK_CMD_CALL_SET_UP. | ||
* | * | ||
* @see RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM | * @see RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM | ||
* | * | ||
* true: Confirmed by User. | * true: Confirmed by User. | ||
* false: Rejected by User. | * false: Rejected by User. | ||
*/ | */ | ||
boolean hasConfirmed; | |||
}; | }; | ||
</pre> | </pre> | ||
== STK constants == | == STK constants == | ||
For simplicity, constants are listed here. | |||
<pre> | <pre> | ||
partial interface nsIDOMMozIccManager : nsIDOMEventTarget | |||
interface | |||
{ | { | ||
const unsigned short | /** | ||
const unsigned short | * STK Menu Presentation types. | ||
const unsigned short | */ | ||
const unsigned short | const unsigned short STK_MENU_TYPE_NOT_SPECIFIED = 0x00; | ||
const unsigned short | const unsigned short STK_MENU_TYPE_DATA_VALUES = 0x01; | ||
const unsigned short | const unsigned short STK_MENU_TYPE_NAVIGATION_OPTIONS = 0x03; | ||
const unsigned short | |||
const unsigned short | /** | ||
const unsigned short | * Browser launch mode. | ||
const unsigned short | */ | ||
const unsigned short | const unsigned short STK_BROWSER_MODE_LAUNCH_IF_NOT_ALREADY_LAUNCHED = 0x00; | ||
const unsigned short | const unsigned short STK_BROWSER_MODE_USING_EXISTING_BROWSER = 0x02; | ||
const unsigned short | const unsigned short STK_BROWSER_MODE_USING_NEW_BROWSER = 0x03; | ||
/** | |||
* STK Proactive commands. | |||
* | |||
* @see TS 11.14, clause 13.4 | |||
*/ | |||
const unsigned short STK_CMD_REFRESH = 0x01; | |||
const unsigned short STK_CMD_POLL_INTERVAL = 0x03; | |||
const unsigned short STK_CMD_POLL_OFF = 0x04; | |||
const unsigned short STK_CMD_SET_UP_EVENT_LIST = 0x05; | |||
const unsigned short STK_CMD_SET_UP_CALL = 0x10; | |||
const unsigned short STK_CMD_SEND_SS = 0x11; | |||
const unsigned short STK_CMD_SEND_USSD = 0x12; | |||
const unsigned short STK_CMD_SEND_SMS = 0x13; | |||
const unsigned short STK_CMD_SEND_DTMF = 0x14; | |||
const unsigned short STK_CMD_LAUNCH_BROWSER = 0x15; | |||
const unsigned short STK_CMD_PLAY_TONE = 0x20; | |||
const unsigned short STK_CMD_DISPLAY_TEXT = 0x21; | |||
const unsigned short STK_CMD_GET_INKEY = 0x22; | |||
const unsigned short STK_CMD_GET_INPUT = 0x23; | |||
const unsigned short STK_CMD_SELECT_ITEM = 0x24; | |||
const unsigned short STK_CMD_SET_UP_MENU = 0x25; | |||
const unsigned short STK_CMD_SET_UP_IDLE_MODE_TEXT = 0x28; | |||
/** | /** | ||
* STK Result code. | |||
* | |||
* @see TS 11.14, clause 12.12 | |||
* | |||
* Results '0X' and '1X' indicate that the command has been performed. | * Results '0X' and '1X' indicate that the command has been performed. | ||
*/ | */ | ||
/** Command performed successfully */ | /** Command performed successfully */ | ||
const unsigned short | const unsigned short STK_RESULT_OK = 0x00; | ||
/** Command performed with partial comprehension */ | /** Command performed with partial comprehension */ | ||
const unsigned short | const unsigned short STK_RESULT_PRFRMD_WITH_PARTIAL_COMPREHENSION = 0x01; | ||
/** Command performed, with missing information */ | /** Command performed, with missing information */ | ||
const unsigned short | const unsigned short STK_RESULT_PRFRMD_WITH_MISSING_INFO = 0x02; | ||
/** REFRESH performed with additional EFs read */ | /** REFRESH performed with additional EFs read */ | ||
const unsigned short | const unsigned short STK_RESULT_PRFRMD_WITH_ADDITIONAL_EFS_READ = 0x03; | ||
/** Command performed successfully, limited service */ | /** Command performed successfully, limited service */ | ||
const unsigned short | const unsigned short STK_RESULT_PRFRMD_LIMITED_SERVICE = 0x06; | ||
/** Proactive UICC session terminated by the user */ | /** Proactive UICC session terminated by the user */ | ||
const unsigned short | const unsigned short STK_RESULT_UICC_SESSION_TERM_BY_USER = 0x10; | ||
/** Backward move in the proactive UICC session requested by the user */ | /** Backward move in the proactive UICC session requested by the user */ | ||
const unsigned short | const unsigned short STK_RESULT_BACKWARD_MOVE_BY_USER = 0x11; | ||
/** No response from user */ | /** No response from user */ | ||
const unsigned short | const unsigned short STK_RESULT_NO_RESPONSE_FROM_USER = 0x12; | ||
/** Help information required by the user */ | /** Help information required by the user */ | ||
const unsigned short | const unsigned short STK_RESULT_HELP_INFO_REQUIRED = 0x13; | ||
/** USSD or SS transaction terminated by the user */ | /** USSD or SS transaction terminated by the user */ | ||
const unsigned short | const unsigned short STK_RESULT_USSD_SS_SESSION_TERM_BY_USER = 0x14; | ||
/* | /** | ||
* Results '2X' indicate to the UICC that it may be worth re-trying the | * Results '2X' indicate to the UICC that it may be worth re-trying the | ||
* command at a later opportunity. | * command at a later opportunity. | ||
*/ | */ | ||
/** Terminal currently unable to process command */ | /** Terminal currently unable to process command */ | ||
const unsigned short | const unsigned short STK_RESULT_TERMINAL_CRNTLY_UNABLE_TO_PROCESS = 0x20; | ||
/** Network currently unable to process command */ | /** Network currently unable to process command */ | ||
const unsigned short | const unsigned short STK_RESULT_NETWORK_CRNTLY_UNABLE_TO_PROCESS = 0x21; | ||
/** User did not accept the proactive command */ | /** User did not accept the proactive command */ | ||
const unsigned short | const unsigned short STK_RESULT_USER_NOT_ACCEPT = 0x22; | ||
/** User cleared down call before connection or network release */ | /** User cleared down call before connection or network release */ | ||
const unsigned short | const unsigned short STK_RESULT_USER_CLEAR_DOWN_CALL = 0x23; | ||
/** Launch browser generic error code */ | /** Launch browser generic error code */ | ||
const unsigned short | const unsigned short STK_RESULT_LAUNCH_BROWSER_ERROR = 0x26; | ||
/* | /** | ||
* Results '3X' indicate that it is not worth the UICC re-trying with an | * Results '3X' indicate that it is not worth the UICC re-trying with an | ||
* identical command, as it will only get the same response. However, the | * identical command, as it will only get the same response. However, the | ||
Line 591: | Line 657: | ||
*/ | */ | ||
/** Command beyond terminal's capabilities */ | /** Command beyond terminal's capabilities */ | ||
const unsigned short | const unsigned short STK_RESULT_BEYOND_TERMINAL_CAPABILITY = 0x30; | ||
/** Command type not understood by terminal */ | /** Command type not understood by terminal */ | ||
const unsigned short | const unsigned short STK_RESULT_CMD_TYPE_NOT_UNDERSTOOD = 0x31; | ||
/** Command data not understood by terminal */ | /** Command data not understood by terminal */ | ||
const unsigned short | const unsigned short STK_RESULT_CMD_DATA_NOT_UNDERSTOOD = 0x32; | ||
/** Command number not known by terminal */ | /** Command number not known by terminal */ | ||
const unsigned short | const unsigned short STK_RESULT_CMD_NUM_NOT_KNOWN = 0x33; | ||
/** SS Return Error */ | /** SS Return Error */ | ||
const unsigned short | const unsigned short STK_RESULT_SS_RETURN_ERROR = 0x34; | ||
/** SMS RP-ERROR */ | /** SMS RP-ERROR */ | ||
const unsigned short | const unsigned short STK_RESULT_SMS_RP_ERROR = 0x35; | ||
/** Error, required values are missing */ | /** Error, required values are missing */ | ||
const unsigned short | const unsigned short STK_RESULT_REQUIRED_VALUES_MISSING = 0x36; | ||
/** USSD Return Error */ | /** USSD Return Error */ | ||
const unsigned short | const unsigned short STK_RESULT_USSD_RETURN_ERROR = 0x37; | ||
/** MultipleCard commands error */ | /** MultipleCard commands error */ | ||
const unsigned short | const unsigned short STK_RESULT_MULTI_CARDS_CMD_ERROR = 0x38; | ||
/** | /** | ||
Line 621: | Line 687: | ||
* USIM, permanent problem | * USIM, permanent problem | ||
*/ | */ | ||
const unsigned short | const unsigned short STK_RESULT_USIM_CALL_CONTROL_PERMANENT = 0x39; | ||
/** Bearer Independent Protocol error */ | /** Bearer Independent Protocol error */ | ||
const unsigned short | const unsigned short STK_RESULT_BIP_ERROR = 0x3a; | ||
/** | /** | ||
* STK Event List | |||
*/ | |||
const unsigned short STK_EVENT_TYPE_MT_CALL = 0x00; | |||
const unsigned short STK_EVENT_TYPE_CALL_CONNECTED = 0x01; | |||
const unsigned short STK_EVENT_TYPE_CALL_DISCONNECTED = 0x02; | |||
const unsigned short STK_EVENT_TYPE_LOCATION_STATUS = 0x03; | |||
const unsigned short STK_EVENT_TYPE_USER_ACTIVITY = 0x04; | |||
const unsigned short STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE = 0x05; | |||
const unsigned short STK_EVENT_TYPE_CARD_READER_STATUS = 0x06; | |||
const unsigned short STK_EVENT_TYPE_LANGUAGE_SELECTION = 0x07; | |||
const unsigned short STK_EVENT_TYPE_BROWSER_TERMINATION = 0x08; | |||
const unsigned short STK_EVENT_TYPE_DATA_AVAILABLE = 0x09; | |||
const unsigned short STK_EVENT_TYPE_CHANNEL_STATUS = 0x0a; | |||
const unsigned short STK_EVENT_TYPE_SINGLE_ACCESS_TECHNOLOGY_CHANGED = 0x0b; | |||
const unsigned short STK_EVENT_TYPE_DISPLAY_PARAMETER_CHANGED = 0x0c; | |||
const unsigned short STK_EVENT_TYPE_LOCAL_CONNECTION = 0x0d; | |||
const unsigned short STK_EVENT_TYPE_NETWORK_SEARCH_MODE_CHANGED = 0x0e; | |||
const unsigned short STK_EVENT_TYPE_BROWSING_STATUS = 0x0f; | |||
const unsigned short STK_EVENT_TYPE_FRAMES_INFORMATION_CHANGED = 0x10; | |||
/** | |||
* The service state of STK Location Status. | |||
*/ | |||
const unsigned short STK_SERVICE_STATE_NORMAL = 0x00; | |||
const unsigned short STK_SERVICE_STATE_LIMITED = 0x01; | |||
const unsigned short STK_SERVICE_STATE_UNAVAILABLE = 0x02; | |||
/** | |||
* Tone type. | |||
*/ | |||
const unsigned short STK_TONE_TYPE_DIAL_TONE = 0x01; | |||
const unsigned short STK_TONE_TYPE_CALLED_SUBSCRIBER_BUSY = 0x02; | |||
const unsigned short STK_TONE_TYPE_CONGESTION = 0x03; | |||
const unsigned short STK_TONE_TYPE_RADIO_PATH_ACK = 0x04; | |||
const unsigned short STK_TONE_TYPE_RADIO_PATH_NOT_AVAILABLE = 0x05; | |||
const unsigned short STK_TONE_TYPE_ERROR = 0x06; | |||
const unsigned short STK_TONE_TYPE_CALL_WAITING_TONE = 0x07; | |||
const unsigned short STK_TONE_TYPE_RINGING_TONE = 0x08; | |||
const unsigned short STK_TONE_TYPE_GENERAL_BEEP = 0x10; | |||
const unsigned short STK_TONE_TYPE_POSITIVE_ACK_TONE = 0x11; | |||
const unsigned short STK_TONE_TYPE_NEGATIVE_ACK_TONE = 0x12; | |||
/** | |||
* Time unit | |||
*/ | |||
const unsigned short STK_TIME_UNIT_MINUTE = 0x00; | |||
const unsigned short STK_TIME_UNIT_SECOND = 0x01; | |||
const unsigned short STK_TIME_UNIT_TENTH_SECOND = 0x02; | |||
} | |||
</pre> | </pre> | ||
Line 639: | Line 747: | ||
== Show STK menu == | == Show STK menu == | ||
<pre> | <pre> | ||
var icc = navigator.mozMobileConnection.icc; | |||
icc.onstkcommand = function (evt) { | |||
var command = evt.command | |||
switch (command.typeOfCommand) { | switch (command.typeOfCommand) { | ||
case | case icc.STK_CMD_SET_UP_MENU: | ||
var menu = command. | var menu = command.options; | ||
// create a Menu-like UI according to 'menu' | // create a Menu-like UI according to 'menu' | ||
break; | break; | ||
Line 651: | Line 761: | ||
== Menu Selection == | == Menu Selection == | ||
<pre> | <pre> | ||
function | /** | ||
* onMenuSelected is the callback when some item of the menu is selected. | |||
* @param id The index of the item being selected. | |||
* @param helpRequested Request for help. | |||
*/ | |||
function onMenuSelected(id, helpRequested) { | |||
var icc = navigator.mozMobileConnection.icc; | |||
icc.sendStkMenuSelection(id, helpRequested); | |||
} | } | ||
</pre> | </pre> | ||
Line 660: | Line 776: | ||
// 'command' is got from onstkcommand | // 'command' is got from onstkcommand | ||
// and assume it's a Select Item command. | // and assume it's a Select Item command. | ||
var | var icc = navigator.mozMobileConnection.icc; | ||
response | var response = { | ||
// 'id' is got from the | resultCode : icc.STK_RESULT_OK, | ||
// 'id' is got from the choosed item identifier (menu.item[].identifier) | |||
mozIcc.sendStkResponse(response); | itemIdentifier: id | ||
}; | |||
mozIcc.sendStkResponse(command, response); | |||
</pre> | </pre> | ||
== Get Input == | == Get Input == | ||
<pre> | <pre> | ||
var icc = navigator.mozMobileConnection.icc; | |||
icc.onstkcommand = function (evt) { | |||
var command = evt.command | |||
switch (command.typeOfCommand) { | switch (command.typeOfCommand) { | ||
case | case icc.STK_CMD_GET_INPUT: | ||
var input = command. | var input = command.options; | ||
// create a TextInput-like UI according to 'input' | // create a TextInput-like UI according to 'input' | ||
break; | break; | ||
Line 679: | Line 799: | ||
// onTextInput is the callback when user inputs complete. | // onTextInput is the callback when user inputs complete. | ||
var icc = navigator.mozMobileConnection.icc; | |||
function onTextInput(input) { | function onTextInput(input) { | ||
var response = | var response = { | ||
resultCode : mozICC.STK_RESULT_OK, | |||
input: input | |||
}; | |||
mozIcc.sendStkResponse(command, response); | |||
} | |||
mozIcc.sendStkResponse(response); | |||
} | } | ||
</pre> | </pre> | ||
Line 710: | Line 811: | ||
= TODO = | = TODO = | ||
* Icon | * Icon | ||
* | * Timer | ||
= Reference = | = Reference = | ||
Line 719: | Line 817: | ||
* TS 102.223 | * TS 102.223 | ||
* http://www.kandroid.org/online-pdk/guide/stk.html | * http://www.kandroid.org/online-pdk/guide/stk.html | ||
[[Category:Web APIs]] |