gecko/dom/mobileconnection/interfaces/nsIDOMMobileConnection.idl

778 lines
24 KiB
Plaintext

/* 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;
};
dictionary MozCallBarringOption
{
/**
* Indicates the program the call is being barred.
*
* It shall be one of the nsIDOMMozMobileConnection.CALL_BARRING_PROGRAM_*
* values.
*/
unsigned short program;
/**
* Enable or disable the call barring program.
*/
boolean enabled;
/**
* Barring password. Use "" if no password specified.
*/
DOMString password;
/**
* Service for which the call barring is set up.
*
* It shall be one of the nsIDOMMozMobileConnection.ICC_SERVICE_CLASS_*
* values.
*/
unsigned short serviceClass;
};
dictionary DOMMMIResult
{
/**
* String key that identifies the service associated with the MMI code
* request. The UI is supposed to handle the localization of the strings
* associated with this string key.
*/
DOMString serviceCode;
/**
* String key containing the status message of the associated MMI request.
* The UI is supposed to handle the localization of the strings associated
* with this string key.
*/
DOMString statusMessage;
/**
* Some MMI requests like call forwarding or PIN/PIN2/PUK/PUK2 related
* requests provide extra information along with the status message, this
* information can be a number, a string key or an array of string keys.
*/
jsval additionalInformation;
};
dictionary DOMCLIRStatus
{
/**
* CLIR parameter 'n': parameter sets the adjustment for outgoing calls.
*
* 0 Presentation indicator is used according to the subscription of the
* CLIR service (uses subscription default value).
* 1 CLIR invocation (restricts CLI presentation).
* 2 CLIR suppression (allows CLI presentation).
*/
unsigned short n;
/**
* CLIR parameter 'm': parameter shows the subscriber CLIR service status in
* the network.
* 0 CLIR not provisioned.
* 1 CLIR provisioned in permanent mode.
* 2 unknown (e.g. no network, etc.).
* 3 CLIR temporary mode presentation restricted.
*
* @see 3GPP TS 27.007 7.7 Defined values
*/
unsigned short m;
};