Buf fixs and CMUX enabled.
authorKyoungyoup Park <gynaru.park@samsung.com>
Sat, 25 Aug 2012 08:30:57 +0000 (17:30 +0900)
committerKyoungyoup Park <gynaru.park@samsung.com>
Sat, 25 Aug 2012 08:30:57 +0000 (17:30 +0900)
Change-Id: I85556b6c00814e3a9b5df0e11f269f0d450f2053

CMakeLists.txt
packaging/tel-plugin-imc.spec
src/desc.c
src/s_call.c
src/s_common.c
src/s_modem.c
src/s_sms.c

index ba645b1..192b878 100755 (executable)
@@ -18,7 +18,7 @@ ENDFOREACH(flag)
 
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align")
 
 ADD_DEFINITIONS("-DFEATURE_DLOG_DEBUG")
 ADD_DEFINITIONS("-DTCORE_LOG_TAG=\"IMC\"")
index 9d7e4e0..cfb5f4a 100755 (executable)
@@ -1,7 +1,7 @@
 #sbs-git:slp/pkgs/t/tel-plugin-imc
 Name:       tel-plugin-imc
 Summary:    imc plugin for telephony
-Version:    0.1.2
+Version:    0.1.3
 Release:    1
 Group:      System/Libraries
 License:    Apache
index 696cd62..9261732 100755 (executable)
@@ -121,13 +121,6 @@ static int _get_cp_name(char** name)
        return 0;\r
 }\r
 \r
