diff -r 000000000000 -r 6474c204b198 dom/mobileconnection/interfaces/nsIDOMMobileConnection.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/mobileconnection/interfaces/nsIDOMMobileConnection.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,698 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsIDOMEventTarget.idl" + +interface nsIDOMEventListener; +interface nsIDOMDOMRequest; +interface nsIDOMMozMobileConnectionInfo; +interface nsIDOMMozMobileNetworkInfo; +interface nsIDOMMozMobileCellInfo; +interface nsIDOMMozMobileCFInfo; +interface nsIVariant; + +[scriptable, builtinclass, uuid(389ad352-4e43-4c1a-85e9-bae745554326)] +interface nsIDOMMozMobileConnection : nsIDOMEventTarget +{ + const long ICC_SERVICE_CLASS_VOICE = (1 << 0); + const long ICC_SERVICE_CLASS_DATA = (1 << 1); + const long ICC_SERVICE_CLASS_FAX = (1 << 2); + const long ICC_SERVICE_CLASS_SMS = (1 << 3); + const long ICC_SERVICE_CLASS_DATA_SYNC = (1 << 4); + const long ICC_SERVICE_CLASS_DATA_ASYNC = (1 << 5); + const long ICC_SERVICE_CLASS_PACKET = (1 << 6); + const long ICC_SERVICE_CLASS_PAD = (1 << 7); + const long ICC_SERVICE_CLASS_MAX = (1 << 7); + + /** + * Call barring program. + * + * (0) all outgoing. + * (1) outgoing international. + * (2) outgoing international except to home country. + * (3) all incoming. + * (4) incoming when roaming outside the home country. + */ + const long CALL_BARRING_PROGRAM_ALL_OUTGOING = 0; + const long CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL = 1; + const long CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL_EXCEPT_HOME = 2; + const long CALL_BARRING_PROGRAM_ALL_INCOMING = 3; + const long CALL_BARRING_PROGRAM_INCOMING_ROAMING = 4; + + /** + * Calling line identification restriction constants. + * + * @see 3GPP TS 27.007 7.7 Defined values + * + * (0) Uses subscription default value. + * (1) Restricts CLI presentation. + * (2) Allows CLI presentation. + */ + const long CLIR_DEFAULT = 0; + const long CLIR_INVOCATION = 1; + const long CLIR_SUPPRESSION = 2; + + /** + * These two fields can be accessed by privileged applications with the + * 'mobilenetwork' permission. + */ + readonly attribute DOMString lastKnownNetwork; + readonly attribute DOMString lastKnownHomeNetwork; + + /** + * Information about the voice connection. + */ + readonly attribute nsIDOMMozMobileConnectionInfo voice; + + /** + * Information about the data connection. + */ + readonly attribute nsIDOMMozMobileConnectionInfo data; + + /** + * Integrated Circuit Card Identifier of the SIM this + * mobile connection corresponds to. + */ + readonly attribute DOMString iccId; + + /** + * The selection mode of the voice and data networks. + * + * Possible values: null (unknown), 'automatic', 'manual' + */ + readonly attribute DOMString networkSelectionMode; + + /** + * The current radio state. + * + * Possible values: null (unknown), 'enabling', 'enabled', 'disabling', + * 'disabled' + */ + readonly attribute DOMString radioState; + + /** + * Array of network types that are supported by this radio. + * + * Possible values: 'gsm', 'wcdma', 'cdma', 'evdo', 'lte' + */ + readonly attribute nsIVariant supportedNetworkTypes; + + /** + * Search for available networks. + * + * If successful, the request's onsuccess will be called, and the request's + * result will be an array of nsIDOMMozMobileNetworkInfo. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * or 'GenericFailure'. + */ + nsIDOMDOMRequest getNetworks(); + + /** + * Manually selects the passed in network, overriding the radio's current + * selection. + * + * If successful, the request's onsuccess will be called. + * Note: If the network was actually changed by this request, + * the 'voicechange' and 'datachange' events will also be fired. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', or 'GenericFailure' + */ + nsIDOMDOMRequest selectNetwork(in nsIDOMMozMobileNetworkInfo network); + + /** + * Tell the radio to automatically select a network. + * + * If successful, the request's onsuccess will be called. + * Note: If the network was actually changed by this request, the + * 'voicechange' and 'datachange' events will also be fired. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', or 'GenericFailure' + */ + nsIDOMDOMRequest selectNetworkAutomatically(); + + /** + * Set preferred network type + * + * @param type + * DOMString indicates the desired preferred network type. + * Possible values: 'wcdma/gsm', 'gsm', 'wcdma', 'wcdma/gsm-auto', + * 'cdma/evdo', 'cdma', 'evdo', 'wcdma/gsm/cdma/evdo', + * 'lte/cdma/evdo', 'lte/wcdma/gsm', + * 'lte/wcdma/gsm/cdma/evdo' or 'lte'. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'InvalidParameter', 'ModeNotSupported' or 'GenericFailure' + * + * TODO: param "type" should be a WebIDL enum when this interface is converted + * to WebIDL + */ + nsIDOMDOMRequest setPreferredNetworkType(in DOMString type); + + /** + * Query current preferred network type + * + * If successful, the request's onsuccess will be called. And the request's + * result will be a string indicating the current preferred network type. + * The value will be either 'wcdma/gsm', 'gsm', 'wcdma', 'wcdma/gsm-auto', + * 'cdma/evdo', 'cdma', 'evdo', 'wcdma/gsm/cdma/evdo', 'lte/cdma/evdo', + * 'lte/wcdma/gsm', 'lte/wcdma/gsm/cdma/evdo' or 'lte'. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * or 'GenericFailure' + */ + nsIDOMDOMRequest getPreferredNetworkType(); + + /** + * Set roaming preference + * + * @param mode + * DOMString indicates the desired roaming preference. + * Possible values: 'home', 'affiliated', or 'any'. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', 'InvalidParameter', or 'GenericFailure' + * + * TODO: param "mode" should be a WebIDL enum when this interface is converted + * to WebIDL + */ + nsIDOMDOMRequest setRoamingPreference(in DOMString mode); + + /** + * Query current roaming preference + * + * If successful, the request's onsuccess will be called. And the request's + * result will be a string indicating the current roaming preference. + * The value will be either 'home', 'affiliated', or 'any'. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', or 'GenericFailure' + */ + nsIDOMDOMRequest getRoamingPreference(); + + /** + * Set voice privacy preference. + * + * @param enabled + * Boolean indicates the preferred voice privacy mode used in voice + * scrambling in CDMA networks. 'True' means the enhanced voice security + * is required. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', 'InvalidParameter', or 'GenericFailure' + */ + nsIDOMDOMRequest setVoicePrivacyMode(in bool enabled); + + /** + * Query current voice privacy mode. + * + * If successful, the request's onsuccess will be called. And the request's + * result will be a boolean indicating the current voice privacy mode. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', or 'GenericFailure' + */ + nsIDOMDOMRequest getVoicePrivacyMode(); + + /** + * Send a MMI message. + * + * @param mmi + * DOMString containing an MMI string that can be associated to a + * USSD request or other RIL functionality. + * + * @return a nsIDOMDOMRequest + * The request's result will be an object containing information + * about the operation. + * + * In case that the MMI code requires sending an USSD request, the DOMrequest + * 'success' event means that the RIL has successfully processed and sent the + * USSD request to the network. The network reply will be reported via + * 'onussdreceived' event. If the MMI code is not associated to a USSD but to + * other RIL request its result, if one is needed, will be notified via the + * returned DOMRequest 'success' or 'error' event. + */ + nsIDOMDOMRequest sendMMI(in DOMString mmi); + + /** + * Cancel the current MMI request if one exists. + */ + nsIDOMDOMRequest cancelMMI(); + + /** + * Configures call forward options. + * + * @param CFInfo + * An object containing the call forward rule to set. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', 'InvalidParameter', or 'GenericFailure' + */ + nsIDOMDOMRequest setCallForwardingOption(in nsIDOMMozMobileCFInfo CFInfo); + + /** + * Queries current call forward options. + * + * @param reason + * Indicates the reason the call is being forwarded. It will be either + * unconditional (0), mobile busy (1), no reply (2), not reachable (3), + * all call forwarding (4), or all conditional call forwarding (5). + * + * If successful, the request's onsuccess will be called, and the request's + * result will be an array of nsIDOMMozMobileCFInfo. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'InvalidParameter', or 'GenericFailure'. + */ + nsIDOMDOMRequest getCallForwardingOption(in unsigned short reason); + + /** + * Configures call barring option. + * + * @param option + * An object containing the call barring rule to set. + * @see MozCallBarringOption for the detail of info. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', 'InvalidParameter', or 'GenericFailure' + */ + nsIDOMDOMRequest setCallBarringOption(in jsval option); + + /** + * Queries current call barring status. + * + * @param info + * An object containing the call barring rule to query. No need to + * specify 'enabled' property. + * @see MozCallBarringOption for the detail of info. + * + * If successful, the request's onsuccess will be called, and the request's + * result will be an object of MozCallBarringOption with correct 'enabled' + * property indicating the status of this rule. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'InvalidParameter', or 'GenericFailure'. + */ + nsIDOMDOMRequest getCallBarringOption(in jsval option); + + /** + * Change call barring facility password. + * + * @param info + * An object containing information about pin and newPin, and, + * this object must have both "pin" and "newPin" attributes + * to change the call barring facility password. + * + * Example: + * + * changeCallBarringPassword({pin: "...", + * newPin: "..."}); + */ + nsIDOMDOMRequest changeCallBarringPassword(in jsval info); + + /** + * Configures call waiting options. + * + * @param enabled + * Value containing the desired call waiting status. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * 'IllegalSIMorME', or 'GenericFailure' + */ + nsIDOMDOMRequest setCallWaitingOption(in bool enabled); + + /** + * Queries current call waiting options. + * + * If successful, the request's onsuccess will be called, and the request's + * result will be a boolean indicating the call waiting status. + * + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * or 'GenericFailure'. + */ + nsIDOMDOMRequest getCallWaitingOption(); + + /** + * Enables or disables the presentation of the calling line identity (CLI) to + * the called party when originating a call. + * + * @param clirMode + * Is one of the CLIR_* constants. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + */ + nsIDOMDOMRequest setCallingLineIdRestriction(in unsigned short clirMode); + + /** + * Queries current CLIR status. + * + * If successful, the request's onsuccess will be called, and the request's + * result will be a DOMCLIRStatus dictionary containing CLIR 'n' and 'm' + * parameter. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RadioNotAvailable', 'RequestNotSupported', + * or 'GenericFailure'. + */ + nsIDOMDOMRequest getCallingLineIdRestriction(); + + /** + * Exit emergency callback mode. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'RequestNotSupported' or 'GenericFailure'. + */ + nsIDOMDOMRequest exitEmergencyCbMode(); + + /** + * Set radio enabled/disabled. + * + * @param enabled + * True to enable the radio. + * + * If successful, the request's onsuccess will be called. + * + * Otherwise, the request's onerror will be called, and the request's error + * will be either 'InvalidStateError', 'RadioNotAvailable', or + * 'GenericFailure'. + * + * Note: Request is not available when radioState is null, 'enabling', or + * 'disabling'. Calling the function in above conditions will receive + * 'InvalidStateError' error. + */ + nsIDOMDOMRequest setRadioEnabled(in boolean enabled); + + /** + * The 'voicechange' event is notified whenever the voice connection object + * changes. + */ + [implicit_jscontext] attribute jsval onvoicechange; + + /** + * The 'datachange' event is notified whenever the data connection object + * changes values. + */ + [implicit_jscontext] attribute jsval ondatachange; + + /** + * The 'ussdreceived' event is notified whenever a new USSD message is + * received. + */ + [implicit_jscontext] attribute jsval onussdreceived; + + /** + * The 'dataerror' event is notified whenever the data connection object + * receives an error from the RIL + */ + [implicit_jscontext] attribute jsval ondataerror; + + /** + * The 'oncfstatechange' event is notified whenever the call forwarding + * state changes. + */ + [implicit_jscontext] attribute jsval oncfstatechange; + + /** + * The 'emergencycbmodechange' event is notified whenever the emergency + * callback mode changes. + */ + [implicit_jscontext] attribute jsval onemergencycbmodechange; + + /** + * The 'onotastatuschange' event is notified whenever the ota provision status + * changes. + */ + [implicit_jscontext] attribute jsval onotastatuschange; + + /** + * The 'oniccchange' event is notified whenever the iccid value + * changes. + */ + [implicit_jscontext] attribute jsval oniccchange; + + /** + * The 'onradiostatechange' event is notified whenever the radio state + * changes. + */ + [implicit_jscontext] attribute jsval onradiostatechange; +}; + +[scriptable, uuid(49706beb-a160-40b7-b745-50f62e389a2c)] +interface nsIDOMMozMobileConnectionInfo : nsISupports +{ + /** + * State of the connection. + * + * Possible values: 'notSearching', 'searching', 'denied', 'registered'. + * null if the state is unknown. + */ + readonly attribute DOMString state; + + /** + * Indicates whether the connection is ready. This may be different + */ + readonly attribute bool connected; + + /** + * Indicates whether only emergency calls are possible. + * + * This flag is only relevant to voice connections and when 'connected' is + * false. + */ + readonly attribute bool emergencyCallsOnly; + + /** + * Indicates whether the connection is going through a foreign operator + * (roaming) or not. + */ + readonly attribute bool roaming; + + /** + * Network operator + */ + readonly attribute nsIDOMMozMobileNetworkInfo network; + + /** + * Type of connection. + * + * Possible values: 'gsm', 'cdma', gprs', 'edge', 'umts', 'hsdpa', 'evdo0', + * 'evdoa', 'evdob', etc. + */ + readonly attribute DOMString type; + + /** + * Signal strength in dBm, or null if no service is available. + */ + readonly attribute jsval signalStrength; + + /** + * Signal strength, represented linearly as a number between 0 (weakest + * signal) and 100 (full signal). + */ + readonly attribute jsval relSignalStrength; + + /** + * Cell location. + */ + readonly attribute nsIDOMMozMobileCellInfo cell; + +}; + +[scriptable, uuid(40018fc7-4c42-47b6-8de6-3591a9c622bc)] +interface nsIDOMMozMobileNetworkInfo: nsISupports +{ + /** + * Short name of the network operator + */ + readonly attribute DOMString shortName; + + /** + * Long name of the network operator + */ + readonly attribute DOMString longName; + + /** + * Mobile Country Code (MCC) of the network operator + */ + readonly attribute DOMString mcc; + + /** + * Mobile Network Code (MNC) of the network operator + */ + readonly attribute DOMString mnc; + + /** + * State of this network operator. + * + * Possible values: 'available', 'connected', 'forbidden', or null (unknown) + */ + readonly attribute DOMString state; +}; + +[scriptable, uuid(9750b3a7-d913-436e-95d4-7ef2973ec6a1)] +interface nsIDOMMozMobileCellInfo: nsISupports +{ + /** + * Mobile Location Area Code (LAC) for GSM/WCDMA networks. + * + * Possible ranges from 0x0000 to 0xffff. + * -1 if the LAC is unknown. + */ + readonly attribute long gsmLocationAreaCode; + + /** + * Mobile Cell ID for GSM/WCDMA networks. + * + * Possible ranges from 0x00000000 to 0xffffffff. + * -1 if the cell id is unknown. + */ + readonly attribute long long gsmCellId; + + /** + * Base Station ID for CDMA networks. + * + * Possible ranges from 0 to 65535 + * -1 if the base station id is unknown. + */ + readonly attribute long cdmaBaseStationId; + + /** + * Base Station Latitude for CDMA networks. + * + * Possible ranges from -1296000 to 1296000. + * -2147483648 if the latitude is unknown. + * + * @see 3GPP2 C.S0005-A v6.0. + */ + readonly attribute long cdmaBaseStationLatitude; + + /** + * Base Station Longitude for CDMA networks. + * + * Possible ranges from -2592000 to 2592000. + * -2147483648 if the longitude is unknown. + * + * @see 3GPP2 C.S0005-A v6.0. + */ + readonly attribute long cdmaBaseStationLongitude; + + /** + * System ID for CDMA networks. + * + * Possible ranges from 0 to 32767. + * -1 if the system id is unknown. + */ + readonly attribute long cdmaSystemId; + + /** + * Network ID for CDMA networks. + * + * Possible ranges from 0 to 65535. + * -1 if the network id is unknown. + */ + readonly attribute long cdmaNetworkId; +}; + +[scriptable, uuid(d1b35ad8-99aa-47cc-ab49-2e72b00e39df)] +interface nsIDOMMozMobileCFInfo : nsISupports +{ + /** + * Call forwarding rule status. + * + * It will be either not active (false), or active (true). + * + * Note: Unused for setting call forwarding options. It reports + * the status of the rule when getting how the rule is + * configured. + * + * @see 3GPP TS 27.007 7.11 "status". + */ + readonly attribute bool active; + + const long CALL_FORWARD_ACTION_DISABLE = 0; + const long CALL_FORWARD_ACTION_ENABLE = 1; + const long CALL_FORWARD_ACTION_QUERY_STATUS = 2; + const long CALL_FORWARD_ACTION_REGISTRATION = 3; + const long CALL_FORWARD_ACTION_ERASURE = 4; + + /** + * Indicates what to do with the rule. + * + * One of the CALL_FORWARD_ACTION_* constants. It will be either disable (0), + * enable (1), query status (2), registration (3), or erasure (4). + * + * @see 3GPP TS 27.007 7.11 "mode". + */ + readonly attribute unsigned short action; + + const long CALL_FORWARD_REASON_UNCONDITIONAL = 0; + const long CALL_FORWARD_REASON_MOBILE_BUSY = 1; + const long CALL_FORWARD_REASON_NO_REPLY = 2; + const long CALL_FORWARD_REASON_NOT_REACHABLE = 3; + const long CALL_FORWARD_REASON_ALL_CALL_FORWARDING = 4; + const long CALL_FORWARD_REASON_ALL_CONDITIONAL_CALL_FORWARDING = 5; + + /** + * Indicates the reason the call is being forwarded. + * + * One of the CALL_FORWARD_REASON_* constants. It will be either + * unconditional (0), mobile busy (1), no reply (2), not reachable (3), + * all call forwarding (4), or all conditional call forwarding (5). + * + * @see 3GPP TS 27.007 7.11 "reason". + */ + readonly attribute unsigned short reason; + + /** + * Phone number of forwarding address. + */ + readonly attribute DOMString number; + + /** + * When "no reply" is enabled or queried, this gives the time in + * seconds to wait before call is forwarded. + */ + readonly attribute unsigned short timeSeconds; + + /** + * Service for which the call forward is set up. It should be one of the + * nsIDOMMozMobileConnection.ICC_SERVICE_CLASS_* values. + */ + readonly attribute unsigned short serviceClass; +};