From 1930b686433f9d76ed510dea3ac5798c3bb62c6b Mon Sep 17 00:00:00 2001 From: Suresh Kumar N Date: Wed, 9 Dec 2015 20:26:46 +0530 Subject: [PATCH 1/1] Defining volte state variables Change-Id: I0b2592334605f7cd3d2361f6f94bc2b358d7f4fc --- introspection/call.xml | 1 + introspection/network.xml | 6 ++++++ src/dtapi_call.c | 9 ++++++++- src/dtapi_network.c | 15 +++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/introspection/call.xml b/introspection/call.xml index a5d8c1f..06d219a 100644 --- a/introspection/call.xml +++ b/introspection/call.xml @@ -98,6 +98,7 @@ + diff --git a/introspection/network.xml b/introspection/network.xml index c52d687..2704e06 100644 --- a/introspection/network.xml +++ b/introspection/network.xml @@ -505,6 +505,12 @@ --> + + + diff --git a/src/dtapi_call.c b/src/dtapi_call.c index 1c76dc2..a9f6109 100644 --- a/src/dtapi_call.c +++ b/src/dtapi_call.c @@ -422,6 +422,7 @@ static gboolean on_call_get_status(TelephonyCall *call, gboolean call_direction; gint call_status; gboolean call_multiparty_state; + gboolean is_volte_call; if (!check_access_control(p_cynara, invocation, AC_CALL, "r")) return TRUE; @@ -451,10 +452,12 @@ static gboolean on_call_get_status(TelephonyCall *call, call_status = tcore_call_object_get_status(call_obj); call_multiparty_state = tcore_call_object_get_multiparty_state(call_obj); + is_volte_call = tcore_call_object_get_is_volte_call(call_obj); telephony_call_complete_get_status(call, invocation, call_handle, call_number, call_type, - call_direction, call_status, call_multiparty_state); + call_direction, call_status, call_multiparty_state, + is_volte_call); return TRUE; } @@ -479,6 +482,7 @@ static gboolean on_call_get_status_all(TelephonyCall *call, gboolean call_direction; gint call_status; gboolean call_multiparty_state; + gboolean is_volte_call; int len, i; @@ -529,6 +533,7 @@ static gboolean on_call_get_status_all(TelephonyCall *call, } call_multiparty_state = tcore_call_object_get_multiparty_state(call_obj); + is_volte_call = tcore_call_object_get_is_volte_call(call_obj); dbg("Call handle: [%d] Call ID: [%d] Call number: [%s] Call number len: [%d]", handle, call_id, call_number, len); @@ -563,6 +568,8 @@ static gboolean on_call_get_status_all(TelephonyCall *call, g_variant_new_int32(call_status)); g_variant_builder_add(&b, "{sv}", "call_multiparty_state", g_variant_new_boolean(call_multiparty_state)); + g_variant_builder_add(&b, "{sv}", "is_volte_call", + g_variant_new_boolean(is_volte_call)); g_variant_builder_close(&b); /* Next Call object */ diff --git a/src/dtapi_network.c b/src/dtapi_network.c index f23ac56..e9e53bc 100644 --- a/src/dtapi_network.c +++ b/src/dtapi_network.c @@ -964,6 +964,7 @@ gboolean dbus_plugin_setup_network_interface(TelephonyObjectSkeleton *object, telephony_network_set_access_technology(network, NETWORK_ACT_UNKNOWN); telephony_network_set_cell_id(network, 0); telephony_network_set_ims_voice_status(network, NETWORK_IMS_VOICE_UNKNOWN); + telephony_network_set_volte_enable(network, FALSE); telephony_network_set_circuit_status(network, NETWORK_SERVICE_DOMAIN_STATUS_NO); telephony_network_set_lac(network, 0); telephony_network_set_tac(network, 0); @@ -1661,6 +1662,20 @@ gboolean dbus_plugin_network_notification(struct custom_data *ctx, } break; + case TNOTI_NETWORK_IMS_REGISTRATION_STATUS: { + const struct tnoti_network_ims_registration_info *ims_reg_info = data; + + dbg("TNOTI_NETWORK_IMS_REGISTRATION_STATUS"); + + if (ims_reg_info->is_registered + && (ims_reg_info->feature_mask & NETWORK_IMS_REG_FEATURE_TYPE_VOLTE)) { + telephony_network_set_volte_enable(network, TRUE); + } else { + telephony_network_set_volte_enable(network, FALSE); + } + } + break; + default: err("Unhandled/Unknown Notification: [0x%x]", command); break; -- 2.7.4