mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 13:25:37 +00:00
Bug 892498 - [User Story] [Suplementary Services] Permanent MMI codes: support calling line identification restriction (+CLIR). r=ferjm
This commit is contained in:
parent
5b8d5a0af2
commit
8dfdf5a8b5
@ -2513,6 +2513,11 @@ CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL_EXC
|
||||
CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_ALL_INCOMING] = ICC_CB_FACILITY_BAIC;
|
||||
CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_INCOMING_ROAMING] = ICC_CB_FACILITY_BIC_ROAM;
|
||||
|
||||
// CLIR constants. Must be in sync with nsIDOMMozMobileConnection interface
|
||||
this.CLIR_DEFAULT = 0;
|
||||
this.CLIR_INVOCATION = 1;
|
||||
this.CLIR_SUPPRESSION = 2;
|
||||
|
||||
// MMI procedure as defined in TS.22.030 6.5.2
|
||||
this.MMI_PROCEDURE_ACTIVATION = "*";
|
||||
this.MMI_PROCEDURE_DEACTIVATION = "#";
|
||||
@ -2605,6 +2610,12 @@ this.MMI_SM_KS_SERVICE_DISABLED = "smServiceDisabled";
|
||||
this.MMI_SM_KS_SERVICE_REGISTERED = "smServiceRegistered";
|
||||
this.MMI_SM_KS_SERVICE_ERASED = "smServiceErased";
|
||||
this.MMI_SM_KS_SERVICE_INTERROGATED = "smServiceInterrogated";
|
||||
this.MMI_SM_KS_SERVICE_NOT_PROVISIONED = "smServiceNotProvisioned";
|
||||
this.MMI_SM_KS_CLIR_PERMANENT = "smClirPermanent";
|
||||
this.MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_ON = "smClirDefaultOnNextCallOn";
|
||||
this.MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_OFF = "smClirDefaultOnNextCallOff";
|
||||
this.MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_ON = "smClirDefaultOffNextCallOn";
|
||||
this.MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_OFF = "smClirDefaultOffNextCallOff";
|
||||
|
||||
/**
|
||||
* CDMA PDU constants
|
||||
|
@ -2465,6 +2465,27 @@ let RIL = {
|
||||
}
|
||||
return;
|
||||
|
||||
// CLIR (non-temporary ones)
|
||||
case MMI_SC_CLIR:
|
||||
options.mmiServiceCode = MMI_KS_SC_CLIR;
|
||||
options.procedure = mmi.procedure;
|
||||
switch (options.procedure) {
|
||||
case MMI_PROCEDURE_INTERROGATION:
|
||||
this.getCLIR(options);
|
||||
return;
|
||||
case MMI_PROCEDURE_ACTIVATION:
|
||||
options.clirMode = CLIR_INVOCATION;
|
||||
break;
|
||||
case MMI_PROCEDURE_DEACTIVATION:
|
||||
options.clirMode = CLIR_SUPPRESSION;
|
||||
break;
|
||||
default:
|
||||
_sendMMIError(MMI_ERROR_KS_ERROR);
|
||||
return;
|
||||
}
|
||||
this.setCLIR(options);
|
||||
return;
|
||||
|
||||
// Call barring
|
||||
case MMI_SC_BAOC:
|
||||
case MMI_SC_BAOIC:
|
||||
@ -2476,8 +2497,6 @@ let RIL = {
|
||||
case MMI_SC_BA_MT:
|
||||
// Call waiting
|
||||
case MMI_SC_CALL_WAITING:
|
||||
// CLIR
|
||||
case MMI_SC_CLIR:
|
||||
_sendMMIError(MMI_ERROR_KS_NOT_SUPPORTED);
|
||||
return;
|
||||
}
|
||||
@ -4983,6 +5002,70 @@ RIL[REQUEST_GET_CLIR] = function REQUEST_GET_CLIR(length, options) {
|
||||
|
||||
options.n = Buf.readUint32(); // Will be TS 27.007 +CLIR parameter 'n'.
|
||||
options.m = Buf.readUint32(); // Will be TS 27.007 +CLIR parameter 'm'.
|
||||
|
||||
if (options.rilMessageType === "sendMMI") {
|
||||
// TS 27.007 +CLIR parameter 'm'.
|
||||
switch (options.m) {
|
||||
// CLIR not provisioned.
|
||||
case 0:
|
||||
options.statusMessage = MMI_SM_KS_SERVICE_NOT_PROVISIONED;
|
||||
break;
|
||||
// CLIR provisioned in permanent mode.
|
||||
case 1:
|
||||
options.statusMessage = MMI_SM_KS_CLIR_PERMANENT;
|
||||
break;
|
||||
// Unknown (e.g. no network, etc.).
|
||||
case 2:
|
||||
options.success = false;
|
||||
options.errorMsg = MMI_ERROR_KS_ERROR;
|
||||
break;
|
||||
// CLIR temporary mode presentation restricted.
|
||||
case 3:
|
||||
// TS 27.007 +CLIR parameter 'n'.
|
||||
switch (options.n) {
|
||||
// Default.
|
||||
case 0:
|
||||
// CLIR invocation.
|
||||
case 1:
|
||||
options.statusMessage = MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_ON;
|
||||
break;
|
||||
// CLIR suppression.
|
||||
case 2:
|
||||
options.statusMessage = MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_OFF;
|
||||
break;
|
||||
default:
|
||||
options.success = false;
|
||||
options.errorMsg = GECKO_ERROR_GENERIC_FAILURE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
// CLIR temporary mode presentation allowed.
|
||||
case 4:
|
||||
// TS 27.007 +CLIR parameter 'n'.
|
||||
switch (options.n) {
|
||||
// Default.
|
||||
case 0:
|
||||
// CLIR suppression.
|
||||
case 2:
|
||||
options.statusMessage = MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_OFF;
|
||||
break;
|
||||
// CLIR invocation.
|
||||
case 1:
|
||||
options.statusMessage = MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_ON;
|
||||
break;
|
||||
default:
|
||||
options.success = false;
|
||||
options.errorMsg = GECKO_ERROR_GENERIC_FAILURE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
options.success = false;
|
||||
options.errorMsg = GECKO_ERROR_GENERIC_FAILURE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.sendDOMMessage(options);
|
||||
};
|
||||
RIL[REQUEST_SET_CLIR] = function REQUEST_SET_CLIR(length, options) {
|
||||
@ -4990,6 +5073,16 @@ RIL[REQUEST_SET_CLIR] = function REQUEST_SET_CLIR(length, options) {
|
||||
if (!options.success) {
|
||||
options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError];
|
||||
}
|
||||
if (options.success && (options.rilMessageType === "sendMMI")) {
|
||||
switch (options.procedure) {
|
||||
case MMI_PROCEDURE_ACTIVATION:
|
||||
options.statusMessage = MMI_SM_KS_SERVICE_ENABLED;
|
||||
break;
|
||||
case MMI_PROCEDURE_DEACTIVATION:
|
||||
options.statusMessage = MMI_SM_KS_SERVICE_DISABLED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.sendDOMMessage(options);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user