diff --git a/src/ofono.h b/src/ofono.h index e5b4acbe..4d76d20a 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -281,6 +281,11 @@ gboolean __ofono_sms_datagram_watch_remove(struct ofono_sms *sms, unsigned short __ofono_sms_get_next_ref(struct ofono_sms *sms); #include + +ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim, + int ust_service, + int sst_service); + #include typedef void (*__ofono_sms_sim_download_cb_t)(ofono_bool_t ok, diff --git a/src/sim.c b/src/sim.c index e5e304cf..f362565b 100644 --- a/src/sim.c +++ b/src/sim.c @@ -1928,6 +1928,21 @@ const unsigned char *ofono_sim_get_cphs_service_table(struct ofono_sim *sim) return sim->cphs_service_table; } +ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim, + int ust_service, + int sst_service) +{ + if (sim->efust) + return sim_ust_is_available(sim->efust, sim->efust_length, + ust_service); + + if (sim->efsst) + return sim_sst_is_active(sim->efsst, sim->efsst_length, + sst_service); + + return FALSE; +} + static void sim_inserted_update(struct ofono_sim *sim) { DBusConnection *conn = ofono_dbus_get_connection();