/* 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); };