g_variant_unref(dbus_result);
}
-
EXPORT_API int tel_dial_call(TapiHandle *handle, const TelCallDial_t *pParams, tapi_response_cb callback, void *user_data)
{
struct tapi_resp_data *evt_cb_data = 0;
gboolean call_direction = FALSE;
gint call_state = 0;
gboolean call_multiparty_state = FALSE;
+ gboolean volte_call = FALSE;
TAPI_RET_ERR_NUM_IF_FAIL(handle, TAPI_API_INVALID_PTR);
TAPI_RET_ERR_NUM_IF_FAIL(out, TAPI_API_INVALID_PTR);
"GetStatus", param, 0, G_DBUS_CALL_FLAGS_NONE, TAPI_DEFAULT_TIMEOUT, handle->ca, &gerr);
if (gv) {
- g_variant_get(gv, "(isibibb)", &callHandle, &call_number, &call_type, &call_direction, &call_state, &call_multiparty_state);
+ g_variant_get(gv, "(isibibb)", &callHandle,
+ &call_number, &call_type, &call_direction,
+ &call_state, &call_multiparty_state, &volte_call);
out->CallHandle = (int)callHandle;
out->bMoCall = (int)call_direction;
out->CallType = (TelCallType_t)call_type;
out->CallState = (TelCallStates_t)call_state;
out->bConferenceState = (int)call_multiparty_state;
+ out->bVolteCall = (int)volte_call;
g_free(call_number);
g_variant_unref(gv);
gchar *key = 0;
GVariant *value = 0;
+ memset(&data, 0x0, sizeof(TelCallStatus_t));
g_variant_get(gv, "(aa{sv})", &iter);
while (g_variant_iter_next(iter, "a{sv}", &iter_row)) {
data.CallState = (int)g_variant_get_int32(value);
else if (!g_strcmp0(key, "call_multiparty_state"))
data.bConferenceState = (int)g_variant_get_boolean(value);
+ else if (!g_strcmp0(key, "is_volte_call"))
+ data.bVolteCall = (int)g_variant_get_boolean(value);
}
g_variant_iter_free(iter_row);
return ret;
}
-
TelCallInfoWaitingNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Waiting noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "Forwarded")) {
TelCallInfoForwardedNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Forwarded noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "ForwardedCall")) {
TelCallInfoForwardedCallNoti_t data;
g_variant_get(param, "(i)", &data.id);
dbg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Forwarded Call noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "BarredIncoming")) {
TelCallInfoBarredIncomingNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Barred Incoming noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "BarredOutgoing")) {
TelCallInfoBarredOutgoingNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Barred Outgoing noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "ForwardConditional")) {
TelCallInfoForwardConditionalNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Forward Conditional noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "ForwardUnconditional")) {
TelCallInfoForwardUnconditionalNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Forward Unconditional noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "CallActive")) {
TelCallInfoActiveNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Call Active noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "CallHeld")) {
TelCallInfoHeldNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Call Held noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "CallJoined")) {
TelCallInfoJoinedNoti_t data;
g_variant_get(param, "(i)", &data.id);
msg("[ check ] (%s) %s : data.id(%d)", handle->cp_name, "Call Info Call Joined noti", data.id);
- TAPI_INVOKE_NOTI_CALLBACK(&data.id);
+ TAPI_INVOKE_NOTI_CALLBACK(&data);
} else if (!g_strcmp0(sig, "CallPrivacyMode")) {
TelCallVoicePrivacyNoti_t data;
g_variant_get(param, "(i)", &data.privacy_mode);
if (!g_strcmp0(sig, "OemData")) {
TelOemNotiData_t oem_data = {0};
gchar *data = NULL;
- gsize decoded_data_len = 0;
g_variant_get(param, "(is)", &oem_data.oem_id, &data);
- oem_data.data = g_base64_decode((const gchar *)data, &decoded_data_len);
+ oem_data.data = g_base64_decode((const gchar *)data, &oem_data.data_len);
if (oem_data.data) {
- oem_data.data_len = (unsigned int)decoded_data_len;
msg("[%s] id:[%d] len:[%d]", handle->cp_name, oem_data.oem_id, oem_data.data_len);
TAPI_INVOKE_NOTI_CALLBACK(&oem_data);
msg(" - ims_voice_support_status = %d", *status);
}
+static void on_noti_volte_enable(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
+{
+ int *status = data;
+
+ msg("");
+ msgp("property(%s) receive !!", TAPI_PROP_NETWORK_VOLTE_ENABLE);
+
+ if (status != NULL)
+ msg(" - volte_enable = %d", *status);
+}
+
static void on_noti_registration_status(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
{
TelNetworkRegistrationStatus_t *noti = data;
TAPI_PROP_NETWORK_IMS_VOICE_SUPPORT_STATUS, on_prop_ims_voice_status, NULL);
if (ret != TAPI_API_SUCCESS)
msg("event register failed(%d)", ret);
+
+ ret = tel_register_noti_event (handle,
+ TAPI_PROP_NETWORK_VOLTE_ENABLE, on_noti_volte_enable, NULL);
+ if (ret != TAPI_API_SUCCESS)
+ msg("event register failed(%d)", ret);
}