usedCnt = 0;
totalCnt = 0;
bTapiResult = false;
- bClass2Msg = false;
+ memset(&simMsgDataInfo, 0x00, sizeof(simMsgDataInfo));
}
if (submitData.segCount > 1)
tpdu.data.deliver.bHeaderInd = true;
- int bufLen = 0, reqId = 0;
+ int bufLen = 0;
char buf[MAX_TPDU_DATA_LEN];
simSmsData.SmsData.szData[bufLen] = 0;
simSmsData.SmsData.MsgLength = bufLen;
+#ifdef MSG_FOR_DEBUG
+ MSG_DEBUG("Sim Message.");
+ for (int j = 0; j < simSmsData.SmsData.MsgLength; j++)
+ {
+ MSG_DEBUG("[%02x]", simSmsData.SmsData.szData[j]);
+ }
+#endif
+
MSG_DEBUG("Read Status [%d]", pMsgInfo->bRead);
if (pMsgInfo->bRead == true)
if (ret == TAPI_API_SUCCESS)
{
- MSG_DEBUG("######## tel_write_sms_in_sim Success !!! req Id : [%d] #######", reqId);
+ MSG_DEBUG("######## tel_write_sms_in_sim Success !!!#######");
}
else
{
- MSG_DEBUG("######## tel_write_sms_in_sim Fail !!! req Id : [%d] return : [%d] #######", reqId, ret);
+ MSG_DEBUG("######## tel_write_sms_in_sim Fail !!! return : [%d] #######", ret);
return MSG_ERR_PLUGIN_STORAGE;
}
if (bResult == true)
{
- MSG_DEBUG("######## Saving Msg was Successful !!! req Id : [%d] SIM ID : [%d] #######", reqId, SimId);
+ MSG_DEBUG("######## Saving Msg was Successful !!! SIM ID : [%d] #######", SimId);
usedCnt = MsgSettingGetInt(SIM_USED_COUNT);
}
else
{
- MSG_DEBUG("######## Saving Msg was Failed !!! req Id : [%d] SIM ID : [%d] #######", reqId, SimId);
+ MSG_DEBUG("######## Saving Msg was Failed !!! SIM ID : [%d] #######", SimId);
return MSG_ERR_PLUGIN_STORAGE;
}
msg_error_t SmsPluginSimMsg::saveClass2Message(const MSG_MESSAGE_INFO_S *pMsgInfo)
{
// Reset Flag
- bClass2Msg = false;
-
SMS_TPDU_S tpdu;
tpdu.tpduType = SMS_TPDU_DELIVER;
// Set SMS TPDU Options
setSmsOptions(&(tpdu.data.deliver));
- // Set TimeStamp
- convertTimeStamp(pMsgInfo, &(tpdu.data.deliver));
-
- // Set SMSC Options
- SMS_ADDRESS_S smsc;
- SmsPluginTransport::instance()->setSmscOptions(&smsc);
-
- // Make SMS_SUBMIT_DATA_S from MSG_REQUEST_INFO_S
+ // Make SMS_SUBMIT_DATA_S from MSG_REQUEST_INFO_S to get segment count
SMS_SUBMIT_DATA_S submitData;
SmsPluginTransport::instance()->msgInfoToSubmitData(pMsgInfo, &submitData, &(tpdu.data.deliver.dcs.codingScheme), 0);
{
MSG_DEBUG("SIM storage is full.");
+ SmsPluginTransport::instance()->sendDeliverReport(MSG_ERR_SIM_STORAGE_FULL);
+
return MSG_ERR_SIM_STORAGE_FULL;
}
- tpdu.data.deliver.userData.headerCnt = 0;
-
- int bufLen = 0, reqId = 0;
-
- char buf[MAX_TPDU_DATA_LEN];
-
- int addrLen = strlen(submitData.destAddress.address);
-
- tpdu.data.deliver.originAddress.ton = submitData.destAddress.ton;
- tpdu.data.deliver.originAddress.npi = submitData.destAddress.npi;
-
- memcpy(tpdu.data.deliver.originAddress.address, submitData.destAddress.address, addrLen);
- tpdu.data.deliver.originAddress.address[addrLen] = '\0';
+ // Create TelSmsData_t data
+ TelSmsData_t simSmsData = {0,};
- tpdu.data.deliver.userData.length = submitData.userData[0].length;
- memcpy(tpdu.data.deliver.userData.data, submitData.userData[0].data, submitData.userData[0].length);
-
- memset(buf, 0x00, sizeof(buf));
-
- // Encode SMS-DELIVER TPDU
- bufLen = SmsPluginTpduCodec::encodeTpdu(&tpdu, buf);
-
- // Make Telephony Structure
- TelSmsData_t simSmsData;
- memset((void*)&simSmsData, 0x00, sizeof(simSmsData));
-
- // Set TPDU data
- memcpy((void*)simSmsData.SmsData.szData, buf, bufLen);
-
- simSmsData.SmsData.szData[bufLen] = 0;
- simSmsData.SmsData.MsgLength = bufLen;
+ memcpy(&simSmsData.SmsData.Sca, &simMsgDataInfo.sca, sizeof(simSmsData.SmsData.Sca));
+ memcpy(&simSmsData.SmsData.szData, &simMsgDataInfo.szData, sizeof(simSmsData.SmsData.szData)-1);
+ simSmsData.SmsData.MsgLength = simMsgDataInfo.msgLength;
+ // Set message status
simSmsData.MsgStatus = TAPI_NETTEXT_STATUS_UNREAD;
// Save Class 2 Msg in SIM
int tapiRet = TAPI_API_SUCCESS;
- tapiRet = tel_write_sms_in_sim(pTapiHandle, &simSmsData, TapiEventSaveSimMsg, NULL);
+ tapiRet = tel_write_sms_in_sim(pTapiHandle, &simSmsData, TapiEventSaveClass2Msg, NULL);
if (tapiRet == TAPI_API_SUCCESS)
{
- MSG_DEBUG("######## tel_write_sms_in_sim Success !!! req Id : [%d] #######", reqId);
-
- // Set Flag
- bClass2Msg = true;
-
memset(&simMsgInfo, 0x00, sizeof(MSG_MESSAGE_INFO_S));
memcpy(&simMsgInfo, pMsgInfo, sizeof(MSG_MESSAGE_INFO_S));
- usedCnt = MsgSettingGetInt(SIM_USED_COUNT);
-
- usedCnt++;
-
- if (MsgSettingSetInt(SIM_USED_COUNT, usedCnt) != MSG_SUCCESS)
- {
- MSG_DEBUG("Error to set config data [%s]", SIM_USED_COUNT);
- }
+ MSG_DEBUG("######## tel_write_sms_in_sim Success !!! #######");
}
else
{
- MSG_DEBUG("######## tel_write_sms_in_sim Fail !!! req Id : [%d] return : [%d] #######", reqId, tapiRet);
+ MSG_DEBUG("######## tel_write_sms_in_sim Fail !!! return : [%d] #######", tapiRet);
SmsPluginTransport::instance()->sendDeliverReport(MSG_ERR_STORAGE_ERROR);
void SmsPluginSimMsg::deleteSimMessage(msg_sim_id_t SimMsgId)
{
int tapiRet = TAPI_API_SUCCESS;
- int reqId = 0;
tapiRet = tel_delete_sms_in_sim(pTapiHandle, (int)SimMsgId, TapiEventDeleteSimMsg, NULL);
if (tapiRet == TAPI_API_SUCCESS)
{
- MSG_DEBUG("######## tel_delete_sms_in_sim Success !!! req Id : [%d] #######", reqId);
+ MSG_DEBUG("######## tel_delete_sms_in_sim Success !!! #######");
}
else
{
- THROW(MsgException::SMS_PLG_ERROR, "######## tel_delete_sms_in_sim Fail !!! req Id : [%d] return : [%d] #######", reqId, tapiRet);
+ THROW(MsgException::SMS_PLG_ERROR, "######## tel_delete_sms_in_sim Fail !!! return : [%d] #######", tapiRet);
}
msg_sim_id_t SimId = 0;
if (bResult == true)
{
- MSG_DEBUG("######## Deleting Msg was Successful !!! req Id : [%d] SIM ID : [%d] #######", reqId, SimId);
+ MSG_DEBUG("######## Deleting Msg was Successful !!! SIM ID : [%d] #######", SimId);
usedCnt = MsgSettingGetInt(SIM_USED_COUNT);
totalCnt = MsgSettingGetInt(SIM_TOTAL_COUNT);
if (tapiRet == TAPI_API_SUCCESS)
{
- MSG_DEBUG("######## tel_set_sms_memory_status() Success !!! req Id : [%d] #######", reqId);
+ MSG_DEBUG("######## tel_set_sms_memory_status() Success !!! #######");
}
else
{
- MSG_DEBUG("######## tel_set_sms_memory_status() Success !!! req Id : [%d] return : [%d] #######", reqId, tapiRet);
+ MSG_DEBUG("######## tel_set_sms_memory_status() Success !!! return : [%d] #######", tapiRet);
}
}
}
else
{
- THROW(MsgException::SMS_PLG_ERROR, "######## Deleting Msg was Failed !!! req Id : [%d] SIM ID : [%d] #######", reqId, SimId);
+ THROW(MsgException::SMS_PLG_ERROR, "######## Deleting Msg was Failed !!! SIM ID : [%d] #######", SimId);
}
}
return true;
}
-
void SmsPluginSimMsg::setSimMsgEvent(const MSG_MESSAGE_INFO_S *pMsgInfo, bool bSuccess)
{
mx.lock();
}
-void SmsPluginSimMsg::setSimEvent(msg_sim_id_t SimId, bool bResult)
+void SmsPluginSimMsg::setSaveSimMsgEvent(int simMsgId, int result)
{
- if (bClass2Msg == true)
- {
- msg_error_t err = MSG_SUCCESS;
+ msg_error_t err = MSG_SUCCESS;
- simMsgInfo.msgId = SimId;
+ mx.lock();
- // Add Deliver Class2 Msg into DB
- err = SmsPluginStorage::instance()->addSmsMessage(&simMsgInfo);
+ if (result != TAPI_NETTEXT_SENDSMS_SUCCESS) {
+ if (result == TAPI_NETTEXT_ROUTING_NOT_AVAILABLE)
+ err = MSG_ERR_SIM_STORAGE_FULL;
+ else
+ err = MSG_ERR_UNKNOWN;
+ }
+
+ if (err == MSG_SUCCESS)
+ bTapiResult = true;
+ else
+ bTapiResult = false;
+
+ cv.signal();
+
+ mx.unlock();
+
+ // Send Deliver Report
+ SmsPluginTransport::instance()->sendDeliverReport(err);
+
+}
+
+
+void SmsPluginSimMsg::setSaveClass2MsgEvent(int simMsgId, int result)
+{
+ msg_error_t err = MSG_SUCCESS;
+
+ if (result == TAPI_NETTEXT_SENDSMS_SUCCESS && simMsgId >= 0) {
+
+ simMsgInfo.msgId = simMsgId;
+
+ err = SmsPluginStorage::instance()->addSimMessage(&simMsgInfo);
if (err == MSG_SUCCESS)
{
- MSG_DEBUG("addMessage() Success !!");
+ MSG_DEBUG("addSimMessage() Success !!");
// Callback
err = SmsPluginEventHandler::instance()->callbackMsgIncoming(&simMsgInfo);
{
MSG_DEBUG("callbackMsgIncoming() Error !! [%d]", err);
}
- }
- else
- {
+
+ usedCnt = MsgSettingGetInt(SIM_USED_COUNT);
+
+ usedCnt++;
+
+ if (MsgSettingSetInt(SIM_USED_COUNT, usedCnt) != MSG_SUCCESS)
+ {
+ MSG_DEBUG("Error to set config data [%s]", SIM_USED_COUNT);
+ }
+ } else {
MSG_DEBUG("addMessage() Error !! [%d]", err);
}
+ } else {
+ if (result == TAPI_NETTEXT_ROUTING_NOT_AVAILABLE)
+ err = MSG_ERR_SIM_STORAGE_FULL;
+ else
+ err = MSG_ERR_UNKNOWN;
+ }
- // Send Deliver Report
- SmsPluginTransport::instance()->sendDeliverReport(err);
+ // Send Deliver Report
+ SmsPluginTransport::instance()->sendDeliverReport(err);
+}
- bClass2Msg = false;
- }
- else
- {
- mx.lock();
- simMsgId = SimId;
- bTapiResult = bResult;
+void SmsPluginSimMsg::setSimEvent(msg_sim_id_t SimId, bool bResult)
+{
+ mx.lock();
- cv.signal();
+ simMsgId = SimId;
+ bTapiResult = bResult;
- mx.unlock();
- }
+ cv.signal();
+
+ mx.unlock();
}
return bTapiResult;
}
+
+void SmsPluginSimMsg::setSmsData(const char *sca, const char *szData, int msgLength)
+{
+ MSG_DEBUG("Set SMS data(class2 message)");
+
+ memset(&simMsgDataInfo, 0x00, sizeof(simMsgDataInfo));
+
+ memcpy(&simMsgDataInfo.sca, sca, sizeof(simMsgDataInfo.sca)-1);
+ memcpy(&simMsgDataInfo.szData, szData, sizeof(simMsgDataInfo.szData)-1);
+ simMsgDataInfo.msgLength = msgLength;
+}