GET_OPLMWACT,
GET_SPN,
GET_CPHS_NET_NAME,
+ GET_PSISMSC,
/* Misc */
- AUTHENTICATION = 20,
+ AUTHENTICATION = 21,
VERIFY_SEC,
VERIFY_PUK,
CHANGE_PIN,
DISABLE_FACILITY,
- ENABLE_FACILITY = 25,
+ ENABLE_FACILITY = 26,
GET_FACILITY,
GET_LOCK_INFO,
TRANSFER_APDU,
GET_ATR,
- GET_FIELDS = 30, /* for get various data at once */
+ GET_FIELDS = 31, /* for get various data at once */
GET_GID,
SET_POWERSTATE,
GET_IMPI,
GET_IMPU,
- GET_DOMAIN = 35,
+ GET_DOMAIN = 36,
GET_PCSCF,
GET_APP_LIST,
GET_ISIM_SERVICE_TABLE,
case GET_SVCT:
case GET_MSISDN:
case GET_OPLMWACT:
+ case GET_PSISMSC:
case GET_CPHS_NET_NAME:
case GET_CALL_FORWARDING:
case SET_CALL_FORWARDING:
return TRUE;
}
+static gboolean on_sim_get_psismsc(TelephonySim *sim,
+ GDBusMethodInvocation *invocation, gpointer user_data)
+{
+ struct custom_data *ctx = user_data;
+ CoreObject *co_sim = NULL;
+
+ DBUS_SIM_GET_COSIM(invocation, co_sim, ctx->server);
+ DBUS_SIM_CHECK_SIM_STATUS(invocation, GET_PSISMSC, co_sim);
+ DBUS_SIM_CHECK_SIM_TYPE(co_sim, "Get PSISMSC");
+
+ /* Dispatch request */
+ dtapi_dispatch_request(ctx, sim, invocation,
+ TREQ_SIM_GET_PSISMSC,
+ NULL, 0);
+
+ return TRUE;
+}
+
static gboolean on_sim_get_spn(TelephonySim *sim,
GDBusMethodInvocation *invocation, gpointer user_data)
{
G_CALLBACK(on_sim_get_oplmnwact), ctx);
g_signal_connect(sim,
+ "handle-get-psismsc",
+ G_CALLBACK(on_sim_get_psismsc), ctx);
+
+ g_signal_connect(sim,
"handle-get-spn",
G_CALLBACK(on_sim_get_spn), ctx);
}
break;
+ case TRESP_SIM_GET_PSISMSC:{
+ const struct tresp_sim_read *resp_read = data;
+ CoreObject *co_sim = NULL;
+
+ dbg("[%s] SIM_GET_PSISMSC - Result: [%s], URIDATA[%s]", cpname,
+ (resp_read->result == SIM_ACCESS_SUCCESS ? "Success" : "Fail"),
+ (resp_read->data.psismsc.uridata != NULL ? resp_read->data.psismsc.uridata : "NULL"));
+
+ co_sim = __get_sim_co_from_ur(ctx->server, ur);
+ if (!co_sim) {
+ err("SIM Core object is NULL");
+ return FALSE;
+ }
+
+ /* Added check to send empty string in case request is successful and value is NULL. To be checked and updated if need be */
+ if (resp_read->result == SIM_ACCESS_SUCCESS && !resp_read->data.psismsc.uridata) {
+ telephony_sim_complete_get_psismsc(dbus_info->interface_object,
+ dbus_info->invocation, resp_read->result, "");
+ }
+ else {
+ telephony_sim_complete_get_psismsc(dbus_info->interface_object,
+ dbus_info->invocation, resp_read->result, (const gchar *)resp_read->data.psismsc.uridata);
+ }
+ }
+ break;
+
case TRESP_SIM_REQ_AUTHENTICATION: {
const struct tresp_sim_req_authentication *resp_auth = data;
GVariantBuilder builder;