Add SAT and SMS fixes 36/105136/4 accepted/tizen/common/20161221.183300 accepted/tizen/ivi/20161221.034212 accepted/tizen/mobile/20161221.034114 accepted/tizen/tv/20161221.034133 accepted/tizen/wearable/20161221.034152 submit/tizen/20161220.211826
authorSuresh Kumar N <suresh.n@samsung.com>
Thu, 15 Dec 2016 14:05:13 +0000 (19:35 +0530)
committerNarasimhaiah Suresh Kumar <suresh.n@samsung.com>
Mon, 19 Dec 2016 12:25:17 +0000 (04:25 -0800)
Change-Id: I5f778c8d6e6ba7e002aaaec5598c57d12f37189e
Signed-off-by: Suresh Kumar N <suresh.n@samsung.com>
introspection/network.xml
introspection/sms.xml
src/dtapi_common.c
src/dtapi_main.c
src/dtapi_modem.c
src/dtapi_oem.c
src/dtapi_sat.c
src/dtapi_sat_manager.c
src/dtapi_sim.c
src/dtapi_sms.c

index 4735c6cba9cb1f0da69373d14ce72e517b68939e..b5e5083aa4fbaf012e524d5c8e92952f3d5d5777 100644 (file)
                -->
                <property name="volte_enable" type="i" access="read"/>
 
+               <!--
+                       lte_band_type
+                       0=UNKNOWN, 1=FDD_LTE_Band,  2=TDD_LTE_Band
+               -->
+               <property name="lte_band_type" type="i" access="read"/>
+
                <!--
                        System ID (CDMA)
                        @since_tizen 3.0
                -->
                <property name="bs_longitude" type="i" access="read"/>
 
-               <!--
-                       lte_band_type
-                       0=UNKNOWN, 1=FDD_LTE_Band,  2=TDD_LTE_Band
-               -->
-               <property name="lte_band_type" type="i" access="read"/>
-
        </interface>
 
 </node>
index ba2558506ace97274e397618f29f5536e0386a1c..c7e35eeb51a458417548e2ebdcb03f45ab49b90e 100644 (file)
                        Get the sms ready status (whether ready or not) .
                -->
                <method name="GetSmsReadyStatus">
-                       <arg direction="out" type="b" name="readyStatus"/>
+                       <arg direction="out" type="i" name="readyStatus"/>
                </method>
 
                <!--
