* @brief Enumeration for Modem Power Status.
* @since_tizen 2.4
*/
-typedef enum
-{
- TELEPHONY_MODEM_POWER_STATUS_UNKNOWN = -1, /**< Unknown*/
- TELEPHONY_MODEM_POWER_STATUS_ON, /**< Modem power ON */
- TELEPHONY_MODEM_POWER_STATUS_OFF, /**< Modem power OFF */
- TELEPHONY_MODEM_POWER_STATUS_RESET, /**< Modem power RESET */
- TELEPHONY_MODEM_POWER_STATUS_LOW, /**< Modem power LOW */
+typedef enum {
+ TELEPHONY_MODEM_POWER_STATUS_UNKNOWN = -1, /**< Unknown */
+ TELEPHONY_MODEM_POWER_STATUS_ON, /**< Modem power ON */
+ TELEPHONY_MODEM_POWER_STATUS_OFF, /**< Modem power OFF */
+ TELEPHONY_MODEM_POWER_STATUS_RESET, /**< Modem power RESET */
+ TELEPHONY_MODEM_POWER_STATUS_LOW, /**< Modem power LOW */
} telephony_modem_power_status_e;
/**
int telephony_modem_get_power_status(telephony_h handle,
telephony_modem_power_status_e *status);
+/**
+ * @brief Gets the MEID (Mobile Equipment Identifier) of a mobile phone. (for CDMA)
+ *
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/telephony
+ *
+ * @remarks You must release @c meid using free() on success case.
+ *
+ * @param[in] handle The handle from telephony_init()
+ * @param[out] meid The Mobile Equipment Identifier
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed
+ */
+int telephony_modem_get_meid(telephony_h handle, char **meid);
+
+/**
+ * @brief Gets the ESN (Electronic Serial Number) of a mobile phone. (for CDMA)
+ *
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/telephony
+ *
+ * @remarks You must release @c esn using free() on success case.
+ *
+ * @param[in] handle The handle from telephony_init()
+ * @param[out] esn The Electronic Serial Number
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed
+ */
+int telephony_modem_get_esn(telephony_h handle, char **esn);
+
/**
* @}
*/
}
#endif
-#endif // __CAPI_TELEPHONY_MODEM_H__
+#endif /* __CAPI_TELEPHONY_MODEM_H__ */
Name: capi-telephony
Summary: Telephony Core API
-Version: 0.1.52
+Version: 0.1.53
Release: 1
Group: System/Libraries
License: Apache-2.0
#include "telephony_modem.h"
#include "telephony_private.h"
+static int __get_serial_number(TapiHandle *tapi_h, TelMiscSNInformation *data)
+{
+ int ret = TELEPHONY_ERROR_OPERATION_FAILED;
+ GVariant *gv = NULL;
+ GError *gerr = NULL;
+
+ gv = g_dbus_connection_call_sync(tapi_h->dbus_connection,
+ DBUS_TELEPHONY_SERVICE, tapi_h->path, DBUS_TELEPHONY_MODEM_INTERFACE,
+ "GetSerialNumber", NULL, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &gerr);
+
+ if (gv) {
+ int tapi_result;
+ char *tapi_esn = NULL, *tapi_meid = NULL, *tapi_imei = NULL, *tapi_imeisv = NULL;
+ g_variant_get(gv, "(issss)",
+ &tapi_result, &tapi_esn, &tapi_meid, &tapi_imei, &tapi_imeisv);
+ if (tapi_result == 0) {
+ ret = TELEPHONY_ERROR_NONE;
+ g_strlcpy((gchar *)data->szEsn, tapi_esn, TAPI_MISC_ME_SN_LEN_MAX);
+ g_strlcpy((gchar *)data->szMeid, tapi_meid, TAPI_MISC_ME_SN_LEN_MAX);
+
+ g_free(tapi_esn);
+ g_free(tapi_meid);
+ g_free(tapi_imei);
+ g_free(tapi_imeisv);
+ } else {
+ LOGE("OPERATION_FAILED");
+ ret = TELEPHONY_ERROR_OPERATION_FAILED;
+ }
+ g_variant_unref(gv);
+ } else {
+ LOGE("g_dbus_conn failed. error (%s)", gerr->message);
+ if (strstr(gerr->message, "AccessDenied")) {
+ LOGE("PERMISSION_DENIED");
+ ret = TELEPHONY_ERROR_PERMISSION_DENIED;
+ } else {
+ LOGE("OPERATION_FAILED");
+ ret = TELEPHONY_ERROR_OPERATION_FAILED;
+ }
+ g_error_free(gerr);
+ }
+
+ return ret;
+}
+
int telephony_modem_get_imei(telephony_h handle, char **imei)
{
GVariant *gv = NULL;
return TELEPHONY_ERROR_NONE;
}
+
+int telephony_modem_get_meid(telephony_h handle, char **meid)
+{
+ int ret;
+ TapiHandle *tapi_h;
+ TelMiscSNInformation data;
+
+ CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+ CHECK_INPUT_PARAMETER(handle);
+ tapi_h = ((telephony_data *)handle)->tapi_h;
+ CHECK_INPUT_PARAMETER(tapi_h);
+ CHECK_INPUT_PARAMETER(meid);
+
+ ret = __get_serial_number(tapi_h, &data);
+ if (ret == TELEPHONY_ERROR_NONE) {
+ if (strlen((gchar *)data.szMeid) != 0)
+ *meid = strdup((gchar *)data.szMeid);
+ else
+ *meid = NULL;
+ LOGI("MEID:[%s]", *meid);
+ }
+
+ return ret;
+}
+
+int telephony_modem_get_esn(telephony_h handle, char **esn)
+{
+ int ret;
+ TapiHandle *tapi_h;
+ TelMiscSNInformation data;
+
+ CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+ CHECK_INPUT_PARAMETER(handle);
+ tapi_h = ((telephony_data *)handle)->tapi_h;
+ CHECK_INPUT_PARAMETER(tapi_h);
+ CHECK_INPUT_PARAMETER(esn);
+
+ ret = __get_serial_number(tapi_h, &data);
+ if (ret == TELEPHONY_ERROR_NONE) {
+ if (strlen((gchar *)data.szEsn) != 0)
+ *esn = strdup((gchar *)data.szEsn);
+ else
+ *esn = NULL;
+ LOGI("ESN:[%s]", *esn);
+ }
+
+ return ret;
+}
}
ret = TELEPHONY_ERROR_NONE;
} else {
+ LOGE("OPERATION_FAILED");
ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
g_variant_iter_free(iter);
g_variant_unref(dbus_result);
}
} else if (ret == TAPI_API_ACCESS_DENIED) {
+ LOGE("PERMISSION_DENIED");
ret = TELEPHONY_ERROR_PERMISSION_DENIED;
} else {
+ LOGE("OPERATION_FAILED");
ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
CHECK_INPUT_PARAMETER(sid);
ret = __get_serving_network(tapi_h, &data);
- if (ret == TAPI_API_SUCCESS) {
+ if (ret == TELEPHONY_ERROR_NONE) {
*sid = data.info.cdma_info.system_id;
LOGI("sid:[%d]", *sid);
- ret = TELEPHONY_ERROR_NONE;
- } else if (ret == TAPI_API_ACCESS_DENIED) {
- LOGE("PERMISSION_DENIED");
- ret = TELEPHONY_ERROR_PERMISSION_DENIED;
- } else {
- LOGE("OPERATION_FAILED");
- ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
return ret;
CHECK_INPUT_PARAMETER(nid);
ret = __get_serving_network(tapi_h, &data);
- if (ret == TAPI_API_SUCCESS) {
+ if (ret == TELEPHONY_ERROR_NONE) {
*nid = data.info.cdma_info.network_id;
LOGI("nid:[%d]", *nid);
- ret = TELEPHONY_ERROR_NONE;
- } else if (ret == TAPI_API_ACCESS_DENIED) {
- LOGE("PERMISSION_DENIED");
- ret = TELEPHONY_ERROR_PERMISSION_DENIED;
- } else {
- LOGE("OPERATION_FAILED");
- ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
return ret;
CHECK_INPUT_PARAMETER(bs_id);
ret = __get_serving_network(tapi_h, &data);
- if (ret == TAPI_API_SUCCESS) {
+ if (ret == TELEPHONY_ERROR_NONE) {
*bs_id = data.info.cdma_info.base_station_id;
LOGI("bs_id:[%d]", *bs_id);
- ret = TELEPHONY_ERROR_NONE;
- } else if (ret == TAPI_API_ACCESS_DENIED) {
- LOGE("PERMISSION_DENIED");
- ret = TELEPHONY_ERROR_PERMISSION_DENIED;
- } else {
- LOGE("OPERATION_FAILED");
- ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
return ret;
CHECK_INPUT_PARAMETER(bs_latitude);
ret = __get_serving_network(tapi_h, &data);
- if (ret == TAPI_API_SUCCESS) {
+ if (ret == TELEPHONY_ERROR_NONE) {
*bs_latitude = data.info.cdma_info.base_station_latitude;
LOGI("bs_latitude:[%d]", *bs_latitude);
- ret = TELEPHONY_ERROR_NONE;
- } else if (ret == TAPI_API_ACCESS_DENIED) {
- LOGE("PERMISSION_DENIED");
- ret = TELEPHONY_ERROR_PERMISSION_DENIED;
- } else {
- LOGE("OPERATION_FAILED");
- ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
return ret;
CHECK_INPUT_PARAMETER(bs_longitude);
ret = __get_serving_network(tapi_h, &data);
- if (ret == TAPI_API_SUCCESS) {
+ if (ret == TELEPHONY_ERROR_NONE) {
*bs_longitude = data.info.cdma_info.base_station_longitude;
LOGI("bs_longitude:[%d]", *bs_longitude);
- ret = TELEPHONY_ERROR_NONE;
- } else if (ret == TAPI_API_ACCESS_DENIED) {
- LOGE("PERMISSION_DENIED");
- ret = TELEPHONY_ERROR_PERMISSION_DENIED;
- } else {
- LOGE("OPERATION_FAILED");
- ret = TELEPHONY_ERROR_OPERATION_FAILED;
}
return ret;
/* Modem value */
char *imei = NULL;
+ char *meid = NULL;
+ char *esn = NULL;
telephony_modem_power_status_e power_status = 0;
/* Ready */
else
LOGI("Modem power status is [%d] (0=on,1=off,2=rst,3=low)", power_status);
+ ret_value = telephony_modem_get_meid(handle_list.handle[0], &meid);
+ if (ret_value != TELEPHONY_ERROR_NONE) {
+ LOGE("telephony_modem_get_meid() failed!!! [%d]", ret_value);
+ } else {
+ LOGI("MEID is [%s]", meid);
+ free(meid);
+ }
+
+ ret_value = telephony_modem_get_esn(handle_list.handle[0], &esn);
+ if (ret_value != TELEPHONY_ERROR_NONE) {
+ LOGE("telephony_modem_get_esn() failed!!! [%d]", ret_value);
+ } else {
+ LOGI("ESN is [%s]", esn);
+ free(esn);
+ }
+
/* set_noti_cb */
for (i = 0; i < (sizeof(sim_noti_tbl) / sizeof(int)); i++) {
ret_value = telephony_set_noti_cb(handle_list.handle[0], sim_noti_tbl[i], sim_noti_cb, NULL);