2 * tel-plugin-socket-communicator
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ja-young Gu <jygu@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
25 #include <glib-object.h>
33 #include <communicator.h>
34 #include <core_object.h>
36 #include <user_request.h>
41 #include "tapi_common.h"
42 #include "module_req.h"
44 gboolean scomm_service_request_sms(unsigned int ch_id, Communicator *comm, TcorePlugin *plugin, tapi_service_command_e cmd, gchar *data, void **outparam)
46 struct _sipc_marshal_object *out_obj;
47 struct _sipc_marshal_object *in_obj;
48 gboolean result = TRUE;
49 UserRequest *ur = NULL;
50 struct tcore_user_info ui = { 0, 0, 0, NULL, 0, 0, NULL };
51 TReturn ret = TCORE_RETURN_SUCCESS;
54 struct treq_sms_send_umts_msg sendUmtsMsg = {0,};
55 struct treq_sms_send_cdma_msg cdmaMsg = {0,};
56 struct treq_sms_read_msg readMsg = {0,};
57 struct treq_sms_save_msg saveMsg = {0,};
58 struct treq_sms_delete_msg deleteMsg = {0,};
59 struct treq_sms_get_msg_count getMsgCnt;
60 struct treq_sms_get_sca getSca = {0,};
61 struct treq_sms_set_sca setSca = {0,};
62 struct treq_sms_get_cb_config getCbConfig;
63 struct treq_sms_set_cb_config setCbConfig = {0,};
64 struct treq_sms_set_mem_status memStatus = {0,};
65 struct treq_sms_get_pref_bearer getPrefBearer;
66 struct treq_sms_set_pref_bearer setPrefBearer = {0,};
67 struct treq_sms_set_delivery_report deliveryReport = {0,};
68 struct treq_sms_set_msg_status msgStatus = {0,};
69 struct treq_sms_get_params getParams = {0,};
70 struct treq_sms_set_params setParams = {0,};
71 struct treq_sms_get_paramcnt getParamCnt;
73 in_obj = sipc_util_marshal_object_deserializer(data);
75 dbg("in_obj is NULL");
80 ur = tcore_user_request_new(comm, tcore_plugin_get_description(plugin)->name);
87 ui.channel_id = ch_id;
88 ui.client_cmd = (unsigned int)cmd;
90 tcore_user_request_set_user_info(ur, &ui);
93 case TAPI_SERVICE_SMS_SEND_UMTS_MSG: {
97 sca = sipc_util_marshal_object_get_string(in_obj, "Sca");
98 memcpy(&(sendUmtsMsg.msgDataPackage.sca[0]), sca, SMS_SMSP_ADDRESS_LEN);
99 sendUmtsMsg.msgDataPackage.msgLength = sipc_util_marshal_object_get_int(in_obj, "MsgLength");
100 szData = sipc_util_marshal_object_get_string(in_obj, "szData");
101 memcpy(&(sendUmtsMsg.msgDataPackage.tpduData[0]), szData, SMS_SMDATA_SIZE_MAX + 1);
102 sendUmtsMsg.more = sipc_util_marshal_object_get_int(in_obj, "More");
104 tcore_user_request_set_data(ur, sizeof(struct treq_sms_send_umts_msg), &sendUmtsMsg);
105 tcore_user_request_set_command(ur, TREQ_SMS_SEND_UMTS_MSG);
107 ret = tcore_communicator_dispatch_request(comm, ur);
108 if (ret != TCORE_RETURN_SUCCESS) {
109 // api_err = TAPI_API_OPERATION_FAILED;
110 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
117 case TAPI_SERVICE_SMS_SEND_CDMA_MSG: {
119 cdmaMsg.more = sipc_util_marshal_object_get_int(in_obj, "More");
120 cdmaMsg.cdmaMsgInfo.ParamMask = sipc_util_marshal_object_get_int(in_obj, "ParamMask");
121 cdmaMsg.cdmaMsgInfo.MsgType = sipc_util_marshal_object_get_int(in_obj, "MsgType");
123 switch(cdmaMsg.cdmaMsgInfo.MsgType)
125 case SMS_MESSAGETYPE_SUBMIT: {
126 gchar *dstAddr_szAddress;
127 gchar *dstSubAddr_szAddress;
129 gchar *callBackNumer_szAddress;
131 /* Origination address */
132 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.Digit = sipc_util_marshal_object_get_int(in_obj, "DstAddr.Digit");
133 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.NumberMode = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberMode");
134 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.NumberType = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberType");
135 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.NumberPlan = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberPlan");
136 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstAddr.szAddrLength");
137 dstAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstAddr.szAddress");
138 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstAddr.szAddress[0]), dstAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
140 /* Origination subaddress */
141 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstSubAddr.SubType = sipc_util_marshal_object_get_int(in_obj, "DstSubAddr.SubType");
142 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstSubAddr.Odd = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.Odd");
143 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstSubAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.szAddrLength");
144 dstSubAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstSubAddr.szAddress");
145 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DstSubAddr.szAddress[0]), dstSubAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
147 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.TeleService = sipc_util_marshal_object_get_int(in_obj, "TeleService");
148 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.bBearerReplySeqRequest = sipc_util_marshal_object_get_int(in_obj, "bBearerReplySeqRequest");
149 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ReplySeqNumber = sipc_util_marshal_object_get_char(in_obj, "ReplySeqNumber");
150 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.MsgId = sipc_util_marshal_object_get_int(in_obj, "MsgId");
151 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.MsgEncoding = sipc_util_marshal_object_get_int(in_obj, "MsgEncoding");
152 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.MsgLength = sipc_util_marshal_object_get_int(in_obj, "MsgLength");
153 szData = sipc_util_marshal_object_get_string(in_obj, "szData");
154 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.szData[0]), szData, SMS_MAXLENGTH_SMS_MO_USER_DATA);
156 /* Validity period - Absolute */
157 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.year = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.year");
158 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.month = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.month");
159 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.day = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.day");
160 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.hours = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.hours");
161 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.minutes = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.minutes");
162 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodAbs.seconds = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriodAbs.seconds");
164 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.ValidityPeriodRel = sipc_util_marshal_object_get_char(in_obj, "ValidityPeriodRel");
166 /* Deferred delivery time - Absolute (not supported) */
167 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.year = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.year");
168 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.month = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.month");
169 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.day = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.day");
170 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.hours = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.hours");
171 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.minutes = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.minutes");
172 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeAbs.seconds = sipc_util_marshal_object_get_int(in_obj, "DeferredDelTimeAbs.seconds");
174 /* Deferred delivery time - Relative (not supported) */
175 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.DeferredDelTimeRel = sipc_util_marshal_object_get_char(in_obj, "DeferredDelTimeRel");
177 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.Priority = sipc_util_marshal_object_get_int(in_obj, "Priority");
178 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.Privacy = sipc_util_marshal_object_get_int(in_obj, "Privacy");
179 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.bUserAckRequest = sipc_util_marshal_object_get_int(in_obj, "bUserAckRequest");
180 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.bDeliveryAckRequest = sipc_util_marshal_object_get_int(in_obj, "bDeliveryAckRequest");
181 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.AlertPriority= sipc_util_marshal_object_get_int(in_obj, "AlertPriority");
182 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.MsgLang= sipc_util_marshal_object_get_int(in_obj, "MsgLang");
184 /* Callback number address */
185 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.Digit = sipc_util_marshal_object_get_int(in_obj, "CallBackNumer.Digit");
186 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.NumberMode = sipc_util_marshal_object_get_int(in_obj, "CallBackNumer.NumberMode");
187 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.NumberType = sipc_util_marshal_object_get_int(in_obj, "CallBackNumer.NumberType");
188 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.NumberPlan = sipc_util_marshal_object_get_int(in_obj, "CallBackNumer.NumberPlan");
189 cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "CallBackNumer.szAddrLength");
190 callBackNumer_szAddress = sipc_util_marshal_object_get_string(in_obj, "CallBackNumer.szAddress");
191 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outSubmit.CallBackNumber.szAddress[0]), callBackNumer_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
196 case SMS_MESSAGETYPE_CANCEL: {
197 gchar *dstAddr_szAddress;
198 gchar *dstSubAddr_szAddress;
200 /* Origination address */
201 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.Digit = sipc_util_marshal_object_get_int(in_obj, "DstAddr.Digit");
202 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.NumberMode = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberMode");
203 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.NumberType = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberType");
204 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.NumberPlan = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberPlan");
205 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstAddr.szAddrLength");
206 dstAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstAddr.szAddress");
207 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstAddr.szAddress[0]), dstAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
209 /* Origination subaddress */
210 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstSubAddr.SubType = sipc_util_marshal_object_get_int(in_obj, "DstSubAddr.SubType");
211 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstSubAddr.Odd = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.Odd");
212 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstSubAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.szAddrLength");
213 dstSubAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstSubAddr.szAddress");
214 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outCancel.DstSubAddr.szAddress[0]), dstSubAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
216 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.TeleService = sipc_util_marshal_object_get_int(in_obj, "TeleService");
217 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.bBearerReplySeqRequest = sipc_util_marshal_object_get_int(in_obj, "bBearerReplySeqRequest");
218 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.ReplySeqNumber = sipc_util_marshal_object_get_char(in_obj, "ReplySeqNumber");
219 cdmaMsg.cdmaMsgInfo.MsgData.outCancel.MsgId = sipc_util_marshal_object_get_int(in_obj, "MsgId");
224 case SMS_MESSAGETYPE_USER_ACK: {
225 gchar *dstAddr_szAddress;
226 gchar *dstSubAddr_szAddress;
229 /* Origination address */
230 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.Digit = sipc_util_marshal_object_get_int(in_obj, "DstAddr.Digit");
231 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.NumberMode = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberMode");
232 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.NumberType = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberType");
233 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.NumberPlan = sipc_util_marshal_object_get_int(in_obj, "DstAddr.NumberPlan");
234 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstAddr.szAddrLength");
235 dstAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstAddr.szAddress");
236 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstAddr.szAddress[0]), dstAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
238 /* Origination subaddress */
239 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstSubAddr.SubType = sipc_util_marshal_object_get_int(in_obj, "DstSubAddr.SubType");
240 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstSubAddr.Odd = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.Odd");
241 cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstSubAddr.szAddrLength = sipc_util_marshal_object_get_char(in_obj, "DstSubAddr.szAddrLength");
242 dstSubAddr_szAddress = sipc_util_marshal_object_get_string(in_obj, "DstSubAddr.szAddress");
243 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outAck.DstSubAddr.szAddress[0]), dstSubAddr_szAddress, SMS_MAXLENGTH_SMS_ADDRESS);
245 cdmaMsg.cdmaMsgInfo.MsgData.outAck.TeleService = sipc_util_marshal_object_get_int(in_obj, "TeleService");
246 cdmaMsg.cdmaMsgInfo.MsgData.outAck.bBearerReplySeqRequest = sipc_util_marshal_object_get_int(in_obj, "bBearerReplySeqRequest");
247 cdmaMsg.cdmaMsgInfo.MsgData.outAck.ReplySeqNumber = sipc_util_marshal_object_get_char(in_obj, "ReplySeqNumber");
248 cdmaMsg.cdmaMsgInfo.MsgData.outAck.MsgId = sipc_util_marshal_object_get_int(in_obj, "MsgId");
249 cdmaMsg.cdmaMsgInfo.MsgData.outAck.MsgEncoding = sipc_util_marshal_object_get_int(in_obj, "MsgEncoding");
250 cdmaMsg.cdmaMsgInfo.MsgData.outAck.MsgLength = sipc_util_marshal_object_get_int(in_obj, "MsgLength");
251 szData = sipc_util_marshal_object_get_string(in_obj, "szData");
252 memcpy(&(cdmaMsg.cdmaMsgInfo.MsgData.outAck.szData[0]), szData, SMS_MAXLENGTH_SMS_MO_USER_DATA);
253 cdmaMsg.cdmaMsgInfo.MsgData.outAck.UserResponseCode = sipc_util_marshal_object_get_char(in_obj, "UserResponseCode");
261 tcore_user_request_set_data(ur, sizeof(struct treq_sms_send_cdma_msg), &cdmaMsg);
262 tcore_user_request_set_command(ur, TREQ_SMS_SEND_CDMA_MSG);
264 ret = tcore_communicator_dispatch_request(comm, ur);
265 if (ret != TCORE_RETURN_SUCCESS) {
266 // api_err = TAPI_API_OPERATION_FAILED;
267 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
274 case TAPI_SERVICE_SMS_READ_MSG: {
276 readMsg.index = sipc_util_marshal_object_get_int(in_obj, "Index");
278 tcore_user_request_set_data(ur, sizeof(struct treq_sms_read_msg), &readMsg);
279 tcore_user_request_set_command(ur, TREQ_SMS_READ_MSG);
281 ret = tcore_communicator_dispatch_request(comm, ur);
282 if (ret != TCORE_RETURN_SUCCESS) {
283 // api_err = TAPI_API_OPERATION_FAILED;
284 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
291 case TAPI_SERVICE_SMS_SAVE_MSG: {
295 saveMsg.simIndex = sipc_util_marshal_object_get_int(in_obj, "Index");
296 saveMsg.msgStatus = sipc_util_marshal_object_get_int(in_obj, "MsgStatus");
297 sca = sipc_util_marshal_object_get_string(in_obj, "Sca");
298 memcpy(&(saveMsg.msgDataPackage.sca[0]), sca, SMS_SMSP_ADDRESS_LEN);
299 saveMsg.msgDataPackage.msgLength = sipc_util_marshal_object_get_int(in_obj, "MsgLength");
300 szData = sipc_util_marshal_object_get_string(in_obj, "szData");
301 memcpy(saveMsg.msgDataPackage.tpduData, szData, SMS_SMDATA_SIZE_MAX + 1);
303 tcore_user_request_set_data(ur, sizeof(struct treq_sms_save_msg), &saveMsg);
304 tcore_user_request_set_command(ur, TREQ_SMS_SAVE_MSG);
306 ret = tcore_communicator_dispatch_request(comm, ur);
307 if (ret != TCORE_RETURN_SUCCESS) {
308 // api_err = TAPI_API_OPERATION_FAILED;
309 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
316 case TAPI_SERVICE_SMS_DELETE_MSG: {
318 deleteMsg.index = sipc_util_marshal_object_get_int(in_obj, "Index");
320 tcore_user_request_set_data(ur, sizeof(struct treq_sms_delete_msg), &deleteMsg);
321 tcore_user_request_set_command(ur, TREQ_SMS_DELETE_MSG);
323 ret = tcore_communicator_dispatch_request(comm, ur);
324 if (ret != TCORE_RETURN_SUCCESS) {
325 // api_err = TAPI_API_OPERATION_FAILED;
326 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
333 case TAPI_SERVICE_SMS_GET_COUNT:
334 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_msg_count), &getMsgCnt);
335 tcore_user_request_set_command(ur, TREQ_SMS_GET_COUNT);
337 ret = tcore_communicator_dispatch_request(comm, ur);
338 if (ret != TCORE_RETURN_SUCCESS) {
339 // api_err = TAPI_API_OPERATION_FAILED;
340 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
346 case TAPI_SERVICE_SMS_GET_SCA: {
348 getSca.index = sipc_util_marshal_object_get_int(in_obj, "Index");
350 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_sca), &getSca);
351 tcore_user_request_set_command(ur, TREQ_SMS_GET_SCA);
353 ret = tcore_communicator_dispatch_request(comm, ur);
354 if (ret != TCORE_RETURN_SUCCESS) {
355 // api_err = TAPI_API_OPERATION_FAILED;
356 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
363 case TAPI_SERVICE_SMS_SET_SCA: {
364 gchar *szDiallingNum;
366 setSca.index = sipc_util_marshal_object_get_int(in_obj, "Index");
367 setSca.scaInfo.dialNumLen = sipc_util_marshal_object_get_int(in_obj, "DialNumLen");
368 setSca.scaInfo.typeOfNum = sipc_util_marshal_object_get_int(in_obj, "Ton");
369 setSca.scaInfo.numPlanId = sipc_util_marshal_object_get_int(in_obj, "Npi");
370 szDiallingNum = sipc_util_marshal_object_get_string(in_obj, "szDiallingNum");
371 memcpy(&(setSca.scaInfo.diallingNum[0]), szDiallingNum, SMS_SMSP_ADDRESS_LEN + 1);
373 if ((setSca.scaInfo.dialNumLen <= 0) || (setSca.scaInfo.dialNumLen > (SMS_MAX_SMS_SERVICE_CENTER_ADDR + 1)))
375 err("[tcore_SMS] TAPI_API_INVALID_INPUT !!!");
378 else if(setSca.index != 0)
380 err("[tcore_SMS] Index except 0 is supported");
381 // api_err = TAPI_API_NOT_SUPPORTED;
386 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_sca), &setSca);
387 tcore_user_request_set_command(ur, TREQ_SMS_SET_SCA);
389 ret = tcore_communicator_dispatch_request(comm, ur);
390 if (ret != TCORE_RETURN_SUCCESS) {
391 //api_err = TAPI_API_OPERATION_FAILED;
392 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
400 case TAPI_SERVICE_SMS_GET_CB_CONFIG:
401 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_cb_config), &getCbConfig);
402 tcore_user_request_set_command(ur, TREQ_SMS_GET_CB_CONFIG);
404 ret = tcore_communicator_dispatch_request(comm, ur);
405 if (ret != TCORE_RETURN_SUCCESS) {
406 //api_err = TAPI_API_OPERATION_FAILED;
407 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
413 case TAPI_SERVICE_SMS_SET_CB_CONFIG: {
416 setCbConfig.bCBEnabled = sipc_util_marshal_object_get_int(in_obj, "bCBEnabled");
417 setCbConfig.selectedId = sipc_util_marshal_object_get_char(in_obj, "SelectedId");
418 setCbConfig.msgIdMaxCount = sipc_util_marshal_object_get_char(in_obj, "MsgIdMaxCount");
419 setCbConfig.msgIdCount = sipc_util_marshal_object_get_int(in_obj, "MsgIdCount");
420 msgIDs = sipc_util_marshal_object_get_string(in_obj, "MsgIDs");
421 memcpy(&(setCbConfig.msgIDs[0]), msgIDs, SMS_GSM_SMS_CBMI_LIST_SIZE_MAX);
423 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_cb_config), &setCbConfig);
424 tcore_user_request_set_command(ur, TREQ_SMS_SET_CB_CONFIG);
426 ret = tcore_communicator_dispatch_request(comm, ur);
427 if (ret != TCORE_RETURN_SUCCESS) {
428 //api_err = TAPI_API_OPERATION_FAILED;
429 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
436 case TAPI_SERVICE_SMS_SET_MEM_STATUS: {
438 memStatus.memory_status = sipc_util_marshal_object_get_int(in_obj, "memoryStatus");
440 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_mem_status), &memStatus);
441 tcore_user_request_set_command(ur, TREQ_SMS_SET_MEM_STATUS);
443 ret = tcore_communicator_dispatch_request(comm, ur);
444 if (ret != TCORE_RETURN_SUCCESS) {
445 //api_err = TAPI_API_OPERATION_FAILED;
446 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
453 case TAPI_SERVICE_SMS_GET_PREF_BEARER:
454 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_pref_bearer), &getPrefBearer);
455 tcore_user_request_set_command(ur, TREQ_SMS_GET_PREF_BEARER);
457 ret = tcore_communicator_dispatch_request(comm, ur);
458 if (ret != TCORE_RETURN_SUCCESS) {
459 //api_err = TAPI_API_OPERATION_FAILED;
460 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
466 case TAPI_SERVICE_SMS_SET_PREF_BEARER: {
468 setPrefBearer.svc = sipc_util_marshal_object_get_int(in_obj, "BearerType");
470 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_pref_bearer), &setPrefBearer);
471 tcore_user_request_set_command(ur, TREQ_SMS_SET_PREF_BEARER);
473 ret = tcore_communicator_dispatch_request(comm, ur);
474 if (ret != TCORE_RETURN_SUCCESS) {
475 //api_err = TAPI_API_OPERATION_FAILED;
476 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
483 case TAPI_SERVICE_SMS_SET_DELIVERY_REPORT: {
487 sca = sipc_util_marshal_object_get_string(in_obj, "Sca");
488 memcpy(&(deliveryReport.dataInfo.sca[0]), sca, SMS_SMSP_ADDRESS_LEN);
489 deliveryReport.dataInfo.msgLength = sipc_util_marshal_object_get_int(in_obj, "MsgLength");
490 szData = sipc_util_marshal_object_get_string(in_obj, "szData");
491 memcpy(&(deliveryReport.dataInfo.tpduData[0]), szData, SMS_SMDATA_SIZE_MAX + 1);
492 deliveryReport.rspType = sipc_util_marshal_object_get_int(in_obj, "RPCause");
494 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_delivery_report), &deliveryReport);
495 tcore_user_request_set_command(ur, TREQ_SMS_SET_DELIVERY_REPORT);
497 ret = tcore_communicator_dispatch_request(comm, ur);
498 if (ret != TCORE_RETURN_SUCCESS) {
499 //api_err = TAPI_API_OPERATION_FAILED;
500 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
507 case TAPI_SERVICE_SMS_SET_MSG_STATUS: {
509 msgStatus.index = sipc_util_marshal_object_get_int(in_obj, "Index");
510 msgStatus.msgStatus = sipc_util_marshal_object_get_int(in_obj, "MsgStatus");
512 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_msg_status), &msgStatus);
513 tcore_user_request_set_command(ur, TREQ_SMS_SET_MSG_STATUS);
515 ret = tcore_communicator_dispatch_request(comm, ur);
516 if (ret != TCORE_RETURN_SUCCESS) {
517 //api_err = TAPI_API_OPERATION_FAILED;
518 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
525 case TAPI_SERVICE_SMS_GET_PARAMS: {
527 getParams.index = sipc_util_marshal_object_get_int(in_obj, "Index");
529 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_params), &getParams);
530 tcore_user_request_set_command(ur, TREQ_SMS_GET_PARAMS);
532 ret = tcore_communicator_dispatch_request(comm, ur);
533 if (ret != TCORE_RETURN_SUCCESS) {
534 //api_err = TAPI_API_OPERATION_FAILED;
535 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
542 case TAPI_SERVICE_SMS_SET_PARAMS: {
544 gchar *destAddr_szDiallingNum;
545 gchar *svcCntrAddr_szDiallingNum;
547 setParams.params.recordIndex = sipc_util_marshal_object_get_char(in_obj, "RecordIndex");
548 setParams.params.recordLen = sipc_util_marshal_object_get_char(in_obj, "RecordLen");
549 setParams.params.alphaIdLen = sipc_util_marshal_object_get_int(in_obj, "AlphaIdLen");
550 szAlphaId = sipc_util_marshal_object_get_string(in_obj, "szAlphaId");
551 memcpy(&(setParams.params.szAlphaId[0]), szAlphaId, SMS_SMSP_ALPHA_ID_LEN_MAX + 1);
552 setParams.params.paramIndicator = sipc_util_marshal_object_get_char(in_obj, "ParamIndicator");
554 setParams.params.tpDestAddr.dialNumLen = sipc_util_marshal_object_get_int(in_obj, "DestAddr.DialNumLen");
555 setParams.params.tpDestAddr.typeOfNum = sipc_util_marshal_object_get_int(in_obj, "DestAddr.Ton");
556 setParams.params.tpDestAddr.numPlanId = sipc_util_marshal_object_get_int(in_obj, "DestAddr.Npi");
557 destAddr_szDiallingNum = sipc_util_marshal_object_get_string(in_obj, "DestAddr.szDiallingNum");
558 memcpy(&(setParams.params.tpDestAddr.diallingNum[0]), destAddr_szDiallingNum, SMS_SMSP_ADDRESS_LEN + 1);
560 setParams.params.tpSvcCntrAddr.dialNumLen = sipc_util_marshal_object_get_int(in_obj, "SvcCntrAddr.DialNumLen");
561 setParams.params.tpSvcCntrAddr.typeOfNum = sipc_util_marshal_object_get_int(in_obj, "SvcCntrAddr.Ton");
562 setParams.params.tpSvcCntrAddr.numPlanId = sipc_util_marshal_object_get_int(in_obj, "SvcCntrAddr.Npi");
563 svcCntrAddr_szDiallingNum = sipc_util_marshal_object_get_string(in_obj, "SvcCntrAddr.szDiallingNum");
564 memcpy(&(setParams.params.tpSvcCntrAddr.diallingNum[0]), svcCntrAddr_szDiallingNum, SMS_SMSP_ADDRESS_LEN + 1);
566 setParams.params.tpProtocolId = sipc_util_marshal_object_get_int(in_obj, "ProtocolId");
567 setParams.params.tpDataCodingScheme = sipc_util_marshal_object_get_int(in_obj, "DataCodingScheme");
568 setParams.params.tpValidityPeriod = sipc_util_marshal_object_get_int(in_obj, "ValidityPeriod");
570 tcore_user_request_set_data(ur, sizeof(struct treq_sms_set_params), &setParams);
571 tcore_user_request_set_command(ur, TREQ_SMS_SET_PARAMS);
573 ret = tcore_communicator_dispatch_request(comm, ur);
574 if (ret != TCORE_RETURN_SUCCESS) {
575 //api_err = TAPI_API_OPERATION_FAILED;
576 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
583 case TAPI_SERVICE_SMS_GET_PARAMCNT:
584 tcore_user_request_set_data(ur, sizeof(struct treq_sms_get_paramcnt), &getParamCnt);
585 tcore_user_request_set_command(ur, TREQ_SMS_GET_PARAMCNT);
587 ret = tcore_communicator_dispatch_request(comm, ur);
588 if (ret != TCORE_RETURN_SUCCESS) {
589 //api_err = TAPI_API_OPERATION_FAILED;
590 err("[tcore_SMS] communicator_dispatch_request is fail [0x%x] !!!", ret);
595 #if 0 // JYGU need to check TAPI_CS_NETTEXT_DEVICEREADY, TAPI_CS_NETTEXT_DEVICESTATUS with MMFW
596 case TAPI_CS_NETTEXT_DEVICEREADY:
597 dbg("[tcore_SMS] internal operation, please check TAPI_CS_NETTEXT_DEVICEREADY with MMFW !!!");
598 api_err = TAPI_API_OPERATION_FAILED;
601 case TAPI_CS_NETTEXT_DEVICESTATUS:
603 int device_status = 0x01;
604 dbg("[tcore_SMS] internal operation, please check TAPI_CS_NETTEXT_DEVICESTATUS with MMFW !!!");
605 // JYGU g_array_append_vals(*out_param3, &device_status, sizeof(int));
610 //api_err = TAPI_API_NOT_SUPPORTED;
611 err("[tcore_SMS] NOT support command [0x%x] !!!", cmd);
616 dbg("[tcore_SMS] request command[0x%x], ret = 0x%x", cmd, ret);
619 sipc_util_marshal_object_destory(in_obj);
620 out_obj = sipc_util_marshal_object_create();
621 sipc_util_marshal_object_add_data(out_obj, "result", &result, SIPC_MARSHAL_DATA_BOOLEAN_TYPE);
623 dbg("result = %d", result);
625 *outparam = sipc_util_marshal_object_serializer(out_obj);
626 sipc_util_marshal_object_destory(out_obj);
628 if (result == FALSE) {
632 ret = tcore_communicator_dispatch_request(comm, ur);
633 if (ret != TCORE_RETURN_SUCCESS) {
640 gboolean scomm_service_response_sms(Communicator *comm, UserRequest *ur, enum tcore_response_command command, unsigned int data_len, const void *data)
644 gboolean result = TRUE; int err_cause = 0;
645 gchar *out_d= NULL, *serial_d = NULL;
646 struct custom_data *ctx = NULL;
647 const struct tcore_user_info *ui;
649 sipc_server_t *s = NULL;
650 struct _tapi_header hdr;
651 struct _sipc_marshal_object* respObj = NULL;
653 memset(&hdr, 0, sizeof(struct _tapi_header));
655 ctx = tcore_communicator_ref_user_data(comm);
657 dbg("user_data is NULL");
661 ui = tcore_user_request_ref_user_info(ur);
664 dbg("[tcore_SMS] application channel id(%d), Command = [0x%x], data_len = %d", ui->channel_id, command, data_len);
665 hdr.cmd = (tapi_service_command_e)ui->client_cmd;
667 respObj = sipc_util_marshal_object_create();
670 case TRESP_SMS_SEND_UMTS_MSG: {
671 const struct tresp_sms_send_umts_msg *resp = data;
673 dbg("resp->result = 0x%x", resp->result);
675 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
676 sipc_util_marshal_object_add_data(respObj, "Sca", (void *)&(resp->dataInfo.sca[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
677 sipc_util_marshal_object_add_data(respObj, "MsgLength", (void *)&(resp->dataInfo.msgLength), SIPC_MARSHAL_DATA_INT_TYPE);
678 sipc_util_marshal_object_add_data(respObj, "szData", (void *)&(resp->dataInfo.tpduData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
682 case TRESP_SMS_SEND_CDMA_MSG: {
683 const struct tresp_sms_send_cdma_msg *resp = data;
685 dbg("resp->result = 0x%x", resp->result);
687 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
688 sipc_util_marshal_object_add_data(respObj, "ReplySeqNumber", (void *)&(resp->causeCode.ReplySeqNumber), SIPC_MARSHAL_DATA_CHAR_TYPE);
689 sipc_util_marshal_object_add_data(respObj, "ErrClass", (void *)&(resp->causeCode.ErrClass), SIPC_MARSHAL_DATA_INT_TYPE);
690 sipc_util_marshal_object_add_data(respObj, "Cause", (void *)&(resp->causeCode.Cause), SIPC_MARSHAL_DATA_CHAR_TYPE);
694 case TRESP_SMS_READ_MSG: {
695 const struct tresp_sms_read_msg *resp = data;
697 dbg("resp->result = 0x%x", resp->result);
699 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
700 sipc_util_marshal_object_add_data(respObj, "Index", (void *)&(resp->dataInfo.simIndex), SIPC_MARSHAL_DATA_INT_TYPE);
701 sipc_util_marshal_object_add_data(respObj, "MsgStatus", (void *)&(resp->dataInfo.msgStatus), SIPC_MARSHAL_DATA_INT_TYPE);
702 sipc_util_marshal_object_add_data(respObj, "Sca", (void *)&(resp->dataInfo.smsData.sca[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
703 sipc_util_marshal_object_add_data(respObj, "MsgLength", (void *)&(resp->dataInfo.smsData.msgLength), SIPC_MARSHAL_DATA_INT_TYPE);
704 sipc_util_marshal_object_add_data(respObj, "szData", (void *)&(resp->dataInfo.smsData.tpduData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
708 case TRESP_SMS_SAVE_MSG: {
709 const struct tresp_sms_save_msg *resp = data;
711 dbg("resp->result = 0x%x", resp->result);
713 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
714 sipc_util_marshal_object_add_data(respObj, "Index", (void *)&(resp->index), SIPC_MARSHAL_DATA_INT_TYPE);
718 case TRESP_SMS_DELETE_MSG: {
719 const struct tresp_sms_delete_msg *resp = data;
721 dbg("resp->result = 0x%x", resp->result);
723 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
724 sipc_util_marshal_object_add_data(respObj, "Index", (void *)&(resp->index), SIPC_MARSHAL_DATA_INT_TYPE);
728 case TRESP_SMS_GET_STORED_MSG_COUNT: {
729 const struct tresp_sms_get_storedMsgCnt *resp = data;
731 dbg("resp->result = 0x%x", resp->result);
733 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
734 sipc_util_marshal_object_add_data(respObj, "TotalCount", (void *)&(resp->storedMsgCnt.totalCount), SIPC_MARSHAL_DATA_INT_TYPE);
735 sipc_util_marshal_object_add_data(respObj, "UsedCount", (void *)&(resp->storedMsgCnt.usedCount), SIPC_MARSHAL_DATA_INT_TYPE);
736 sipc_util_marshal_object_add_data(respObj, "IndexList", (void *)&(resp->storedMsgCnt.indexList[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
740 case TRESP_SMS_GET_SCA: {
741 const struct tresp_sms_get_sca *resp = data;
743 dbg("resp->result = 0x%x", resp->result);
745 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
746 sipc_util_marshal_object_add_data(respObj, "DialNumLen", (void *)&(resp->scaAddress.dialNumLen), SIPC_MARSHAL_DATA_INT_TYPE);
747 sipc_util_marshal_object_add_data(respObj, "Ton", (void *)&(resp->scaAddress.typeOfNum), SIPC_MARSHAL_DATA_INT_TYPE);
748 sipc_util_marshal_object_add_data(respObj, "Npi", (void *)&(resp->scaAddress.numPlanId), SIPC_MARSHAL_DATA_INT_TYPE);
749 sipc_util_marshal_object_add_data(respObj, "szDiallingNum", (void *)&(resp->scaAddress.diallingNum[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
753 case TRESP_SMS_SET_SCA: {
754 const struct tresp_sms_set_sca *resp = data;
756 dbg("resp->result = 0x%x", resp->result);
758 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
762 case TRESP_SMS_GET_CB_CONFIG: {
763 const struct tresp_sms_get_cb_config *resp = data;
765 dbg("resp->result = 0x%x", resp->result);
767 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
768 sipc_util_marshal_object_add_data(respObj, "bCBEnabled", (void *)&(resp->cbConfig.bCBEnabled), SIPC_MARSHAL_DATA_INT_TYPE);
769 sipc_util_marshal_object_add_data(respObj, "SelectedId", (void *)&(resp->cbConfig.selectedId), SIPC_MARSHAL_DATA_CHAR_TYPE);
770 sipc_util_marshal_object_add_data(respObj, "MsgIdMaxCount", (void *)&(resp->cbConfig.msgIdMaxCount), SIPC_MARSHAL_DATA_CHAR_TYPE);
771 sipc_util_marshal_object_add_data(respObj, "MsgIdCount", (void *)&(resp->cbConfig.msgIdCount), SIPC_MARSHAL_DATA_INT_TYPE);
772 sipc_util_marshal_object_add_data(respObj, "MsgIDs", (void *)&(resp->cbConfig.msgIDs[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
776 case TRESP_SMS_SET_CB_CONFIG: {
777 const struct tresp_sms_set_cb_config *resp = data;
779 dbg("resp->result = 0x%x", resp->result);
781 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
785 case TRESP_SMS_SET_MEM_STATUS: {
786 const struct tresp_sms_set_mem_status *resp = data;
788 dbg("resp->result = 0x%x", resp->result);
790 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
793 case TRESP_SMS_GET_PREF_BEARER: {
794 const struct tresp_sms_get_pref_bearer *resp = data;
796 dbg("resp->result = 0x%x", resp->result);
798 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
802 case TRESP_SMS_SET_PREF_BEARER: {
803 const struct tresp_sms_set_pref_bearer *resp = data;
805 dbg("resp->result = 0x%x", resp->result);
807 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
811 case TRESP_SMS_SET_DELIVERY_REPORT: {
812 const struct tresp_sms_set_delivery_report *resp = data;
814 dbg("resp->result = 0x%x", resp->result);
816 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
820 case TRESP_SMS_SET_MSG_STATUS: {
821 const struct tresp_sms_set_mem_status *resp = data;
823 dbg("resp->result = 0x%x", resp->result);
825 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
829 case TRESP_SMS_GET_PARAMS: {
830 const struct tresp_sms_get_params *resp = data;
832 dbg("resp->result = 0x%x", resp->result);
834 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
835 sipc_util_marshal_object_add_data(respObj, "RecordIndex", (void *)&(resp->paramsInfo.recordIndex), SIPC_MARSHAL_DATA_CHAR_TYPE);
836 sipc_util_marshal_object_add_data(respObj, "RecordLen", (void *)&(resp->paramsInfo.recordLen), SIPC_MARSHAL_DATA_CHAR_TYPE);
837 sipc_util_marshal_object_add_data(respObj, "AlphaIdLen", (void *)&(resp->paramsInfo.alphaIdLen), SIPC_MARSHAL_DATA_INT_TYPE);
838 sipc_util_marshal_object_add_data(respObj, "szAlphaId", (void *)&(resp->paramsInfo.szAlphaId), SIPC_MARSHAL_DATA_STRING_TYPE);
839 sipc_util_marshal_object_add_data(respObj, "ParamIndicator", (void *)&(resp->paramsInfo.paramIndicator), SIPC_MARSHAL_DATA_CHAR_TYPE);
841 sipc_util_marshal_object_add_data(respObj, "DestAddr.DialNumLen", (void *)&(resp->paramsInfo.tpDestAddr.dialNumLen), SIPC_MARSHAL_DATA_INT_TYPE);
842 sipc_util_marshal_object_add_data(respObj, "DestAddr.Ton", (void *)&(resp->paramsInfo.tpDestAddr.typeOfNum), SIPC_MARSHAL_DATA_INT_TYPE);
843 sipc_util_marshal_object_add_data(respObj, "DestAddr.Npi", (void *)&(resp->paramsInfo.tpDestAddr.numPlanId), SIPC_MARSHAL_DATA_INT_TYPE);
844 sipc_util_marshal_object_add_data(respObj, "DestAddr.szDiallingNum", (void *)&(resp->paramsInfo.tpDestAddr.diallingNum), SIPC_MARSHAL_DATA_STRING_TYPE);
846 sipc_util_marshal_object_add_data(respObj, "SvcCntrAddr.DialNumLen", (void *)&(resp->paramsInfo.tpSvcCntrAddr.dialNumLen), SIPC_MARSHAL_DATA_INT_TYPE);
847 sipc_util_marshal_object_add_data(respObj, "SvcCntrAddr.Ton", (void *)&(resp->paramsInfo.tpSvcCntrAddr.typeOfNum), SIPC_MARSHAL_DATA_INT_TYPE);
848 sipc_util_marshal_object_add_data(respObj, "SvcCntrAddr.Npi", (void *)&(resp->paramsInfo.tpSvcCntrAddr.numPlanId), SIPC_MARSHAL_DATA_INT_TYPE);
849 sipc_util_marshal_object_add_data(respObj, "SvcCntrAddr.szDiallingNum", (void *)&(resp->paramsInfo.tpSvcCntrAddr.diallingNum), SIPC_MARSHAL_DATA_STRING_TYPE);
851 sipc_util_marshal_object_add_data(respObj, "ProtocolId", (void *)&(resp->paramsInfo.tpProtocolId), SIPC_MARSHAL_DATA_INT_TYPE);
852 sipc_util_marshal_object_add_data(respObj, "DataCodingScheme", (void *)&(resp->paramsInfo.tpDataCodingScheme), SIPC_MARSHAL_DATA_INT_TYPE);
853 sipc_util_marshal_object_add_data(respObj, "ValidityPeriod", (void *)&(resp->paramsInfo.tpValidityPeriod), SIPC_MARSHAL_DATA_INT_TYPE);
857 case TRESP_SMS_SET_PARAMS:{
858 const struct tresp_sms_set_params *resp = data;
860 dbg("resp->result = 0x%x", resp->result);
862 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
866 case TRESP_SMS_GET_PARAMCNT: {
867 const struct tresp_sms_get_paramcnt *resp = data;
869 dbg("resp->result = 0x%x", resp->result);
871 sipc_util_marshal_object_add_data(respObj, "Result", (void *)&(resp->result), SIPC_MARSHAL_DATA_INT_TYPE);
872 sipc_util_marshal_object_add_data(respObj, "RecordCount", (void *)&(resp->recordCount), SIPC_MARSHAL_DATA_INT_TYPE);
881 serial_d = sipc_util_marshal_object_serializer(respObj);
882 hdr.data_len = strlen(serial_d);
883 sipc_util_marshal_object_destory(respObj);
886 out_d = g_new0(char, sizeof(struct _tapi_header)+hdr.data_len);
887 memcpy(out_d, &hdr, sizeof(struct _tapi_header));
889 memcpy(out_d+sizeof(struct _tapi_header), serial_d, hdr.data_len);
893 ret = sipc_server_send(s, ui->channel_id, out_d, sizeof(struct _tapi_header)+hdr.data_len, SIPC_SEND_DATA_ASYNC);
903 gboolean scomm_service_notification_sms(Communicator *comm, CoreObject *source, enum tcore_notification_command command, unsigned int data_len, const void *data)
906 gboolean result = TRUE; int err_cause = 0;
907 gchar *out_d= NULL, *serial_d = NULL;
909 struct custom_data *ctx = NULL;
911 struct _tapi_header hdr;
912 struct _sipc_marshal_object* notiObj = NULL;
914 memset(&hdr, 0, sizeof(struct _tapi_header));
916 ctx = tcore_communicator_ref_user_data(comm);
918 dbg("user_data is NULL");
922 dbg("[tcore_SMS]notification !!! (command = 0x%x, data_len = %d)", command, data_len);
924 notiObj = sipc_util_marshal_object_create();
927 case TNOTI_SMS_INCOM_MSG: {
928 const struct tnoti_sms_umts_msg *noti = data;
929 hdr.cmd = TAPI_NOTI_SMS_INCOM_MSG;
931 sipc_util_marshal_object_add_data(notiObj, "Sca", (void *)&(noti->msgInfo.sca[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
932 sipc_util_marshal_object_add_data(notiObj, "MsgLength", (void *)&(noti->msgInfo.msgLength), SIPC_MARSHAL_DATA_INT_TYPE);
933 sipc_util_marshal_object_add_data(notiObj, "szData", (void *)&(noti->msgInfo.tpduData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
937 case TNOTI_SMS_CB_INCOM_MSG: {
938 const struct tnoti_sms_cellBroadcast_msg *noti = data;
939 hdr.cmd = TAPI_NOTI_SMS_CB_INCOM_MSG;
941 sipc_util_marshal_object_add_data(notiObj, "CbMsgType", (void *)&(noti->cbMsg.cbMsgType), SIPC_MARSHAL_DATA_INT_TYPE);
942 sipc_util_marshal_object_add_data(notiObj, "Length", (void *)&(noti->cbMsg.length), SIPC_MARSHAL_DATA_INT_TYPE);
943 sipc_util_marshal_object_add_data(notiObj, "szMsgData", (void *)&(noti->cbMsg.msgData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
947 case TNOTI_SMS_INCOM_EX_MSG: {
948 const struct tnoti_sms_cdma_msg *noti = data;
949 hdr.cmd = TAPI_NOTI_SMS_INCOM_EX_MSG;
951 sipc_util_marshal_object_add_data(notiObj, "ParamMask", (void *)&(noti->cdmaMsg.ParamMask), SIPC_MARSHAL_DATA_INT_TYPE);
952 sipc_util_marshal_object_add_data(notiObj, "MsgType", (void *)&(noti->cdmaMsg.MsgType), SIPC_MARSHAL_DATA_INT_TYPE);
954 switch(noti->cdmaMsg.MsgType)
956 case SMS_MESSAGETYPE_DELIVER:
957 /* Origination address */
958 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.Digit", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.Digit), SIPC_MARSHAL_DATA_INT_TYPE);
959 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberMode", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.NumberMode), SIPC_MARSHAL_DATA_INT_TYPE);
960 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberType", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.NumberType), SIPC_MARSHAL_DATA_INT_TYPE);
961 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberPlan", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.NumberPlan), SIPC_MARSHAL_DATA_INT_TYPE);
962 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
963 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigAddr.szAddress[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
965 /* Origination subaddress */
966 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.SubType", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigSubAddr.SubType), SIPC_MARSHAL_DATA_INT_TYPE);
967 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.Odd", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigSubAddr.Odd), SIPC_MARSHAL_DATA_CHAR_TYPE);
968 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigSubAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
969 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inDeliver.OrigSubAddr.szAddress[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
971 sipc_util_marshal_object_add_data(notiObj, "TeleService", (void *)&(noti->cdmaMsg.MsgData.inDeliver.TeleService), SIPC_MARSHAL_DATA_INT_TYPE);
972 sipc_util_marshal_object_add_data(notiObj, "bBearerReplySeqRequest", (void *)&(noti->cdmaMsg.MsgData.inDeliver.bBearerReplySeqRequest), SIPC_MARSHAL_DATA_INT_TYPE);
973 sipc_util_marshal_object_add_data(notiObj, "ReplySeqNumber", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ReplySeqNumber), SIPC_MARSHAL_DATA_CHAR_TYPE);
974 sipc_util_marshal_object_add_data(notiObj, "MsgId", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MsgId), SIPC_MARSHAL_DATA_INT_TYPE);
975 sipc_util_marshal_object_add_data(notiObj, "MsgEncoding", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MsgEncoding), SIPC_MARSHAL_DATA_INT_TYPE);
976 sipc_util_marshal_object_add_data(notiObj, "MsgLength", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MsgLength), SIPC_MARSHAL_DATA_INT_TYPE);
977 sipc_util_marshal_object_add_data(notiObj, "szData", (void *)&(noti->cdmaMsg.MsgData.inDeliver.szData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
979 /* Message center time stamp */
980 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.year", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.year), SIPC_MARSHAL_DATA_INT_TYPE);
981 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.month", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.month), SIPC_MARSHAL_DATA_INT_TYPE);
982 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.day", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.day), SIPC_MARSHAL_DATA_INT_TYPE);
983 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.hours", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.hours), SIPC_MARSHAL_DATA_INT_TYPE);
984 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.minutes", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
985 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.seconds", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MessageCenterTimeStamp.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
987 /* Validity period - Absolute */
988 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.year", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.year), SIPC_MARSHAL_DATA_INT_TYPE);
989 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.month", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.month), SIPC_MARSHAL_DATA_INT_TYPE);
990 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.day", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.day), SIPC_MARSHAL_DATA_INT_TYPE);
991 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.hours", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.hours), SIPC_MARSHAL_DATA_INT_TYPE);
992 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.minutes", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
993 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.seconds", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodAbs.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
995 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodRel", (void *)&(noti->cdmaMsg.MsgData.inDeliver.ValidityPeriodRel), SIPC_MARSHAL_DATA_CHAR_TYPE);
997 /* Deferred delivery time - Absolute (not supported) */
998 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.year", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.year), SIPC_MARSHAL_DATA_INT_TYPE);
999 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.month", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.month), SIPC_MARSHAL_DATA_INT_TYPE);
1000 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.day", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.day), SIPC_MARSHAL_DATA_INT_TYPE);
1001 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.hours", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.hours), SIPC_MARSHAL_DATA_INT_TYPE);
1002 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.minutes", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
1003 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeAbs.seconds", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeAbs.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
1005 /* Deferred delivery time - Relative (not supported) */
1006 sipc_util_marshal_object_add_data(notiObj, "DeferredDelTimeRel", (void *)&(noti->cdmaMsg.MsgData.inDeliver.DeferredDelTimeRel), SIPC_MARSHAL_DATA_CHAR_TYPE);
1008 sipc_util_marshal_object_add_data(notiObj, "Priority", (void *)&(noti->cdmaMsg.MsgData.inDeliver.Priority), SIPC_MARSHAL_DATA_INT_TYPE);
1009 sipc_util_marshal_object_add_data(notiObj, "Privacy", (void *)&(noti->cdmaMsg.MsgData.inDeliver.Privacy), SIPC_MARSHAL_DATA_INT_TYPE);
1010 sipc_util_marshal_object_add_data(notiObj, "NumMsg", (void *)&(noti->cdmaMsg.MsgData.inDeliver.NumMsg), SIPC_MARSHAL_DATA_CHAR_TYPE);
1011 sipc_util_marshal_object_add_data(notiObj, "bUserAckRequest", (void *)&(noti->cdmaMsg.MsgData.inDeliver.bUserAckRequest), SIPC_MARSHAL_DATA_INT_TYPE);
1012 sipc_util_marshal_object_add_data(notiObj, "bDeliveryAckRequest", (void *)&(noti->cdmaMsg.MsgData.inDeliver.bDeliveryAckRequest), SIPC_MARSHAL_DATA_INT_TYPE);
1013 sipc_util_marshal_object_add_data(notiObj, "AlertPriority", (void *)&(noti->cdmaMsg.MsgData.inDeliver.AlertPriority), SIPC_MARSHAL_DATA_INT_TYPE);
1014 sipc_util_marshal_object_add_data(notiObj, "MsgLang", (void *)&(noti->cdmaMsg.MsgData.inDeliver.MsgLang), SIPC_MARSHAL_DATA_INT_TYPE);
1016 /* Callback number address */
1017 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.Digit", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.Digit), SIPC_MARSHAL_DATA_INT_TYPE);
1018 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.NumberMode", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.NumberMode), SIPC_MARSHAL_DATA_INT_TYPE);
1019 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.NumberType", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.NumberType), SIPC_MARSHAL_DATA_INT_TYPE);
1020 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.NumberPlan", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.NumberPlan), SIPC_MARSHAL_DATA_INT_TYPE);
1021 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
1022 sipc_util_marshal_object_add_data(notiObj, "CallBackNumer.szAddress", (void *)&(noti->cdmaMsg.MsgData.inDeliver.CallBackNumer.szAddress[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1024 sipc_util_marshal_object_add_data(notiObj, "Display", (void *)&(noti->cdmaMsg.MsgData.inDeliver.Display), SIPC_MARSHAL_DATA_INT_TYPE);
1028 case SMS_MESSAGETYPE_DELIVERY_ACK:
1029 /* Origination address */
1030 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.Digit", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.Digit), SIPC_MARSHAL_DATA_INT_TYPE);
1031 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberMode", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.NumberMode), SIPC_MARSHAL_DATA_INT_TYPE);
1032 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberType", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.NumberType), SIPC_MARSHAL_DATA_INT_TYPE);
1033 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberPlan", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.NumberPlan), SIPC_MARSHAL_DATA_INT_TYPE);
1034 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
1035 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigAddr.szAddress[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1037 /* Origination subaddress */
1038 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.SubType", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigSubAddr.SubType), SIPC_MARSHAL_DATA_INT_TYPE);
1039 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.Odd", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigSubAddr.Odd), SIPC_MARSHAL_DATA_CHAR_TYPE);
1040 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigSubAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
1041 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inAck.OrigSubAddr.szAddress), SIPC_MARSHAL_DATA_CHAR_TYPE);
1043 sipc_util_marshal_object_add_data(notiObj, "TeleService", (void *)&(noti->cdmaMsg.MsgData.inAck.TeleService), SIPC_MARSHAL_DATA_INT_TYPE);
1044 sipc_util_marshal_object_add_data(notiObj, "bBearerReplySeqRequest", (void *)&(noti->cdmaMsg.MsgData.inAck.bBearerReplySeqRequest), SIPC_MARSHAL_DATA_INT_TYPE);
1045 sipc_util_marshal_object_add_data(notiObj, "ReplySeqNumber", (void *)&(noti->cdmaMsg.MsgData.inAck.ReplySeqNumber), SIPC_MARSHAL_DATA_CHAR_TYPE);
1046 sipc_util_marshal_object_add_data(notiObj, "MsgId", (void *)&(noti->cdmaMsg.MsgData.inAck.MsgId), SIPC_MARSHAL_DATA_INT_TYPE);
1047 sipc_util_marshal_object_add_data(notiObj, "MsgEncoding", (void *)&(noti->cdmaMsg.MsgData.inAck.MsgEncoding), SIPC_MARSHAL_DATA_INT_TYPE);
1048 sipc_util_marshal_object_add_data(notiObj, "MsgLength", (void *)&(noti->cdmaMsg.MsgData.inAck.MsgLength), SIPC_MARSHAL_DATA_INT_TYPE);
1049 sipc_util_marshal_object_add_data(notiObj, "szData", (void *)&(noti->cdmaMsg.MsgData.inAck.szData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1051 sipc_util_marshal_object_add_data(notiObj, "UserResponseCode", (void *)&(noti->cdmaMsg.MsgData.inAck.UserResponseCode), SIPC_MARSHAL_DATA_CHAR_TYPE);
1053 /* Message center time stamp */
1054 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.year", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.year), SIPC_MARSHAL_DATA_INT_TYPE);
1055 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.month", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.month), SIPC_MARSHAL_DATA_INT_TYPE);
1056 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.day", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.day), SIPC_MARSHAL_DATA_INT_TYPE);
1057 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.hours", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.hours), SIPC_MARSHAL_DATA_INT_TYPE);
1058 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.minutes", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
1059 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.seconds", (void *)&(noti->cdmaMsg.MsgData.inAck.MessageCenterTimeStamp.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
1063 case SMS_MESSAGETYPE_USER_ACK:
1064 /* Origination address */
1065 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.Digit", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.Digit), SIPC_MARSHAL_DATA_INT_TYPE);
1066 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberMode", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.NumberMode), SIPC_MARSHAL_DATA_INT_TYPE);
1067 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberType", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.NumberType), SIPC_MARSHAL_DATA_INT_TYPE);
1068 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.NumberPlan", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.NumberPlan), SIPC_MARSHAL_DATA_INT_TYPE);
1069 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
1070 sipc_util_marshal_object_add_data(notiObj, "OrigAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigAddr.szAddress[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1072 /* Origination subaddress */
1073 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.SubType", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigSubAddr.SubType), SIPC_MARSHAL_DATA_INT_TYPE);
1074 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.Odd", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigSubAddr.Odd), SIPC_MARSHAL_DATA_CHAR_TYPE);
1075 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddrLength", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigSubAddr.szAddrLength), SIPC_MARSHAL_DATA_CHAR_TYPE);
1076 sipc_util_marshal_object_add_data(notiObj, "OrigSubAddr.szAddress", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.OrigSubAddr.szAddress), SIPC_MARSHAL_DATA_CHAR_TYPE);
1078 sipc_util_marshal_object_add_data(notiObj, "TeleService", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.TeleService), SIPC_MARSHAL_DATA_INT_TYPE);
1079 sipc_util_marshal_object_add_data(notiObj, "bBearerReplySeqRequest", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.bBearerReplySeqRequest), SIPC_MARSHAL_DATA_INT_TYPE);
1080 sipc_util_marshal_object_add_data(notiObj, "ReplySeqNumber", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.ReplySeqNumber), SIPC_MARSHAL_DATA_CHAR_TYPE);
1081 sipc_util_marshal_object_add_data(notiObj, "MsgId", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MsgId), SIPC_MARSHAL_DATA_INT_TYPE);
1082 sipc_util_marshal_object_add_data(notiObj, "MsgEncoding", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MsgEncoding), SIPC_MARSHAL_DATA_INT_TYPE);
1083 sipc_util_marshal_object_add_data(notiObj, "MsgLength", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MsgLength), SIPC_MARSHAL_DATA_INT_TYPE);
1084 sipc_util_marshal_object_add_data(notiObj, "szData", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.szData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1086 /* Message center time stamp */
1087 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.year", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.year), SIPC_MARSHAL_DATA_INT_TYPE);
1088 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.month", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.month), SIPC_MARSHAL_DATA_INT_TYPE);
1089 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.day", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.day), SIPC_MARSHAL_DATA_INT_TYPE);
1090 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.hours", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.hours), SIPC_MARSHAL_DATA_INT_TYPE);
1091 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.minutes", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
1092 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.seconds", (void *)&(noti->cdmaMsg.MsgData.inDeliverAck.MessageCenterTimeStamp.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
1101 case TNOTI_SMS_CB_INCOM_EX_MSG: {
1102 const struct tnoti_sms_cdma_msg *noti = data;
1103 hdr.cmd = TAPI_NOTI_SMS_CB_INCOM_EX_MSG;
1105 sipc_util_marshal_object_add_data(notiObj, "ServiceCategory", (void *)&(noti->cdmaMsg.MsgData.inBc.ServiceCategory), SIPC_MARSHAL_DATA_INT_TYPE);
1107 sipc_util_marshal_object_add_data(notiObj, "MsgId", (void *)&(noti->cdmaMsg.MsgData.inBc.MsgId), SIPC_MARSHAL_DATA_INT_TYPE);
1108 sipc_util_marshal_object_add_data(notiObj, "bBearerReplySeqRequest", (void *)&(noti->cdmaMsg.MsgData.inBc.bBearerReplySeqRequest), SIPC_MARSHAL_DATA_INT_TYPE);
1109 sipc_util_marshal_object_add_data(notiObj, "ReplySeqNumber", (void *)&(noti->cdmaMsg.MsgData.inBc.ReplySeqNumber), SIPC_MARSHAL_DATA_CHAR_TYPE);
1110 sipc_util_marshal_object_add_data(notiObj, "MsgEncoding", (void *)&(noti->cdmaMsg.MsgData.inBc.MsgEncoding), SIPC_MARSHAL_DATA_INT_TYPE);
1111 sipc_util_marshal_object_add_data(notiObj, "MsgLength", (void *)&(noti->cdmaMsg.MsgData.inBc.MsgLength), SIPC_MARSHAL_DATA_INT_TYPE);
1112 sipc_util_marshal_object_add_data(notiObj, "szData", (void *)&(noti->cdmaMsg.MsgData.inBc.szData[0]), SIPC_MARSHAL_DATA_STRING_TYPE);
1114 /* Message center time stamp */
1115 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.year", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.year), SIPC_MARSHAL_DATA_INT_TYPE);
1116 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.month", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.month), SIPC_MARSHAL_DATA_INT_TYPE);
1117 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.day", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.day), SIPC_MARSHAL_DATA_INT_TYPE);
1118 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.hours", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.hours), SIPC_MARSHAL_DATA_INT_TYPE);
1119 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.minutes", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
1120 sipc_util_marshal_object_add_data(notiObj, "MessageCenterTimeStamp.seconds", (void *)&(noti->cdmaMsg.MsgData.inBc.MessageCenterTimeStamp.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
1122 /* Validity period - Absolute */
1123 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.year", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.year), SIPC_MARSHAL_DATA_INT_TYPE);
1124 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.month", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.month), SIPC_MARSHAL_DATA_INT_TYPE);
1125 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.day", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.day), SIPC_MARSHAL_DATA_INT_TYPE);
1126 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.hours", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.hours), SIPC_MARSHAL_DATA_INT_TYPE);
1127 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.minutes", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.minutes), SIPC_MARSHAL_DATA_INT_TYPE);
1128 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodAbs.seconds", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodAbs.seconds), SIPC_MARSHAL_DATA_INT_TYPE);
1130 sipc_util_marshal_object_add_data(notiObj, "ValidityPeriodRel", (void *)&(noti->cdmaMsg.MsgData.inBc.ValidityPeriodRel), SIPC_MARSHAL_DATA_CHAR_TYPE);
1132 sipc_util_marshal_object_add_data(notiObj, "Priority", (void *)&(noti->cdmaMsg.MsgData.inBc.Priority), SIPC_MARSHAL_DATA_INT_TYPE);
1133 sipc_util_marshal_object_add_data(notiObj, "AlertPriority", (void *)&(noti->cdmaMsg.MsgData.inBc.AlertPriority), SIPC_MARSHAL_DATA_INT_TYPE);
1134 sipc_util_marshal_object_add_data(notiObj, "MsgLang", (void *)&(noti->cdmaMsg.MsgData.inBc.MsgLang), SIPC_MARSHAL_DATA_INT_TYPE);
1135 sipc_util_marshal_object_add_data(notiObj, "Display", (void *)&(noti->cdmaMsg.MsgData.inBc.Display), SIPC_MARSHAL_DATA_INT_TYPE);
1140 case TNOTI_SMS_MEMORY_STATUS: {
1141 const struct tnoti_sms_memory_status *noti = data;
1142 hdr.cmd = TAPI_NOTI_SMS_MEMORY_STATUS;
1144 sipc_util_marshal_object_add_data(notiObj, "MemStatus", (void *)&(noti->status), SIPC_MARSHAL_DATA_INT_TYPE);
1148 case TNOTI_SMS_DEVICE_READY: {
1149 const struct tnoti_sms_device_ready_status *noti = data;
1150 hdr.cmd = TAPI_NOTI_SMS_DEVICE_READY;
1152 sipc_util_marshal_object_add_data(notiObj, "DeviceStatus", &(noti->status), SIPC_MARSHAL_DATA_INT_TYPE);
1157 dbg("unknown notification");
1163 serial_d = sipc_util_marshal_object_serializer(notiObj);
1164 hdr.data_len = strlen(serial_d);
1165 sipc_util_marshal_object_destory(notiObj);
1168 out_d = g_new0(char, sizeof(struct _tapi_header)+hdr.data_len);
1169 memcpy(out_d, &hdr, sizeof(struct _tapi_header));
1171 memcpy(out_d + sizeof(struct _tapi_header), serial_d, hdr.data_len);
1175 dbg("len = %d, data_len = %d, cmd = 0x%x", sizeof(struct _tapi_header) + hdr.data_len, hdr.data_len);
1177 ret = sipc_server_broadcast(ctx->sk_server, out_d, sizeof(struct _tapi_header) + hdr.data_len);
1178 dbg("ret = %d", ret);