index d6428f8624c7186452e63d0af4f9e5ab98cf1307..00382bea7e2ca9157cda6ea1f1db71f9cc6eb24d 100644 (file)
@@ -60,10 +60,14 @@ UserRequest *dbus_plugin_macro_user_request_new(struct custom_data *ctx,
        void *object, GDBusMethodInvocation *invocation)
 {
        UserRequest *ur = NULL;
-       char *cp_name;
+       const char *cp_name = NULL;
        struct dbus_request_info *dbus_info;
 
-       cp_name = GET_CP_NAME(invocation);
+       if (invocation) {
+               cp_name = GET_CP_NAME(invocation);
+       } else {
+               cp_name = tcore_server_get_cp_name_by_plugin(ctx->plugin);
+       }
 
        dbus_info = calloc(1, sizeof(struct dbus_request_info));
        if (!dbus_info)
index 3a3d3752c4a21b35e38d853c693f1f9646aacde1..1ee5fbe2f0db2b53b2d192689c0d1b7a3fce8d2a 100644 (file)
@@ -183,6 +183,7 @@ static void __dtapi_add_modem(struct custom_data *ctx, TcorePlugin *p)
        if (co)
                dbus_plugin_setup_sim_interface(object, ctx);
 
+       /* OEM interface */
        dbus_plugin_setup_oem_interface(object, ctx);
 
        /* Export the Object to Manager */
index 334ecbfdd2181d7592a0a44ee6dc5a7174d2306c..d729a3572056a9a5b001a5cfd705bcc051e873e3 100644 (file)
@@ -181,6 +181,7 @@ static gboolean on_modem_set_always_on_state(TelephonyModem *modem,
 
        return TRUE;
 }
+
 gboolean dbus_plugin_setup_modem_interface(TelephonyObjectSkeleton *object,
        struct custom_data *ctx)
 {
index 9f9f1f9b937976b767e4b9e4fe923b58111b0ad3..e12c032dd961c7c7239e4669b98f3c98afc39678 100644 (file)
@@ -50,11 +50,13 @@ static void _emit_oem_response(struct dbus_request_info *dbus_info,
                 * Send Response if invocation is non-null,
                 * else Send Notification.
                 */
-               if (dbus_info->invocation)
+               dbg("oem_id=0x%x, data=%p, data_len=%d", oem_id, data, data_len);
+               if (dbus_info->invocation) {
                        telephony_oem_complete_send_oem_data_with_response(dbus_info->interface_object,
                                dbus_info->invocation, oem_id, encoded_data);
-               else
+               } else {
                        telephony_oem_emit_oem_data(dbus_info->interface_object, oem_id, encoded_data);
+               }
 
                g_free(encoded_data);
        }
@@ -71,6 +73,7 @@ static void _emit_oem_notification(TelephonyOEM *oem,
                return;
        }
 
+       dbg("oem_id=0x%x, data=%p, data_len=%d", oem_id, data, data_len);
        encoded_data = g_base64_encode((const guchar*)data, data_len);
        telephony_oem_emit_oem_data(oem, oem_id, encoded_data);
        g_free(encoded_data);
index a46a3edaf371385d35b43a882126b3650d5ad49b..3bbe63dc52a06cc117babef3c443d6d5c3458c10 100644 (file)
@@ -1270,8 +1270,7 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx,
                        dbg("PROATV_CMD_SETUP_EVENT_LIST - type_format: [%s]",
                                g_variant_get_type_string(event_list));
 
-                       g_variant_get(event_list, "(i@v)", &event_cnt, &evt_list);
-                       telephony_sat_emit_setup_event_list(sat, event_cnt, evt_list);
+                       g_variant_get(event_list, "(y@v)", &event_cnt, &evt_list);
 
                        /*
                         * BIP pro-active command is only handled
@@ -1284,16 +1283,12 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx,
                                conn = g_dbus_object_manager_server_get_connection(ctx->manager);
                                g_path = g_dbus_object_get_object_path(G_DBUS_OBJECT(object));
 
-                               /*
-                                * TODO -
-                                * SAT Event Downloader should execute
-                                * event_list as well.
-                                */
-                               sat_ui_support_launch_eventdownloader_application(event_list, slot_id);
-
                                sat_ui_support_exec_bip(conn, g_path,
                                        SAT_PROATV_CMD_SETUP_EVENT_LIST, event_list);
                        }
+                       telephony_sat_emit_setup_event_list(sat, event_cnt, evt_list);
+
+                       sat_ui_support_launch_eventdownloader_application(event_list, slot_id);
                }
                break;
 
@@ -1386,7 +1381,6 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx,
 #endif
 
                        dbg("Display text - text: [%s] text len: [%d]", text, text_len);
-
                        if (text_len > 1 && (g_strcmp0(text, "") != 0)) {
                                GVariant *ui_info = NULL;
                                gboolean user_confirm = TRUE;
@@ -1423,9 +1417,6 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx,
                                return TRUE;
                        }
 
-                       g_free(text);
-                       g_free(dest_address);
-
 #if 0
                        telephony_sat_emit_open_channel(sat, command_id,
                                text, text_len, immediate_link, auto_reconnection, bg_mode,
@@ -1449,6 +1440,9 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx,
                                        SAT_PROATV_CMD_OPEN_CHANNEL, open_channel);
                        }
 #endif
+
+                       g_free(text);
+                       g_free(dest_address);
                }
                break;
 
