diff options
Diffstat (limited to 'dom/system/gonk/nsIDataCallInterfaceService.idl')
-rw-r--r-- | dom/system/gonk/nsIDataCallInterfaceService.idl | 268 |
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 |