-static gboolean on_response_default(TcoreAT *at, const char *line, void *user_data)\r
-{\r
-       /* TODO:  */\r
-       dbg("[ TODO ] on_response_default ");\r
-       return TRUE;\r
-}\r
-\r
 static gboolean on_init(TcorePlugin *p)\r
 {\r
        TcoreHal *h;\r
index fdcebf2..b14c650 100755 (executable)
@@ -342,8 +342,7 @@ static enum tcore_call_type call_type(int type)
 \r
 static int _compare_call_end_cause(int networkcause)\r
 {\r
-    dbg("Entry");\r
-       unsigned int count;\r
+       unsigned int count;\r
     for (count = 0; count < sizeof(call_end_cause_table)/sizeof(call_end_cause_info); count++){\r
         if (call_end_cause_table[count].network_cause == networkcause)\r
             return (call_end_cause_table[count].tapi_cause);\r
@@ -1667,9 +1666,8 @@ static void on_confirmation_call_set_source_sound_volume_level(TcorePending *p,
        struct tresp_call_sound_set_volume_level resp;\r
        int error;\r
 \r
-       dbg("Entry");\r
-\r
        ur = tcore_pending_ref_user_request(p);\r
+       dbg("Entry");\r
        // +XDRV: <group_id>,<function_id>,<xdrv_result>[,<response_n>]\ 3\r
        if (!response) {\r
                err("Input data is NULL");\r
@@ -3014,10 +3012,10 @@ static TReturn s_call_set_sound_volume_level(CoreObject *o, UserRequest *ur)
        TcoreATRequest *dest_req = NULL;\r
        char *cmd_str = NULL, *volume_level = NULL;\r
        gboolean ret = FALSE;\r
-       dbg("Entry");\r
 \r
        struct treq_call_sound_set_volume_level* data = NULL;\r
        data = (struct treq_call_sound_set_volume_level*)tcore_user_request_ref_data( ur, 0 );\r
+       dbg("Entry");\r
        // Hard-coded values for MIC & Speakers\r
        // Source volume\r
        dbg("Set Source volume");\r
index 3c0c616..86b9a0c 100755 (executable)
@@ -48,6 +48,9 @@
                     MASK((width), (offset), (data)) << -(shift) :  \\r
                     MASK((width), (offset), (data)) >>  (((unsigned) (shift)))) \\r
 \r
+char _util_unpackb(const char *src, int pos, int len);\r
+char _util_convert_byte_hexChar (char val);\r
+gboolean util_byte_to_hex(const char *byte_pdu, char *hex_pdu, int num_bytes);\r
 \r
 void util_hex_dump(char *pad, int size, const void *data)\r
 {\r
index aae8ae5..a90aad5 100755 (executable)
 #include <storage.h>\r
 #include <server.h>\r
 #include <at.h>\r
-#ifdef ENABLE_CMUX\r
 #include <mux.h>\r
-#endif\r
 \r
 #include "s_common.h"\r
 #include "s_modem.h"\r
 \r
+\r
 #define ID_RESERVED_AT 0x0229\r
 \r
 #define MAX_VERSION_LEN        32\r
@@ -97,7 +96,8 @@ typedef struct {
        unsigned char szEriVersion[TAPI_MISC_PRL_ERI_VER_LEN_MAX * 3];/**< eri version (only for CDMA), null termination */\r
 } TelMiscVersionInformation;\r
 \r
-\r
+extern int g_cmux_enable;\r
+       \r
 void prepare_and_send_pending_request(TcorePlugin *plugin, char *co_name, const char *at_cmd, const char* prefix, enum tcore_at_command_type at_cmd_type, TcorePendingResponseCallback callback);\r
 static void on_confirmation_modem_message_send(TcorePending *p, gboolean result, void *user_data); // from Kernel\r
 void on_response_bootup_subscription(TcorePending *p, int data_len, const void *data, void *user_data);\r
@@ -216,7 +216,7 @@ static void on_response_set_flight_mode(TcorePending *p, int data_len, const voi
 {\r
        CoreObject *o = user_data;\r
        UserRequest *ur = NULL;\r
-       const TcoreATResponse *resp = data;\r
+       const TcoreATResponse *ATresp = data;\r
        GSList *tokens=NULL;\r
        const char *line = NULL;\r
        struct tresp_modem_set_flightmode res = {0};\r
@@ -225,13 +225,13 @@ static void on_response_set_flight_mode(TcorePending *p, int data_len, const voi
 \r
        o = tcore_pending_ref_core_object(p);\r
 \r
-       if(resp->success > 0){\r
+       if(ATresp->success > 0){\r
                dbg("RESPONSE OK - flight mode operation finished");\r
                res.result = TCORE_RETURN_SUCCESS;\r
        }\r
        else    {\r
                dbg("RESPONSE NOK");\r
-               line = (const char*)resp->final_response;\r
+               line = (const char*)ATresp->final_response;\r
                tokens = tcore_at_tok_new(line);\r
 \r
                if (g_slist_length(tokens) < 1) {\r
@@ -249,7 +249,7 @@ static void on_response_set_flight_mode(TcorePending *p, int data_len, const voi
        if(NULL == ur){\r
                dbg("No user request. Internal request created during boot-up sequence");\r
                \r
-               if(resp->success > 0){\r
+               if(ATresp->success > 0){\r
                        modem_flight_mode.enable = tcore_modem_get_flight_mode_state(o);\r
                        dbg("sucess case - Sending Flight Mode Notification (%d) to Telephony Server",modem_flight_mode.enable);\r
                        \r
@@ -257,6 +257,10 @@ static void on_response_set_flight_mode(TcorePending *p, int data_len, const voi
                                        sizeof(struct tnoti_modem_flight_mode), &modem_flight_mode);\r
                }\r
        }\r
+       else{\r
+               dbg("Sending response for Flight mode operation");\r
+               tcore_user_request_send_response(ur, TRESP_MODEM_SET_FLIGHTMODE, sizeof(struct tresp_modem_set_flightmode), &res);\r
+       }\r
        \r
        tcore_at_tok_free(tokens);\r
 }\r
@@ -513,15 +517,17 @@ static void _modem_subscribe_events(TcorePlugin *plugin)
 \r
        /* XSIMSTATE subscription */\r
        prepare_and_send_pending_request(plugin, "sim", "at+xsimstate=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
-       prepare_and_send_pending_request(plugin, "umts_sms", "at+xsimstate=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
-       prepare_and_send_pending_request(plugin, "modem", "at+xsimstate=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
+       if(1 == g_cmux_enable)\r
+       {\r
+               prepare_and_send_pending_request(plugin, "umts_sms", "at+xsimstate=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
+               prepare_and_send_pending_request(plugin, "modem", "at+xsimstate=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
+       }\r
 \r
        /* CREG subscription */\r
        prepare_and_send_pending_request(plugin, "umts_network", "at+creg=2", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
 \r
        /* CGREG subscription */\r
        prepare_and_send_pending_request(plugin, "umts_network", "at+cgreg=2", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
-       prepare_and_send_pending_request(plugin, "umts_ps", "at+cgreg=2", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
 \r
        /* Allow automatic time Zone updation via NITZ */\r
        prepare_and_send_pending_request(plugin, "umts_network", "at+ctzu=1", NULL, TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
@@ -557,19 +563,19 @@ static void _modem_subscribe_events(TcorePlugin *plugin)
        prepare_and_send_pending_request(plugin,"umts_ps","at+cmee=2",NULL,TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
 \r
        /*incoming sms and cb subscription*/\r
-       prepare_and_send_pending_request(plugin,"umts_sms","at+cnmi=1,2,0,0,0",NULL,TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
+       prepare_and_send_pending_request(plugin,"umts_sms","at+cnmi=1,2,2,2,0",NULL,TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
 \r
        /*message service subscription*/\r
        prepare_and_send_pending_request(plugin,"umts_sms","at+csms=1",NULL,TCORE_AT_NO_RESULT, on_response_bootup_subscription);\r
 \r
        /* text/pdu mode subscription*/\r
-       prepare_and_send_pending_request(plugin,"umts_sms","at+cmgf=1",NULL,TCORE_AT_NO_RESULT, on_response_last_bootup_subscription);\r
+       prepare_and_send_pending_request(plugin,"umts_sms","at+cmgf=0",NULL,TCORE_AT_NO_RESULT, on_response_last_bootup_subscription);\r
 \r
        dbg("Exit");\r
        return;\r
 }\r
 \r
-#ifdef ENABLE_CMUX\r
+\r
 static void on_response_setupmux(TcorePending *p, int data_len, const void *data, void *user_data)\r
 {\r
        TcorePlugin *plugin = NULL;\r
@@ -581,24 +587,6 @@ static void on_response_setupmux(TcorePending *p, int data_len, const void *data
        /* Actual HAL - like svnet(2) */\r
        hal = (TcoreHal *)user_data;\r
 \r
-       /* Link HAL */\r
-       //tcore_plugin_link_user_data(plugin, hal);\r
-       \r
-       /* TODO: Initialize MUX module.\r
-        *       Append each MUX HAL to each Co-Object while initialization.\r
-        * API: tcore_object_set_hal(CoreObject *o, TcoreHal *h)\r
-        *\r
-        * After MUX setup, AT parse functionality of PHY HAL\r
-        * should be disabled.\r
-        * e.g.) plugin = tcore_pending_ref_plugin((TcorePending*) p);\r
-        *       hal    = tcore_plugin_ref_hal((TcorePlugin*) plugin);\r
-        *       tcore_hal_disable_queue((TcoreHal*) hal);\r
-        */\r
-\r
-       /* TODO: Should be moved to ...\r
-        * Proceed power up noti process after MUX initialization.\r
-        */\r
-\r
        /* Initialize CMUX */\r
        tcore_cmux_init(plugin, hal);\r
        \r
@@ -616,10 +604,8 @@ static void setup_mux(CoreObject *o)
        /* HAL has type itself,\r
         * e.g.) TCORE_HAL_MODE_AT\r
         */\r
-       /*o = tcore_pending_ref_core_object(plugin);*/\r
        hal = tcore_object_get_hal(o);\r
 \r
-       //prepare_and_send_pending_request(plugin, "modem", "AT+CMUX=0,0,,1509,10,3,30,,", "+CMUX", TCORE_AT_NO_RESULT, on_response_setupmux);\r
        pending = tcore_at_pending_new(o, "AT+CMUX=0,0,,1509,10,3,30,,", "+CMUX", TCORE_AT_NO_RESULT, on_response_setupmux, hal);\r
 \r
        tcore_pending_set_send_callback(pending, on_confirmation_modem_message_send, NULL);\r
@@ -638,9 +624,9 @@ static gboolean on_event_mux_channel_up(CoreObject *o, const void *event_info, v
        plugin = (TcorePlugin *)user_data;\r
        _modem_subscribe_events(plugin);\r
        dbg("Exit");\r
-       return;\r
+       return TRUE;\r
 }\r
-#endif\r
+\r
        \r
 static void on_response_enable_logging(TcorePending *p, int data_len, const void *data, void *user_data)\r
 {\r
@@ -664,12 +650,13 @@ static void on_response_enable_logging(TcorePending *p, int data_len, const void
                dbg("Enabling CP logging is failed !!!\n");\r
        }\r
 \r
-#ifdef ENABLE_CMUX\r
-       dbg("Calling setup_mux");\r
-       setup_mux(tcore_pending_ref_core_object(p));\r
-#else\r
-       _modem_subscribe_events(plugin);\r
-#endif\r
+       if(g_cmux_enable == 1){\r
+               dbg("Calling setup_mux");\r
+               setup_mux(tcore_pending_ref_core_object(p));\r
+       }\r
+       else{\r
+               _modem_subscribe_events(plugin);\r
+       }\r
 \r
        dbg("Exit");\r
        return;\r
@@ -779,16 +766,9 @@ static TReturn power_off(CoreObject *o, UserRequest *ur)
        TcoreATRequest *req = NULL;\r
        TcorePending *pending = NULL;\r
 \r
-       /* FIXME: Before MUX setup, use PHY HAL directly. */\r
        hal = tcore_object_get_hal(o);\r
-\r
        pending = tcore_pending_new(o, 0);\r
 \r
-       /* TODO:\r
-        * Need to mapping or define AT command\r
-        * including prefix if neccessary otherwise NULL.\r
-        * Response type (e.g. TCORE_AT_SINGLELINE)\r
-        */\r
        req = tcore_at_request_new("AT+CFUN=0", NULL, TCORE_AT_NO_RESULT);\r
 \r
        dbg("cmd : %s, prefix(if any) :%s, cmd_len : %d", req->cmd, req->prefix, strlen(req->cmd));\r
@@ -922,11 +902,11 @@ gboolean s_modem_init(TcorePlugin *p, TcoreHal *h)
 \r
        sn_property = calloc(sizeof(TelMiscSNInformation), 1);\r
        tcore_plugin_link_property(p, "SN", sn_property);\r
-       \r
-#ifdef ENABLE_CMUX\r
-       dbg("Registerind for CMUX-UP event");\r
-       tcore_object_add_callback(o, "CMUX-UP", on_event_mux_channel_up, p);\r
-#endif\r
+\r
+       if(g_cmux_enable == 1){\r
+               dbg("Registerind for CMUX-UP event");\r
+               tcore_object_add_callback(o, "CMUX-UP", on_event_mux_channel_up, p);\r
+       }\r
 \r
        dbg("Registering for +XSIM event");\r
        tcore_object_add_callback(o, "+XSIM", on_event_bootup_sim_status, NULL);\r
@@ -975,16 +955,8 @@ gboolean s_modem_send_poweron(TcorePlugin *p)
 \r
        o = tcore_plugin_ref_core_object(p, "modem");\r
        hal = tcore_object_get_hal(o);\r
-       /* HAL has type itself,\r
-        * e.g.) TCORE_HAL_MODE_AT\r
-        */\r
-       pending = tcore_pending_new(o, 0);\r
 \r
-       /* Set Metainfo into TcorePending directly\r
-        * using TcoreATRequest\r
-        * command type: e.g.) SINGLELINE\r
-        * response prefix\r
-        */\r
+       pending = tcore_pending_new(o, 0);\r
 \r
        req = tcore_at_request_new("AT+CPAS", "+CPAS", TCORE_AT_SINGLELINE);\r
 \r
index fae1c2b..bb5cec1 100755 (executable)
@@ -758,21 +758,21 @@ static void on_response_sms_deliver_rpt_cnf(TcorePending *p, int data_len, const
 }\r
 #endif\r
 \r
-static void on_response_send_umts_msg(TcorePending *plugin, int data_len, const void *data, void *user_data)\r
+static void on_response_send_umts_msg(TcorePending *pending, int data_len, const void *data, void *user_data)\r
 {\r
-       const TcoreATResponse *resp = data;\r
-       struct tresp_sms_send_umts_msg respUmtsInfo;\r
-       UserRequest *ur = NULL;\r
+       const TcoreATResponse *at_response = data;\r
+       struct tresp_sms_send_umts_msg resp_umts;\r
+       UserRequest *user_req = NULL;\r
 \r
-       char *line = NULL , *pResp = NULL;\r
        int msg_ref = 0;\r
        GSList *tokens = NULL;\r
+       char *gslist_line = NULL, *line_token = NULL;\r
 \r
        dbg("Entry");\r
 \r
-       ur = tcore_pending_ref_user_request(plugin);\r
+       user_req = tcore_pending_ref_user_request(pending);\r
 \r
-       if(NULL == ur)\r
+       if(NULL == user_req)\r
        {\r
                err("No user request");\r
 \r
@@ -780,68 +780,69 @@ static void on_response_send_umts_msg(TcorePending *plugin, int data_len, const
                return;\r
        }\r
 \r
-       if(resp->success > 0)\r
+       memset(&resp_umts, 0x00, sizeof(resp_umts));\r
+\r
+       if(at_response->success > 0) //success\r
        {\r
                dbg("Response OK");\r
-               if(resp->lines)\r
+               if(at_response->lines)  //lines present in at_response\r
                {\r
-                       line = (char *)resp->lines->data;\r
-                       dbg("line is %s",line);\r
+                       gslist_line = (char *)at_response->lines->data;\r
+                       dbg("gslist_line: [%s]", gslist_line);\r
 \r
-                       tokens = tcore_at_tok_new(line);\r
+                       tokens = tcore_at_tok_new(gslist_line); //extract tokens\r
 \r
-                       pResp = g_slist_nth_data(tokens, 0);\r
-                       if (pResp != NULL)\r
+                       line_token = g_slist_nth_data(tokens, 0);\r
+                       if (line_token != NULL)\r
                        {\r
-                               msg_ref = atoi(pResp);\r
-                               dbg("Message Reference: %d", msg_ref);\r
+                               msg_ref = atoi(line_token);\r
+                               dbg("Message Reference: [%d]", msg_ref);\r
 \r
-                               respUmtsInfo.result = SMS_SENDSMS_SUCCESS;\r
+                               resp_umts.result = SMS_SENDSMS_SUCCESS;\r
                        }\r
                        else\r
                        {\r
                                dbg("No Message Reference received");\r
-                               respUmtsInfo.result = SMS_DEVICE_FAILURE;\r
+                               resp_umts.result = SMS_DEVICE_FAILURE;\r
                        }\r
                }\r
-               else\r
+               else //no lines in at_response\r
                {\r
                        dbg("No lines");\r
-                       respUmtsInfo.result = SMS_DEVICE_FAILURE;\r
+                       resp_umts.result = SMS_DEVICE_FAILURE;\r
                }\r
        }\r
-       else\r
+       else //failure\r
        {\r
                dbg("Response NOK");\r
-               respUmtsInfo.result = SMS_DEVICE_FAILURE;\r
+               resp_umts.result = SMS_DEVICE_FAILURE;\r
        }\r
 \r
-       tcore_user_request_send_response(ur, TRESP_SMS_SEND_UMTS_MSG, sizeof(struct tresp_sms_send_umts_msg), &respUmtsInfo);\r
+       tcore_user_request_send_response(user_req, TRESP_SMS_SEND_UMTS_MSG, sizeof(resp_umts), &resp_umts);\r
 \r
        dbg("Exit");\r
        return;\r
 }\r
 \r
-static void on_response_read_msg(TcorePending *plugin, int data_len, const void *data, void *user_data)\r
+static void on_response_read_msg(TcorePending *pending, int data_len, const void *data, void *user_data)\r
 {\r
-       const TcoreATResponse *atResp = data;\r
-       struct tresp_sms_read_msg respReadMsg;\r
-       UserRequest *ur = NULL;\r
-       GSList *tokens=NULL, *lines = NULL;\r
-       char * line = NULL, *pResp = NULL , *pdu = NULL, *temp_pdu = NULL;\r
-       int ScLength = 0;\r
-       int rtn = 0 , i = 0;\r
-       int stat = 0 , alpha = 0 , length = 0;\r
+       const TcoreATResponse *at_response = data;\r
+       struct tresp_sms_read_msg resp_read_msg;\r
+       UserRequest *user_req = NULL;\r
+\r
+       GSList *tokens=NULL;\r
+       char *gslist_line = NULL, *line_token = NULL, *byte_pdu = NULL, *hex_pdu = NULL;\r
+       int sca_length = 0;\r
+       int msg_status = 0, alpha_id = 0, pdu_len = 0;\r
        int index = (int)(uintptr_t)user_data;\r
 \r
        dbg("Entry");\r
        dbg("index: [%d]", index);\r
-       dbg("lines: [%p]", atResp->lines);\r
+       dbg("lines: [%p]", at_response->lines);\r
+       g_slist_foreach(at_response->lines, print_glib_list_elem, NULL); //for debug log\r
 \r
-       g_slist_foreach(atResp->lines, print_glib_list_elem, NULL); /* gaurav.kalra: For test */\r
-\r
-       ur = tcore_pending_ref_user_request(plugin);\r
-       if (NULL == ur)\r
+       user_req = tcore_pending_ref_user_request(pending);\r
+       if (NULL == user_req)\r
        {\r
                err("No user request");\r
 \r
@@ -849,271 +850,263 @@ static void on_response_read_msg(TcorePending *plugin, int data_len, const void
                return;\r
        }\r
 \r
-       dbg("success: [%02x]", atResp->success);\r
+       memset(&resp_read_msg, 0x00, sizeof(resp_read_msg));\r
 \r
-       if (atResp->success > 0)\r
+       if (at_response->success > 0)\r
        {\r
-               if (atResp->lines)\r
+               dbg("Response OK");\r
+               if (at_response->lines)\r
                {\r
-                       line = (char *)atResp->lines->data;\r
+                       //fetch first line\r
+                       gslist_line = (char *)at_response->lines->data;\r
 \r
-                       dbg("response Ok line is %s",line);\r
+                       dbg("gslist_line: [%s]", gslist_line);\r
 \r
-                       tokens = tcore_at_tok_new(line);\r
+                       tokens = tcore_at_tok_new(gslist_line);\r
+                       dbg("Number of tokens: [%d]", g_slist_length(tokens));\r
                        g_slist_foreach(tokens, print_glib_list_elem, NULL); /* gaurav.kalra: For test */\r
-                       dbg(" length of tokens is %d\n", g_slist_length(tokens));\r
 \r
-                       pResp = g_slist_nth_data(tokens, 0);\r
-                       if (pResp != NULL)\r
+                       line_token = g_slist_nth_data(tokens, 0); //First Token: Message Status\r
+                       if (line_token != NULL)\r
                        {\r
-                               //ToDO msg status mapping needs to be done\r
-                               stat = atoi(pResp);\r
-                               dbg("stat is %d",stat);\r
-                               switch (stat)\r
+                               msg_status = atoi(line_token);\r
+                               dbg("msg_status is %d",msg_status);\r
+                               switch (msg_status)\r
                                {\r
                                        case AT_REC_UNREAD:\r
-                                               respReadMsg.dataInfo.msgStatus = SMS_STATUS_UNREAD;\r
+                                               resp_read_msg.dataInfo.msgStatus = SMS_STATUS_UNREAD;\r
                                                break;\r
 \r
                                        case AT_REC_READ:\r
-                                               respReadMsg.dataInfo.msgStatus = SMS_STATUS_READ;\r
+                                               resp_read_msg.dataInfo.msgStatus = SMS_STATUS_READ;\r
                                                break;\r
 \r
                                        case AT_STO_UNSENT:\r
-                                               respReadMsg.dataInfo.msgStatus = SMS_STATUS_UNSENT;\r
+                                               resp_read_msg.dataInfo.msgStatus = SMS_STATUS_UNSENT;\r
                                                break;\r
 \r
                                        case AT_STO_SENT:\r
-                                               respReadMsg.dataInfo.msgStatus = SMS_STATUS_SENT;\r
+                                               resp_read_msg.dataInfo.msgStatus = SMS_STATUS_SENT;\r
                                                break;\r
 \r
                                        case AT_ALL: //Fall Through\r
                                        default: //Fall Through\r
-                                               respReadMsg.dataInfo.msgStatus = SMS_STATUS_RESERVED;\r
+                                               resp_read_msg.dataInfo.msgStatus = SMS_STATUS_RESERVED;\r
                                                break;\r
                                }\r
                        }\r
 \r
-                       pResp = g_slist_nth_data(tokens, 1);\r
-                       if (pResp != NULL)\r
+                       line_token = g_slist_nth_data(tokens, 1); //Second Token: AlphaID\r
+                       if (line_token != NULL)\r
                        {\r
-                               alpha = atoi(pResp);\r
-                               dbg("alpha is %d",alpha);\r
+                               alpha_id = atoi(line_token);\r
+                               dbg("AlphaID: [%d]", alpha_id);\r
                        }\r
 \r
-                       pResp = g_slist_nth_data(tokens, 2);\r
-                       if (pResp != NULL)\r
+                       line_token = g_slist_nth_data(tokens, 2); //Third Token: Length\r
+                       if (line_token != NULL)\r
                        {\r
-                               length = atoi(pResp);\r
-                               dbg("length is %d",length);\r
+                               pdu_len = atoi(line_token);\r
+                               dbg("Length: [%d]", pdu_len);\r
                        }\r
 \r
-                       lines = atResp->lines;\r
-                       lines = lines->next;\r
-                       line = (char *)lines->data;\r
-                       tokens = tcore_at_tok_new(line);\r
-\r
-                       temp_pdu = g_slist_nth_data(tokens, 0);\r
-                       if (temp_pdu != NULL)\r
-                       {\r
-                               dbg("temp pdu is %s",temp_pdu);\r
-                               pdu = util_hexStringToBytes(temp_pdu);\r
-                               ScLength = (int)pdu[0];\r
+                       //fetch second line\r
+                       gslist_line = (char *)at_response->lines->next->data;\r
 \r
-                               respReadMsg.dataInfo.simIndex = index; //Retrieving index stored as part of req userdata\r
+                       dbg("gslist_line: [%s]", gslist_line);\r
 \r
+                       tokens = tcore_at_tok_new(gslist_line);\r
+                       dbg("Number of tokens: [%d]", g_slist_length(tokens));\r
+                       g_slist_foreach(tokens, print_glib_list_elem, NULL); //for debug log\r
 \r
-                       if(0 == ScLength)\r
+                       hex_pdu = g_slist_nth_data(tokens, 0); //Fetch SMS PDU\r
+                       if (NULL != hex_pdu)\r
                        {\r
+                               util_hex_dump("    ", sizeof(hex_pdu), (void *)hex_pdu);\r
+\r
+                               byte_pdu = util_hexStringToBytes(hex_pdu);\r
+\r
+                               sca_length = (int)byte_pdu[0];\r
 \r
-                               respReadMsg.dataInfo.smsData.msgLength =  length  - (ScLength+1) ;\r
+                               resp_read_msg.dataInfo.simIndex = index; //Retrieving index stored as user_data\r
 \r
-                               if ((respReadMsg.dataInfo.smsData.msgLength >0) && (0xff >= respReadMsg.dataInfo.smsData.msgLength))\r
+                               if(0 == sca_length)\r
                                {\r
                                        dbg("SCA Length is 0");\r
 \r
-                                       memset(respReadMsg.dataInfo.smsData.sca, 0, TAPI_SIM_SMSP_ADDRESS_LEN);\r
+                                       resp_read_msg.dataInfo.smsData.msgLength =  pdu_len  - (sca_length+1);\r
+                                       dbg("msgLength: [%d]", resp_read_msg.dataInfo.smsData.msgLength);\r
 \r
-                                       /*\r
-                                       if(read_data.SmsData.MsgLength > SMS_SMDATA_SIZE_MAX)\r
+                                       if ((resp_read_msg.dataInfo.smsData.msgLength > 0)\r
+                                               && (resp_read_msg.dataInfo.smsData.msgLength <= 0xff))\r
                                        {\r
-                                               respReadMsg.dataInfo.smsData.msgLength = SMS_SMDATA_SIZE_MAX;\r
-                                       }\r
-                                       */\r
+                                               memset(resp_read_msg.dataInfo.smsData.sca, 0, TAPI_SIM_SMSP_ADDRESS_LEN);\r
+                                               memcpy(resp_read_msg.dataInfo.smsData.tpduData, &byte_pdu[2], resp_read_msg.dataInfo.smsData.msgLength);\r
 \r
-                                       memcpy(respReadMsg.dataInfo.smsData.tpduData, &pdu[2], respReadMsg.dataInfo.smsData.msgLength);\r
-                                       respReadMsg.result = SMS_SUCCESS;\r
+                                               resp_read_msg.result = SMS_SUCCESS;\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               err("Invalid Message Length");\r
 \r
-                                       rtn = tcore_user_request_send_response(ur, TRESP_SMS_READ_MSG, sizeof(struct tresp_sms_read_msg), &respReadMsg);\r
+                                               resp_read_msg.result = SMS_INVALID_PARAMETER_FORMAT;\r
+                                       }\r
                                }\r
                                else\r
                                {\r
-                                       dbg("Invalid Message Length");\r
-                                       respReadMsg.result = SMS_INVALID_PARAMETER_FORMAT;\r
-                                       rtn = tcore_user_request_send_response(ur, TRESP_SMS_READ_MSG, sizeof(struct tresp_sms_read_msg), &respReadMsg);\r
-                               }\r
+                                       dbg("SCA Length is not 0");\r
 \r
-                       }\r
-                       else            //SCLength is Not 0\r
-                       {\r
-                               respReadMsg.dataInfo.smsData.msgLength =  (length - (ScLength+1));\r
-                               dbg("data msg len is %d", respReadMsg.dataInfo.smsData.msgLength);\r
-\r
-                               if ((respReadMsg.dataInfo.smsData.msgLength >0) && (0xff >= respReadMsg.dataInfo.smsData.msgLength))\r
-                               {\r
-                                       memcpy(respReadMsg.dataInfo.smsData.sca, (char*)pdu,(ScLength+1));\r
+                                       resp_read_msg.dataInfo.smsData.msgLength =  (pdu_len - (sca_length+1));\r
+                                       dbg("msgLength: [%d]", resp_read_msg.dataInfo.smsData.msgLength);\r
 \r
-                                       /*LastSemiOctect = pdu[ScLength + 1] & 0xf0;\r
-                                       if(LastSemiOctect == 0xf0)\r
+                                       if ((resp_read_msg.dataInfo.smsData.msgLength > 0)\r
+                                               && (resp_read_msg.dataInfo.smsData.msgLength <= 0xff))\r
                                        {\r
-                                               respReadMsg.dataInfo.smsData.sca[0] = (ScLength-1)*2 - 1;\r
+                                               memcpy(resp_read_msg.dataInfo.smsData.sca, (char *)byte_pdu, (sca_length+1));\r
+                                               memcpy(resp_read_msg.dataInfo.smsData.tpduData, &byte_pdu[sca_length+1], resp_read_msg.dataInfo.smsData.msgLength);\r
+\r
+                                               util_hex_dump("    ", SMS_SMSP_ADDRESS_LEN, (void *)resp_read_msg.dataInfo.smsData.sca);\r
+                                               util_hex_dump("    ", (SMS_SMDATA_SIZE_MAX + 1), (void *)resp_read_msg.dataInfo.smsData.tpduData);\r
+                                               util_hex_dump("    ", sizeof(byte_pdu), (void *)byte_pdu);\r
+\r
+                                               resp_read_msg.result = SMS_SUCCESS;\r
                                        }\r
                                        else\r
                                        {\r
-                                               respReadMsg.dataInfo.smsData.sca[0] = (ScLength-1)*2;\r
-                                       }\r
-                                       */\r
-                                       \r
-\r
-                                       //if(respReadMsg.dataInfo.smsData.msgLength > SMS_SMDATA_SIZE_MAX)\r
-                               //      {\r
-                                       //      respReadMsg.dataInfo.smsData.msgLength = SMS_SMDATA_SIZE_MAX;\r
-                               //      }\r
+                                               err("Invalid Message Length");\r
 \r
-                                       for(i=0;i<(ScLength+1);i++)\r
-                                       {\r
-                                               dbg("SCA is [%2x] ", respReadMsg.dataInfo.smsData.sca[i]);\r
+                                               resp_read_msg.result = SMS_INVALID_PARAMETER_FORMAT;\r
                                        }\r
-\r
-                                       memcpy(respReadMsg.dataInfo.smsData.tpduData, &pdu[ScLength+1], respReadMsg.dataInfo.smsData.msgLength);\r
-                                       respReadMsg.result = SMS_SUCCESS;\r
-\r
-                                       dbg("read tpdu is %s sca is %s pdu %s",respReadMsg.dataInfo.smsData.tpduData, respReadMsg.dataInfo.smsData.sca,pdu);\r
-\r
-                                       rtn = tcore_user_request_send_response(ur, TRESP_SMS_READ_MSG, sizeof(struct tresp_sms_read_msg), &respReadMsg);\r
                                }\r
-                               else\r
-                               {\r
-                                       dbg("Invalid Message Length");\r
-                                       respReadMsg.result = SMS_INVALID_PARAMETER_FORMAT;\r
-                                       rtn = tcore_user_request_send_response(ur, TRESP_SMS_READ_MSG, sizeof(struct tresp_sms_read_msg), &respReadMsg);\r
-                               }\r
-\r
+                       }\r
+                       else\r
+                       {\r
+                               dbg("NULL PDU");\r
+                               resp_read_msg.result = SMS_PHONE_FAILURE;\r
                        }\r
                }\r
                else\r
                {\r
-                       dbg("Read PDU Is NULL");\r
-               }\r
-               }\r
-               else\r
-               {\r
-                       dbg("No lines in AT response");\r
+                       dbg("No lines");\r
+                       resp_read_msg.result = SMS_PHONE_FAILURE;\r
                }\r
        }\r
        else\r
        {\r
-               dbg("Response NOK");\r
+               err("Response NOK");\r
+               resp_read_msg.result = SMS_PHONE_FAILURE;\r
        }\r
+\r
+       tcore_user_request_send_response(user_req, TRESP_SMS_READ_MSG, sizeof(resp_read_msg), &resp_read_msg);\r
+\r
+       dbg("Exit");\r
        return;\r
 }\r
 \r
-static void on_response_get_msg_indices(TcorePending *p, int data_len, const void *data, void *user_data)\r
+static void on_response_get_msg_indices(TcorePending *pending, int data_len, const void *data, void *user_data)\r
 {\r
-       UserRequest *ur = NULL;\r
-       struct tresp_sms_get_storedMsgCnt * respStoredMsgCnt_prev = NULL;\r
-       struct tresp_sms_get_storedMsgCnt respStoredMsgCnt;\r
-       const TcoreATResponse *atResp = data;\r
+       const TcoreATResponse *at_response = data;\r
+       struct tresp_sms_get_storedMsgCnt resp_stored_msg_cnt;\r
+       UserRequest *user_req = NULL;\r
+       struct tresp_sms_get_storedMsgCnt *resp_stored_msg_cnt_prev = NULL;\r
+\r
        GSList *tokens = NULL;\r
-       char *line = NULL , *pResp = NULL;\r
-       int noOfLines = 0 , i = 0;\r
+       char *gslist_line = NULL, *line_token = NULL;\r
+       int gslist_line_count = 0, ctr_loop = 0;\r
 \r
-       //memset(&respStoredMsgCnt, 0, sizeof(struct tresp_sms_get_storedMsgCnt));\r
+       dbg("Entry");\r
 \r
-       respStoredMsgCnt_prev = (struct tresp_sms_get_storedMsgCnt *)user_data;\r
-       ur = tcore_pending_ref_user_request(p);\r
+       resp_stored_msg_cnt_prev = (struct tresp_sms_get_storedMsgCnt *)user_data;\r
+       user_req = tcore_pending_ref_user_request(pending);\r
 \r
-       respStoredMsgCnt.result = SMS_SENDSMS_SUCCESS;\r
+       memset(&resp_stored_msg_cnt, 0x00, sizeof(resp_stored_msg_cnt));\r
 \r
-       if (atResp->success)\r
-        {\r
-                dbg("Response OK");\r
-                if(atResp->lines)\r
-                {\r
-                       noOfLines = g_slist_length(atResp->lines);\r
-\r
-                       if (noOfLines > SMS_GSM_SMS_MSG_NUM_MAX)\r
-                               noOfLines = SMS_GSM_SMS_MSG_NUM_MAX;\r
+       if (at_response->success)\r
+       {\r
+               dbg("Response OK");\r
+               if(at_response->lines)\r
+               {\r
+                       gslist_line_count = g_slist_length(at_response->lines);\r
 \r
-                        dbg("no of lines is %d", noOfLines);\r
+                       if (gslist_line_count > SMS_GSM_SMS_MSG_NUM_MAX)\r
+                               gslist_line_count = SMS_GSM_SMS_MSG_NUM_MAX;\r
 \r
-                       g_slist_foreach(atResp->lines, print_glib_list_elem, NULL); /* gaurav.kalra: For test */\r
+                       dbg("Number of lines: [%d]", gslist_line_count);\r
+                       g_slist_foreach(at_response->lines, print_glib_list_elem, NULL); //for debug log\r
 \r
-                       for (i = 0; i < noOfLines ; i++)\r
+                       for (ctr_loop = 0; ctr_loop < gslist_line_count ; ctr_loop++)\r
                        {\r
-                               line = (char *)g_slist_nth_data(atResp->lines, i); /* Fetch Line i */\r
+                               gslist_line = (char *)g_slist_nth_data(at_response->lines, ctr_loop); /* Fetch Line i */\r
 \r
-                               dbg("line %d is %s", i, line);\r
+                               dbg("gslist_line [%d] is [%s]", ctr_loop, gslist_line);\r
 \r
-                               if (line != NULL)\r
+                               if (NULL != gslist_line)\r
                                {\r
-                                       tokens = tcore_at_tok_new(line);\r
+                                       tokens = tcore_at_tok_new(gslist_line);\r
 \r
                                        g_slist_foreach(tokens, print_glib_list_elem, NULL); /* gaurav.kalra: For test */\r
 \r
-                                       pResp = g_slist_nth_data(tokens, 0);\r
-                                       if (pResp != NULL)\r
+                                       line_token = g_slist_nth_data(tokens, 0);\r
+                                       if (NULL != line_token)\r
                                        {\r
-                                               respStoredMsgCnt.storedMsgCnt.indexList[i] = atoi(pResp);\r
+                                               resp_stored_msg_cnt.storedMsgCnt.indexList[ctr_loop] = atoi(line_token);\r
                                        }\r
                                        else\r
                                        {\r
-                                               respStoredMsgCnt.result = SMS_DEVICE_FAILURE;\r
-                                               dbg("pResp of line %d is NULL", i);\r
+                                               resp_stored_msg_cnt.result = SMS_DEVICE_FAILURE;\r
+                                               dbg("line_token of gslist_line [%d] is NULL", ctr_loop);\r
 \r
+                                               break;\r
                                        }\r
                                }\r
                                else\r
                                {\r
-                                       respStoredMsgCnt.result = SMS_DEVICE_FAILURE;\r
-                                       dbg("line %d is NULL", i);\r
+                                       resp_stored_msg_cnt.result = SMS_DEVICE_FAILURE;\r
+                                       dbg("gslist_line [%d] is NULL", ctr_loop);\r
+\r
+                                       break;\r
                                }\r
                        }\r
                }\r
                else\r
                {\r
                        dbg("No lines.");\r
-                       /* Check if used count is zero */\r
-                       if(respStoredMsgCnt_prev->storedMsgCnt.usedCount == 0)\r
-                               respStoredMsgCnt.result = SMS_SENDSMS_SUCCESS;\r
+                       if(resp_stored_msg_cnt_prev->storedMsgCnt.usedCount == 0) //Check if used count is zero\r
+                       {\r
+                               resp_stored_msg_cnt.result = SMS_SENDSMS_SUCCESS;\r
+                       }\r
                        else\r
-                               respStoredMsgCnt.result = SMS_DEVICE_FAILURE;\r
+                       {\r
+                               resp_stored_msg_cnt.result = SMS_DEVICE_FAILURE;\r
+                       }\r
                }\r
        }\r
        else\r
        {\r
                dbg("Respnose NOK");\r
-               respStoredMsgCnt.result = SMS_DEVICE_FAILURE;\r
+               resp_stored_msg_cnt.result = SMS_DEVICE_FAILURE;\r
        }\r
 \r
-       for(i = 0; i < noOfLines ; i++)\r
-               dbg("index: [%d]", respStoredMsgCnt.storedMsgCnt.indexList[i]);\r
-\r
-       respStoredMsgCnt.storedMsgCnt.totalCount = respStoredMsgCnt_prev->storedMsgCnt.totalCount;\r
-       respStoredMsgCnt.storedMsgCnt.usedCount = respStoredMsgCnt_prev->storedMsgCnt.usedCount;\r
+       resp_stored_msg_cnt.storedMsgCnt.totalCount = resp_stored_msg_cnt_prev->storedMsgCnt.totalCount;\r
+       resp_stored_msg_cnt.storedMsgCnt.usedCount = resp_stored_msg_cnt_prev->storedMsgCnt.usedCount;\r
 \r
-       dbg("total: [%d]", respStoredMsgCnt.storedMsgCnt.totalCount);\r
-       dbg("used: [%d]", respStoredMsgCnt.storedMsgCnt.usedCount);\r
-       dbg("result: [%d]", respStoredMsgCnt.result);\r
+       util_sms_free_memory(resp_stored_msg_cnt_prev);\r
 \r
-       util_sms_free_memory(respStoredMsgCnt_prev);\r
-\r
-       tcore_user_request_send_response(ur, TRESP_SMS_GET_STORED_MSG_COUNT, sizeof(struct tresp_sms_get_storedMsgCnt), &respStoredMsgCnt);\r
+       dbg("total: [%d]", resp_stored_msg_cnt.storedMsgCnt.totalCount);\r
+       dbg("used: [%d]", resp_stored_msg_cnt.storedMsgCnt.usedCount);\r
+       dbg("result: [%d]", resp_stored_msg_cnt.result);\r
+       for(ctr_loop = 0; ctr_loop < gslist_line_count; ctr_loop++)\r
+       {\r
+               dbg("index: [%d]", resp_stored_msg_cnt.storedMsgCnt.indexList[ctr_loop]);\r
+       }\r
 \r
+       tcore_user_request_send_response(user_req, TRESP_SMS_GET_STORED_MSG_COUNT, sizeof(resp_stored_msg_cnt), &resp_stored_msg_cnt);\r
 \r
+       dbg("Exit");\r
+       return;\r
 }\r
 \r
-static void on_response_get_storedMsgCnt(TcorePending *p, int data_len, const void *data, void *user_data)\r
+static void on_response_get_storedMsgCnt(TcorePending *pending, int data_len, const void *data, void *user_data)\r
 {\r
        UserRequest *ur = NULL, *ur_dup = NULL;\r
        struct tresp_sms_get_storedMsgCnt *respStoredMsgCnt = NULL;\r
@@ -1130,9 +1123,9 @@ static void on_response_get_storedMsgCnt(TcorePending *p, int data_len, const vo
 \r
        respStoredMsgCnt = malloc(sizeof(struct tresp_sms_get_storedMsgCnt));\r
 \r
-       ur = tcore_pending_ref_user_request(p);\r
+       ur = tcore_pending_ref_user_request(pending);\r
        ur_dup = tcore_user_request_ref(ur);\r
-       o = tcore_pending_ref_core_object(p);\r
+       o = tcore_pending_ref_core_object(pending);\r
 \r
        if (atResp->success > 0)\r
        {\r
@@ -1149,7 +1142,6 @@ static void on_response_get_storedMsgCnt(TcorePending *p, int data_len, const vo
                        {\r
                                usedCnt =atoi(pResp);\r
                                dbg("used cnt is %d",usedCnt);\r
-\r
                        }\r
 \r
                        pResp = g_slist_nth_data(tokens, 1);\r
@@ -1195,50 +1187,65 @@ static void on_response_get_storedMsgCnt(TcorePending *p, int data_len, const vo
 \r
 static void on_response_get_sca(TcorePending *pending, int data_len, const void *data, void *user_data)\r
 {\r
-       //Response is expected in this format +CSCA: <sca>,<tosca>\r
-\r
-       UserRequest *ur;\r
+       const TcoreATResponse *at_response = data;\r
        struct tresp_sms_get_sca respGetSca;\r
-       GSList *tokens=NULL;\r
+       UserRequest *user_req = NULL;\r
 \r
-       //copies the AT response data to resp\r
-       const TcoreATResponse *atResp = data;\r
-       char *line = NULL, *sca = NULL, *typeOfAddress = NULL;\r
+       GSList *tokens = NULL;\r
+       char *gslist_line = NULL, *sca_addr = NULL, *sca_toa = NULL;\r
 \r
-       // +CSCA: <sca number>,<sca type>\r
+       dbg("Entry");\r
 \r
-       memset(&respGetSca, 0, sizeof(struct tresp_sms_get_sca));\r
+       memset(&respGetSca, 0, sizeof(respGetSca));\r
 \r
-       ur = tcore_pending_ref_user_request(pending);\r
-       if (atResp->success)\r
+       user_req = tcore_pending_ref_user_request(pending);\r
+\r
+       if (at_response->success)\r
        {\r
                dbg("Response OK");\r
-               if(atResp->lines)\r
+               if(at_response->lines)\r
                {\r
-                       line = (char*)atResp->lines->data;\r
-                       tokens = tcore_at_tok_new(line);\r
-                       sca = g_slist_nth_data(tokens, 0);\r
-                       typeOfAddress = g_slist_nth_data(tokens, 1);\r
-                       if ((sca) && (typeOfAddress))\r
+                       gslist_line = (char *)at_response->lines->data;\r
+\r
+                       tokens = tcore_at_tok_new(gslist_line);\r
+                       sca_addr = g_slist_nth_data(tokens, 0);\r
+                       sca_toa = g_slist_nth_data(tokens, 1);\r
+\r
+                       if ((NULL != sca_addr)\r
+                               && (NULL != sca_toa))\r
                        {\r
-                                       dbg("sca and address type are %s %s", sca, typeOfAddress);\r
-                                       respGetSca.scaAddress.dialNumLen = strlen(sca);\r
-                                       if(atoi(typeOfAddress) == 145)\r
-                                               {\r
-                                                       respGetSca.scaAddress.typeOfNum = SIM_TON_INTERNATIONAL;\r
-                                               }\r
-                                       else\r
-                                               {\r
-                                                       respGetSca.scaAddress.typeOfNum = SIM_TON_NATIONAL;\r
-                                               }\r
-                                       respGetSca.scaAddress.numPlanId = 0;\r
+                               dbg("sca_addr: [%s]. sca_toa: [%s]", sca_addr, sca_toa);\r
+\r
+                               respGetSca.scaAddress.dialNumLen = strlen(sca_addr);\r
+\r
+                               if(145 == atoi(sca_toa))\r
+                               {\r
+                                       respGetSca.scaAddress.typeOfNum = SIM_TON_INTERNATIONAL;\r
+                               }\r
+                               else\r
+                               {\r
+                                       respGetSca.scaAddress.typeOfNum = SIM_TON_NATIONAL;\r
+                               }\r
+\r
+                               respGetSca.scaAddress.numPlanId = 0;\r
+\r
+                               memcpy(respGetSca.scaAddress.diallingNum, sca_addr, strlen(sca_addr));\r
 \r
-                                       memcpy(respGetSca.scaAddress.diallingNum, sca, strlen(sca));\r
+                               dbg("len [%d], sca_addr [%s], TON [%d], NPI [%d]", respGetSca.scaAddress.dialNumLen, respGetSca.scaAddress.diallingNum, respGetSca.scaAddress.typeOfNum, respGetSca.scaAddress.numPlanId);\r
 \r
-                                       dbg("len %d, sca %s, TON %d, NPI %d",respGetSca.scaAddress.dialNumLen,respGetSca.scaAddress.diallingNum,respGetSca.scaAddress.typeOfNum,respGetSca.scaAddress.numPlanId);\r
-                                       respGetSca.result = SMS_SENDSMS_SUCCESS;\r
+                               respGetSca.result = SMS_SENDSMS_SUCCESS;\r
+                       }\r
+                       else\r
+                       {\r
+                               err("sca_addr OR sca_toa NULL");\r
+                               respGetSca.result = SMS_DEVICE_FAILURE;\r
                        }\r
                }\r
+               else\r
+               {\r
+                       dbg("NO Lines");\r
+                       respGetSca.result = SMS_DEVICE_FAILURE;\r
+               }\r
        }\r
        else\r
        {\r
@@ -1246,9 +1253,10 @@ static void on_response_get_sca(TcorePending *pending, int data_len, const void
                respGetSca.result = SMS_DEVICE_FAILURE;\r
        }\r
 \r
-       tcore_user_request_send_response(ur, TRESP_SMS_GET_SCA, sizeof(struct tresp_sms_get_sca), &respGetSca);\r
-       return;\r
+       tcore_user_request_send_response(user_req, TRESP_SMS_GET_SCA, sizeof(respGetSca), &respGetSca);\r
 \r
+       dbg("Exit");\r
+       return;\r
 }\r
 \r
 static void on_response_set_sca(TcorePending *pending, int data_len, const void *data, void *user_data)\r
@@ -3106,7 +3114,7 @@ static TReturn set_sms_params(CoreObject *obj, UserRequest *ur)
        dbg("alpha id len is %d", alpha_id_len);\r
 \r
         memcpy(temp_data,&(setSmsParams->params.szAlphaId),alpha_id_len);\r
-       memcpy((temp_data+alpha_id_len), &(setSmsParams->params.paramIndicator), 1);    \r
+       memcpy((temp_data+alpha_id_len), &(setSmsParams->params.paramIndicator), 1);\r
 \r
        dest_addr = calloc(sizeof(struct telephony_sms_AddressInfo),1);\r
        svc_addr = calloc(sizeof(struct telephony_sms_AddressInfo),1);\r
@@ -3115,29 +3123,29 @@ static TReturn set_sms_params(CoreObject *obj, UserRequest *ur)
        {\r
                dbg("dest_addr is not present");\r
                dest_addr[0] = 0;\r
-               \r
+\r
        }else\r
        {\r
                dest_addr[0] = setSmsParams->params.tpDestAddr.dialNumLen;\r
                dest_addr[1] = (((setSmsParams->params.tpDestAddr.typeOfNum << 4) | setSmsParams->params.tpDestAddr.numPlanId) | 0x80);\r
                memcpy(&(dest_addr[2]),setSmsParams->params.tpDestAddr.diallingNum,setSmsParams->params.tpDestAddr.dialNumLen);\r
                dbg("dest_addr is %s",dest_addr);\r
\r
-       } \r
+\r
+       }\r
 \r
        if (setSmsParams->params.tpSvcCntrAddr.dialNumLen == 0)\r
         {\r
                 dbg("svc_addr is not present");\r
                 svc_addr[0] = 0;\r
-                \r
+\r
         }else\r
         {\r
                 svc_addr[0] = setSmsParams->params.tpSvcCntrAddr.dialNumLen;\r
                 svc_addr[1] = (((setSmsParams->params.tpSvcCntrAddr.typeOfNum << 4) | setSmsParams->params.tpSvcCntrAddr.numPlanId) | 0x80);\r
                 memcpy(&(svc_addr[2]),&(setSmsParams->params.tpSvcCntrAddr.diallingNum),setSmsParams->params.tpSvcCntrAddr.dialNumLen);\r
                 dbg("svc_addr is %s %s",svc_addr, setSmsParams->params.tpSvcCntrAddr.diallingNum);\r
\r
-        } \r
+\r
+        }\r
 \r
        memcpy((temp_data+alpha_id_len+1), dest_addr, setSmsParams->params.tpDestAddr.dialNumLen);\r
         memcpy((temp_data+alpha_id_len+setSmsParams->params.tpDestAddr.dialNumLen+1), svc_addr, setSmsParams->params.tpSvcCntrAddr.dialNumLen);\r
@@ -3151,7 +3159,7 @@ static TReturn set_sms_params(CoreObject *obj, UserRequest *ur)
 \r
        dbg("temp data and len %s %d",temp_data, len);\r
 \r
-       \r
+\r
        //EFsmsp file size is 28 +Y bytes (Y is alpha id size)\r
         encoded_data = calloc((setSmsParams->params.alphaIdLen+28),1);\r
 \r
@@ -3193,7 +3201,7 @@ static TReturn set_sms_params(CoreObject *obj, UserRequest *ur)
        dbg("Exit");\r
        return TCORE_RETURN_SUCCESS;\r
        }\r
-       return TRUE;    \r
+       return TRUE;\r
 }\r
 \r
 static TReturn get_paramcnt(CoreObject *obj, UserRequest *ur)\r