index d50b756abf35aefab070168fa4b2ff16cc446e61..54c08e352ea8cf83e55ba678674084f79c755c5f 100644 (file)
@@ -1731,7 +1731,7 @@ GVariant* sat_manager_setup_event_list_noti(struct custom_data *ctx, const char
                }
                evt_list = g_variant_builder_end(&builder);
 
-               event_list = g_variant_new("(iv)", event_cnt, evt_list);
+               event_list = g_variant_new("(yv)", event_cnt, evt_list);
        }
 
        tr->cmd_number = event_list_tlv->command_detail.cmd_num;
@@ -2046,22 +2046,28 @@ GVariant* sat_manager_open_channel_noti(struct custom_data *ctx, const char *cp_
                /* bearer detail */
                gint other_addr_type = 0;
                gushort login_len = 0, pwd_len = 0;
-               gchar network_access_name[SAT_NET_ACC_NAM_LEN_MAX];
                gchar other_address[SAT_OTHER_ADDR_LEN_MAX];
                gchar login[SAT_TEXT_STRING_LEN_MAX], pwd[SAT_TEXT_STRING_LEN_MAX];
+               gchar network_access_name[SAT_NET_ACC_NAM_LEN_MAX];
 
-               memset(&network_access_name, 0 , SAT_NET_ACC_NAM_LEN_MAX);
                memset(&other_address, 0 , SAT_OTHER_ADDR_LEN_MAX);
                memset(&login, 0 , SAT_TEXT_STRING_LEN_MAX);
                memset(&pwd, 0 , SAT_TEXT_STRING_LEN_MAX);
+               memset(&network_access_name, 0 , SAT_NET_ACC_NAM_LEN_MAX);
 
                /* bearer parameter */
                bearer_param = g_variant_new("(iiiiii)", 0, 0, 0, 0, 0, 0);
 
+               dbg("BEARER_DEFAULT_BEARER_FROM_TRANSPORT_LAYER");
+
                memcpy(network_access_name, open_channel_tlv->bearer_detail.default_bearer.network_access_name.network_access_name,
                        open_channel_tlv->bearer_detail.default_bearer.network_access_name.length);
+               dbg("network_access_name: %s", network_access_name);
+
                other_addr_type = open_channel_tlv->bearer_detail.default_bearer.other_address.address_type;
-               memcpy(other_address, open_channel_tlv->bearer_detail.default_bearer.other_address.address, open_channel_tlv->bearer_detail.default_bearer.other_address.address_len);
+               memcpy(other_address, open_channel_tlv->bearer_detail.default_bearer.other_address.address,
+                       open_channel_tlv->bearer_detail.default_bearer.other_address.address_len);
+               dbg("destination IP address - other (%s)", dest_address);
 
                tcore_util_convert_string_to_utf8((unsigned char*) &login, (unsigned short *) &login_len,
                        open_channel_tlv->bearer_detail.default_bearer.text_user_login.dcs.a_format,
@@ -2131,8 +2137,6 @@ GVariant* sat_manager_open_channel_noti(struct custom_data *ctx, const char *cp_
                                        (gint32) open_channel_tlv->icon_id.icon_info.height, open_channel_tlv->icon_id.icon_info.ics, open_channel_tlv->icon_id.icon_info.icon_data_len, open_channel_tlv->icon_id.icon_info.icon_file);
        }
        icon_id = g_variant_builder_end(&v_builder_icon);
-       /* execute bip */
-       /* sat_ui_support_exec_bip(); */
 
        open_channel = g_variant_new("(isivbbbiviiiisv)", command_id, text, text_len, icon_id, immediate_link, auto_reconnection, bg_mode,
                        bearer_type, bearer_param, buffer_size, protocol_type, port_number, dest_addr_type, dest_address, bearer_detail);
@@ -2415,6 +2419,7 @@ GVariant* sat_manager_refresh_noti(struct custom_data *ctx, const char *cp_name,
                dbg("refresh ui display text (%s)",text);
        }
 
+       //enqueue data and generate cmd_id
 #if !defined(TIZEN_SUPPORT_STK_HIDE_ALPHA_ID)
                memset(&q_data, 0x00, sizeof(struct sat_manager_queue_data));
                q_data.cmd_type = SAT_PROATV_CMD_REFRESH;
@@ -3374,10 +3379,6 @@ static gboolean _sat_manager_handle_send_sms_result(struct custom_data *ctx, Tco
        }
 
        g_free(tr);
-
-/*     if (q_data.cmd_data.sendSMSInd.alpha_id.alpha_data_len && q_data.cmd_data.sendSMSInd.alpha_id.is_exist)
-               sat_ui_support_terminate_sat_ui();*/
-
        return result;
 }
 
