/* 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 nsIDOMMozMobileCFInfo; [scriptable, builtinclass, uuid(c7fdf0f0-a740-11e2-9e96-0800200c9a66)] 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; /** * These two fields can be accessed by privileged applications with the * 'mobilenetwork' permission. */ readonly attribute DOMString lastKnownNetwork; readonly attribute DOMString lastKnownHomeNetwork; /** * Indicates the state of the device's ICC card. * * Possible values: null, 'unknown', 'absent', 'pinRequired', 'pukRequired', * 'networkLocked', 'corporateLocked', 'serviceProviderLocked', 'ready'. */ readonly attribute DOMString cardState; /** * Indicates the number of retries remaining when cardState equals 'pinRequired' * or 'pukRequired'. 0 denotes the retry count is unavailable. * * Value is undefined for other cardState values. */ readonly attribute long retryCount; /** * 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; /** * 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(); /** * 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); /** * 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', 'InvalidCallBarringOption' 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', * 'InvalidCallBarringOption' or 'GenericFailure'. */ nsIDOMDOMRequest getCallBarringOption(in jsval option); /** * 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(); /** * 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 '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 * 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; };