summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/nsIDataCallInterfaceService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/nsIDataCallInterfaceService.idl')
-rw-r--r--dom/system/gonk/nsIDataCallInterfaceService.idl268
1 files changed, 268 insertions, 0 deletions
diff --git a/dom/system/gonk/nsIDataCallInterfaceService.idl b/dom/system/gonk/nsIDataCallInterfaceService.idl
new file mode 100644
index 000000000..c387879fa
--- /dev/null
+++ b/dom/system/gonk/nsIDataCallInterfaceService.idl
@@ -0,0 +1,268 @@
+/* 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 "nsISupports.idl"
+
+[scriptable, uuid(6b66446a-7000-438f-8e1b-b56b4cbf4fa9)]
+interface nsIDataCall : nsISupports
+{
+ /**
+ * Data call fail cause. One of the nsIDataCallInterface.DATACALL_FAIL_*
+ * values.
+ */
+ readonly attribute long failCause;
+
+ /**
+ * If failCause != nsIDataCallInterface.DATACALL_FAIL_NONE, this field
+ * indicates the suggested retry back-off timer. The unit is milliseconds.
+ */
+ readonly attribute long suggestedRetryTime;
+
+ /**
+ * Context ID, uniquely identifies this call.
+ */
+ readonly attribute long cid;
+
+ /**
+ * Data call network state. One of the nsIDataCallInterface.DATACALL_STATE_*
+ * values.
+ */
+ readonly attribute long active;
+
+ /**
+ * Data call connection type. One of the
+ * nsIDataCallInterface.DATACALL_PDP_TYPE_* values.
+ */
+ readonly attribute long pdpType;
+
+ /**
+ * The network interface name.
+ */
+ readonly attribute DOMString ifname;
+
+ /**
+ * A space-delimited list of addresses with optional "/" prefix length.
+ */
+ readonly attribute DOMString addresses;
+
+ /**
+ * A space-delimited list of DNS server addresses.
+ */
+ readonly attribute DOMString dnses;
+
+ /**
+ * A space-delimited list of default gateway addresses.
+ */
+ readonly attribute DOMString gateways;
+
+ /**
+ * A space-delimited list of Proxy Call State Control Function addresses for
+ * IMS client.
+ */
+ readonly attribute DOMString pcscf;
+
+ /**
+ * MTU received from network, -1 if not set or invalid.
+ */
+ readonly attribute long mtu;
+};
+
+[scriptable, uuid(e119c54b-9354-4ad6-a1ee-18608bde9320)]
+interface nsIDataCallInterfaceListener : nsISupports
+{
+ /**
+ * Notify data call interface listeners about unsolicited data call state
+ * changes.
+ */
+ void notifyDataCallListChanged(in uint32_t count,
+ [array, size_is(count)] in nsIDataCall
+ dataCalls);
+};
+
+[scriptable, uuid(db0b640a-3b3a-4f48-84dc-256e176876c2)]
+interface nsIDataCallCallback : nsISupports
+{
+ /**
+ * Called when setupDataCall() returns succesfully.
+ */
+ void notifySetupDataCallSuccess(in nsIDataCall dataCall);
+
+ /**
+ * Called when getDataCallList() returns succesfully.
+ */
+ void notifyGetDataCallListSuccess(in uint32_t count,
+ [array, size_is(count)] in nsIDataCall
+ dataCalls);
+ /**
+ * Called when request returns succesfully.
+ */
+ void notifySuccess();
+
+ /**
+ * Called when request returns error.
+ */
+ void notifyError(in AString errorMsg);
+};
+
+[scriptable, uuid(ec219021-8623-4b9f-aba5-4db58c60684f)]
+interface nsIDataCallInterface : nsISupports
+{
+ /**
+ * Data fail causes, defined in TS 24.008.
+ */
+ const long DATACALL_FAIL_NONE = 0;
+ const long DATACALL_FAIL_OPERATOR_BARRED = 0x08;
+ const long DATACALL_FAIL_INSUFFICIENT_RESOURCES = 0x1A;
+ const long DATACALL_FAIL_MISSING_UKNOWN_APN = 0x1B;
+ const long DATACALL_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 0x1C;
+ const long DATACALL_FAIL_USER_AUTHENTICATION = 0x1D;
+ const long DATACALL_FAIL_ACTIVATION_REJECT_GGSN = 0x1E;
+ const long DATACALL_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 0x1F;
+ const long DATACALL_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 0x20;
+ const long DATACALL_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 0x21;
+ const long DATACALL_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 0x22;
+ const long DATACALL_FAIL_NSAPI_IN_USE = 0x23;
+ const long DATACALL_FAIL_ONLY_IPV4_ALLOWED = 0x32;
+ const long DATACALL_FAIL_ONLY_IPV6_ALLOWED = 0x33;
+ const long DATACALL_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 0x34;
+ const long DATACALL_FAIL_PROTOCOL_ERRORS = 0x6F;
+ /* Not mentioned in the specification */
+ const long DATACALL_FAIL_VOICE_REGISTRATION_FAIL = -1;
+ const long DATACALL_FAIL_DATA_REGISTRATION_FAIL = -2;
+ const long DATACALL_FAIL_SIGNAL_LOST = -3;
+ const long DATACALL_FAIL_PREF_RADIO_TECH_CHANGED = -4;
+ const long DATACALL_FAIL_RADIO_POWER_OFF = -5;
+ const long DATACALL_FAIL_TETHERED_CALL_ACTIVE = -6;
+ const long DATACALL_FAIL_ERROR_UNSPECIFIED = 0xFFFF;
+
+ /**
+ * Data call network state.
+ */
+ const long DATACALL_STATE_INACTIVE = 0;
+ const long DATACALL_STATE_ACTIVE_DOWN = 1;
+ const long DATACALL_STATE_ACTIVE_UP = 2;
+
+ /**
+ * Data call authentication type. Must match the values in ril_consts
+ * RIL_DATACALL_AUTH_TO_GECKO array.
+ */
+ const long DATACALL_AUTH_NONE = 0;
+ const long DATACALL_AUTH_PAP = 1;
+ const long DATACALL_AUTH_CHAP = 2;
+ const long DATACALL_AUTH_PAP_OR_CHAP = 3;
+
+ /**
+ * Data call protocol type. Must match the values in ril_consts
+ * RIL_DATACALL_PDP_TYPES array.
+ */
+ const long DATACALL_PDP_TYPE_IPV4 = 0;
+ const long DATACALL_PDP_TYPE_IPV4V6 = 1;
+ const long DATACALL_PDP_TYPE_IPV6 = 2;
+
+ /**
+ * Reason for deactivating data call.
+ */
+ const long DATACALL_DEACTIVATE_NO_REASON = 0;
+ const long DATACALL_DEACTIVATE_RADIO_SHUTDOWN = 1;
+
+ /**
+ * Setup data call.
+ *
+ * @param apn
+ * Apn to connect to.
+ * @param username
+ * Username for apn.
+ * @param password
+ * Password for apn.
+ * @param authType
+ * Authentication type. One of the DATACALL_AUTH_* values.
+ * @param pdpType
+ * Connection type. One of the DATACALL_PDP_TYPE_* values.
+ * @param nsIDataCallCallback
+ * Called when request is finished.
+ *
+ * If successful, the notifySetupDataCallSuccess() will be called with the
+ * new nsIDataCall.
+ *
+ * Otherwise, the notifyError() will be called, and the error will be either
+ * 'RadioNotAvailable', 'OpNotAllowedBeforeRegToNw',
+ * 'OpNotAllowedDuringVoiceCall', 'RequestNotSupported' or 'GenericFailure'.
+ */
+ void setupDataCall(in AString apn, in AString username,
+ in AString password, in long authType,
+ in long pdpType,
+ in nsIDataCallCallback callback);
+
+ /**
+ * Deactivate data call.
+ *
+ * @param cid
+ * Context id.
+ * @param reason
+ * Disconnect Reason. One of the DATACALL_DEACTIVATE_* values.
+ * @param nsIDataCallCallback
+ * Called when request is finished.
+ *
+ * If successful, the notifySuccess() will be called.
+ *
+ * Otherwise, the notifyError() will be called, and the error will be either
+ * 'RadioNotAvailable' or 'GenericFailure'.
+ */
+ void deactivateDataCall(in long cid,
+ in long reason,
+ in nsIDataCallCallback callback);
+
+ /**
+ * Get current data call list.
+ *
+ * @param nsIDataCallCallback
+ * Called when request is finished.
+ *
+ * If successful, the notifyGetDataCallListSuccess() will be called with the
+ * list of nsIDataCall(s).
+ *
+ * Otherwise, the notifyError() will be called, and the error will be either
+ * 'RadioNotAvailable' or 'GenericFailure'.
+ */
+ void getDataCallList(in nsIDataCallCallback callback);
+
+ /**
+ * Set data registration state.
+ *
+ * @param attach
+ * whether to attach data registration or not.
+ * @param nsIDataCallCallback
+ * Called when request is finished.
+ *
+ * If successful, the notifySuccess() will be called.
+ *
+ * Otherwise, the notifyError() will be called, and the error will be either
+ * 'RadioNotAvailable', 'SubscriptionNotAvailable' or 'GenericFailure'.
+ */
+ void setDataRegistration(in boolean attach,
+ in nsIDataCallCallback callback);
+
+ /**
+ * Register to receive unsolicited events from this nsIDataCallInterface.
+ */
+ void registerListener(in nsIDataCallInterfaceListener listener);
+
+ /**
+ * Unregister to stop receiving unsolicited events from this
+ * nsIDataCallInterface.
+ */
+ void unregisterListener(in nsIDataCallInterfaceListener listener);
+};
+
+[scriptable, uuid(64700406-7429-4743-a6ae-f82e9877fd0d)]
+interface nsIDataCallInterfaceService : nsISupports
+{
+ /**
+ * Get the corresponding data call interface.
+ *
+ * @param clientId
+ * clientId of the data call interface to get.
+ */
+ nsIDataCallInterface getDataCallInterface(in long clientId);
+}; \ No newline at end of file