@@ -3439,14 +3440,15 @@ static gboolean _sat_manager_handle_send_ss_result(struct custom_data *ctx, Tcor
 
                        g_variant_get(intermediate, "ay", &iter);
                        while (g_variant_iter_loop(iter, "y", &data)) {
-                               dbg("index(%d) data(%c)", local_index, data);
+                               dbg("index(%d) data(%c) hex(0x%x)", local_index, data, data);
                                tr->terminal_rsp_data.send_ss.text.string[local_index] = data;
                                local_index++;
                        }
                        g_variant_iter_free(iter);
                        g_variant_unref(intermediate);
+                       tr->terminal_rsp_data.send_ss.text.string_length = local_index;
 #if 0
-                       tr->terminal_rsp_data.send_ss.text.string_length = local_index / 2;
+                       char *tmp = NULL;
                        tmp = _convert_hex_string_to_bytes(tr->terminal_rsp_data.send_ss.text.string);
                        memset(tr->terminal_rsp_data.send_ss.text.string, 0x00,
                                sizeof(tr->terminal_rsp_data.send_ss.text.string));
@@ -3461,6 +3463,7 @@ static gboolean _sat_manager_handle_send_ss_result(struct custom_data *ctx, Tcor
                        tr->terminal_rsp_data.send_ss.text.string_length = local_index;
                        if (tr->terminal_rsp_data.send_ss.text.string_length > 0) {
                                        int tmp_len;
+                                       unsigned int dest_len;
                                        char tmp_str[SAT_TEXT_STRING_LEN_MAX + 1];
                                        char  *packed_data;
 
@@ -3468,18 +3471,18 @@ static gboolean _sat_manager_handle_send_ss_result(struct custom_data *ctx, Tcor
                                        tcore_util_convert_utf8_to_gsm((unsigned char*)tmp_str, &tmp_len,
                                                (unsigned char*)tr->terminal_rsp_data.send_ss.text.string,
                                                tr->terminal_rsp_data.send_ss.text.string_length);
-                                       packed_data = (char*) tcore_util_pack_gsm7bit((const unsigned char *)tmp_str, tmp_len);
+                                       packed_data = (char*) tcore_util_pack_gsm7bit_ex((const unsigned char *)tmp_str, tmp_len, &dest_len);
                                        memset(tr->terminal_rsp_data.send_ss.text.string, 0x00,
                                                sizeof(tr->terminal_rsp_data.send_ss.text.string));
                                        if (packed_data) {
-                                               memcpy((void*)tr->terminal_rsp_data.send_ss.text.string, packed_data, strlen(packed_data));
-                                               tr->terminal_rsp_data.send_ss.text.string_length = strlen(packed_data);
+                                               memcpy((void*)tr->terminal_rsp_data.send_ss.text.string, packed_data, dest_len);
+                                               tr->terminal_rsp_data.send_ss.text.string_length = dest_len;
                                                g_free(packed_data);
                                        }
                                }
 #endif
                        for (i = 0; i < tr->terminal_rsp_data.send_ss.text.string_length; i++)
-                               dbg("string :%c \n", tr->terminal_rsp_data.send_ss.text.string[i]);
+                               dbg("string :[%c] [0x%x]", tr->terminal_rsp_data.send_ss.text.string[i], tr->terminal_rsp_data.send_ss.text.string[i]);
                        dbg("SS string len:%d", tr->terminal_rsp_data.send_ss.text.string_length);
                }
                break;
@@ -5417,7 +5420,8 @@ Exit:
        return result;
 }
 #if !defined(TIZEN_PLATFORM_USE_QCOM_QMI)
-static gboolean _sat_manager_handle_open_channel_confirm(struct custom_data *ctx, TcorePlugin *plg, gint command_id, gint confirm_type, GVariant *addtional_data)
+static gboolean _sat_manager_handle_open_channel_confirm(struct custom_data *ctx,
+               TcorePlugin *plg, gint command_id, gint confirm_type, GVariant *addtional_data)
 {
        TReturn rv = TCORE_RETURN_FAILURE;
        gboolean result = FALSE;
@@ -5599,6 +5603,8 @@ gboolean sat_manager_handle_user_confirm(struct custom_data *ctx, TcorePlugin *p
        gint command_id, command_type, confirm_type;
        GVariant *additional_data = NULL;
 
+       memset(&q_data, 0, sizeof(struct sat_manager_queue_data));
+
        dbg("user_confirm_data type_format(%s)", g_variant_get_type_string(user_confirm_data));
        g_variant_get(user_confirm_data, "(iiv)", &command_id, &confirm_type, &additional_data);
 
@@ -6419,10 +6425,11 @@ gboolean sat_manager_handle_event_download_envelop(int event_type,  int src_dev,
                dbg("browser termination cause(%d)", evt_download->browser_termination);
        } break;
        case EVENT_DATA_AVAILABLE: {
-               gint channel_id, channel_status, channel_info, channel_data_len;
+               guchar channel_id;
+               gint channel_status, channel_info, channel_data_len;
 
                dbg("data type_format(%s)", g_variant_get_type_string(data));
-               g_variant_get(data, "(iiii)", &channel_id, &channel_status, &channel_info, &channel_data_len);
+               g_variant_get(data, "(yiii)", &channel_id, &channel_status, &channel_info, &channel_data_len);
                evt_download->device_identitie.src = src_dev;
                evt_download->device_identitie.dest = dest_dev;
                evt_download->channel_status.channel_id = channel_id;
@@ -6432,10 +6439,11 @@ gboolean sat_manager_handle_event_download_envelop(int event_type,  int src_dev,
                dbg("data available channel id (%d)", evt_download->channel_status.channel_id);
        } break;
        case EVENT_CHANNEL_STATUS: {
-               gint channel_id, channel_status, channel_info;
+               guchar channel_id;
+               gint channel_status, channel_info;
 
                dbg("data type_format(%s)", g_variant_get_type_string(data));
-               g_variant_get(data, "(iii)", &channel_id, &channel_status, &channel_info);
+               g_variant_get(data, "(yii)", &channel_id, &channel_status, &channel_info);
                evt_download->device_identitie.src = src_dev;
                evt_download->device_identitie.dest = dest_dev;
                evt_download->channel_status.channel_id = channel_id;
index 0df8847efe81539bc04795514066093e04267ade..40a12d08100ba610fbb79e97fde4b9ce62c467e8 100644 (file)
@@ -455,8 +455,8 @@ static gboolean on_sim_get_imsi(TelephonySim *sim,
        if (!imsi) {
                FAIL_RESPONSE(invocation, DBUS_SIM_RESPONSE_DATA_ERROR);
        } else {
-               dbg("[%s] IMSI - PLMN: [%s] MSIN: [%s]", GET_CP_NAME(invocation),
-                       imsi->plmn, imsi->msin);
+               dbg("[%s] IMSI - PLMN: [%s] MSIN: [%cX%cX%cX%cX%cX]", GET_CP_NAME(invocation),
+                       imsi->plmn, imsi->msin[0],imsi->msin[2],imsi->msin[4],imsi->msin[6],imsi->msin[8]);
 
                telephony_sim_complete_get_imsi(sim,
                        invocation, imsi->plmn, imsi->msin);
@@ -903,23 +903,6 @@ static gboolean on_sim_get_service_table(TelephonySim *sim,
                 *
                 * Or we can extend current 'struct tel_sim_service_table' to get sst/ust & cst simultaneously.
                 */
-#if 0
-               else if (svct->sim_type == SIM_TYPE_RUIM) {
-                       if (SIM_CDMA_SVC_TABLE == svct->table.cst.cdma_svc_table) {
-                               for (i = 0; i < SIM_CDMA_ST_SERVICE_CNT_MAX; i++)
-                                       g_variant_builder_add(&builder, "iy",
-                                               svct->table.cst.cdma_svc_table,
-                                               svct->table.cst.service.cdma_service[i]);
-                       } else if (SIM_CSIM_SVC_TABLE == svct->table.cst.cdma_svc_table) {
-                               for (i = 0; i < SIM_CSIM_ST_SERVICE_CNT_MAX; i++)
-                                       g_variant_builder_add(&builder, "iy",
-                                               svct->table.cst.cdma_svc_table,
-                                               svct->table.cst.service.csim_service[i]);
-                       } else {
-                               err("Invalid cdma_svc_table: [%d]", svct->table.cst.cdma_svc_table);
-                       }
-               }
-#endif
                else {
                        err("[%s] Unknown SIM type: [%d]", GET_CP_NAME(invocation), svct->sim_type);
                }
@@ -1680,6 +1663,7 @@ static gboolean on_sim_set_power_state(TelephonySim *sim,
        DBUS_SIM_CHECK_SIM_STATUS(invocation, SET_POWERSTATE, co_sim);
 
        memset(&req, 0x0, sizeof(struct treq_sim_set_powerstate));
+
        req.state = state;
        dbg("[%s] Requested SIM Power state: [%d]",
                GET_CP_NAME(invocation), req.state);
@@ -2407,25 +2391,6 @@ gboolean dbus_plugin_sim_response(struct custom_data *ctx,
                 *
                 * Or we can extend current 'struct tel_sim_service_table' to get sst/ust & cst simultaneously.
                 */
-#if 0
-                else if (resp_read->data.svct.sim_type == SIM_TYPE_RUIM) {
-                       if (SIM_CDMA_SVC_TABLE == resp_read->data.svct.table.cst.cdma_svc_table) {
-                               for (i = 0; i < SIM_CDMA_ST_SERVICE_CNT_MAX; i++) {
-                                       g_variant_builder_add(&builder, "iy",
-                                               resp_read->data.svct.table.cst.cdma_svc_table,
-                                               resp_read->data.svct.table.cst.service.cdma_service[i]);
-                               }
-                       } else if (SIM_CSIM_SVC_TABLE == resp_read->data.svct.table.cst.cdma_svc_table) {
-                               for (i = 0; i < SIM_CSIM_ST_SERVICE_CNT_MAX; i++) {
-                                       g_variant_builder_add(&builder, "iy",
-                                               resp_read->data.svct.table.cst.cdma_svc_table,
-                                               resp_read->data.svct.table.cst.service.csim_service[i]);
-                               }
-                       } else {
-                               err("Invalid cdma_svc_table:[%d]", resp_read->data.svct.table.cst.cdma_svc_table);
-                       }
-               }
-#endif
                else {
                        dbg("unknown sim type[%d].", resp_read->data.svct.sim_type);
                }
index 3197f7ac62aeedfeb8e55a15dd434eef55fd49b3..46384cd2e6be92a5414c69a2552f426945856979 100644 (file)
@@ -582,7 +582,7 @@ static gboolean on_sms_get_sms_ready_status(TelephonySms *sms,
        struct custom_data *ctx = user_data;
        CoreObject *co_sms = NULL;
        TcorePlugin *plugin = NULL;
-       gboolean ready_status = FALSE;
+       enum telephony_sms_ready_status ready_status = SMS_READY_STATUS_NONE;
 
        plugin = tcore_server_find_plugin(ctx->server, GET_CP_NAME(invocation));
        co_sms = tcore_plugin_ref_core_object(plugin, CORE_OBJECT_TYPE_SMS);