gecko/dom/network/interfaces/nsIDOMMobileConnection.idl

555 lines
16 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 nsIDOMMozMobileICCInfo;
interface nsIDOMMozMobileConnectionInfo;
interface nsIDOMMozMobileNetworkInfo;
interface nsIDOMMozMobileCellInfo;
interface nsIDOMMozIccManager;
interface nsIDOMMozMobileCFInfo;
[scriptable, builtinclass, uuid(2065b3c3-e876-4be1-b373-428ee254a63e)]
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);
/**
* Indicates the state of the device's ICC card.
*
* Possible values: null, 'unknown', 'absent', 'pinRequired', 'pukRequired',
* 'networkLocked', 'corporateLocked', 'serviceProviderLocked', 'ready'.
*/
readonly attribute DOMString cardState;
/**
* Information stored in the device's ICC card.
*/
readonly attribute nsIDOMMozMobileICCInfo iccInfo;
/**
* Information about the voice connection.
*/
readonly attribute nsIDOMMozMobileConnectionInfo voice;
/**
* Information about the data connection.
*/
readonly attribute nsIDOMMozMobileConnectionInfo data;
/**
* The selection mode of the voice and data networks.
*
* Possible values: null (unknown), 'automatic', 'manual'
*/
readonly attribute DOMString networkSelectionMode;
/**
* IccManager provides access to ICC related funcionality.
*/
readonly attribute nsIDOMMozIccManager icc;
/**
* 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();
/**
* Find out about the status of an ICC lock (e.g. the PIN lock).
*
* @param lockType
* Identifies the lock type, e.g. "pin" for the PIN lock, "fdn" for
* the FDN lock.
*
* @return a DOM Request.
* The request's result will be an object containing
* information about the specified lock's status,
* e.g. {lockType: "pin", enabled: true}.
*/
nsIDOMDOMRequest getCardLock(in DOMString lockType);
/**
* Unlock a card lock.
*
* @param info
* An object containing the information necessary to unlock
* the given lock. At a minimum, this object must have a
* "lockType" attribute which specifies the type of lock, e.g.
* "pin" for the PIN lock. Other attributes are dependent on
* the lock type.
*
* Examples:
*
* (1) Unlocking the PIN:
*
* unlockCardLock({lockType: "pin",
* pin: "..."});
*
* (2) Unlocking the PUK and supplying a new PIN:
*
* unlockCardLock({lockType: "puk",
* puk: "...",
* newPin: "..."});
*
* (3) Network depersonalization. Unlocking the network control key (NCK).
*
* unlockCardLock({lockType: "nck",
* pin: "..."});
*
* (4) Corporate depersonalization. Unlocking the corporate control key (CCK).
*
* unlockCardLock({lockType: "cck",
* pin: "..."});
*
* (5) Service Provider depersonalization. Unlocking the service provider
* control key (SPCK).
*
* unlockCardLock({lockType: "spck",
* pin: "..."});
*
* @return a nsIDOMDOMRequest.
* The request's result will be an object containing
* information about the unlock operation.
*
* Examples:
*
* (1) Unlocking failed:
*
* {
* lockType: "pin",
* success: false,
* retryCount: 2
* }
*
* (2) Unlocking succeeded:
*
* {
* lockType: "pin",
* success: true
* }
*/
nsIDOMDOMRequest unlockCardLock(in jsval info);
/**
* Modify the state of a card lock.
*
* @param info
* An object containing information about the lock and
* how to modify its state. At a minimum, this object
* must have a "lockType" attribute which specifies the
* type of lock, e.g. "pin" for the PIN lock. Other
* attributes are dependent on the lock type.
*
* Examples:
*
* (1a) Disabling the PIN lock:
*
* setCardLock({lockType: "pin",
* pin: "...",
* enabled: false});
*
* (1b) Disabling the FDN lock:
*
* setCardLock({lockType: "fdn",
* pin2: "...",
* enabled: false});
*
* (2) Changing the PIN:
*
* setCardLock({lockType: "pin",
* pin: "...",
* newPin: "..."});
*
* @return a nsIDOMDOMRequest.
* The request's result will be an object containing
* information about the operation.
*
* Examples:
*
* (1) Enabling/Disabling card lock failed or change card lock failed.
*
* {
* lockType: "pin",
* success: false,
* retryCount: 2
* }
*
* (2) Enabling/Disabling card lock succeed or change card lock succeed.
*
* {
* lockType: "pin",
* success: true
* }
*/
nsIDOMDOMRequest setCardLock(in jsval info);
/**
* 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', 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',
* or 'GenericFailure'.
*/
nsIDOMDOMRequest getCallForwardingOption(in unsigned short reason);
/**
* The 'cardstatechange' event is notified when the 'cardState' attribute
* changes value.
*/
[implicit_jscontext] attribute jsval oncardstatechange;
/**
* The 'iccinfochange' event is notified whenever the icc info object
* changes.
*/
[implicit_jscontext] attribute jsval oniccinfochange;
/**
* 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 'icccardlockerror' event is notified whenever 'unlockCardLock' or
* 'setCardLock' fails.
*/
[implicit_jscontext] attribute jsval onicccardlockerror;
/**
* The 'oncfstatechange' event is notified whenever the call forwarding
* state changes.
*/
[implicit_jscontext] attribute jsval oncfstatechange;
};
[scriptable, uuid(c9d9ff61-a2f0-41cd-b478-9cefa7b31f31)]
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;
/**
* Mobile Country Code (MCC) of last known network operator.
*/
readonly attribute DOMString lastKnownMcc;
/**
* 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(aa546788-4f34-488b-8c3e-2786e02ab992)]
interface nsIDOMMozMobileCellInfo: nsISupports
{
/**
* Mobile Location Area Code (LAC) for GSM/WCDMA networks.
*/
readonly attribute unsigned short gsmLocationAreaCode;
/**
* Mobile Cell ID for GSM/WCDMA networks.
*/
readonly attribute unsigned long gsmCellId;
};
[scriptable, uuid(10d5c5a2-d43f-4f94-8657-cf7ccabbab6e)]
interface nsIDOMMozMobileICCInfo : nsISupports
{
/**
* Integrated Circuit Card Identifier.
*/
readonly attribute DOMString iccid;
/**
* Mobile Country Code (MCC) of the subscriber's home network.
*/
readonly attribute DOMString mcc;
/**
* Mobile Network Code (MNC) of the subscriber's home network.
*/
readonly attribute DOMString mnc;
/**
* Service Provider Name (SPN) of the subscriber's home network.
*/
readonly attribute DOMString spn;
/**
* Network name must be a part of displayed carrier name.
*/
readonly attribute boolean isDisplayNetworkNameRequired;
/**
* Service provider name must be a part of displayed carrier name.
*/
readonly attribute boolean isDisplaySpnRequired;
/**
* Mobile Station ISDN Number (MSISDN) of the subscriber's, aka
* his phone number.
*/
readonly attribute DOMString msisdn;
};
[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
* nsIDOMMozMobileConnectionInfo.ICC_SERVICE_CLASS_* values.
*/
readonly attribute unsigned short serviceClass;
};