1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
15 |
15 |
16 /** |
16 /** |
17 @file |
17 @file |
18 */ |
18 */ |
19 |
19 |
|
20 |
|
21 |
|
22 #include "OstTraceDefinitions.h" |
|
23 #ifdef OST_TRACE_COMPILER_IN_USE |
|
24 #include "csimsmsmessTraces.h" |
|
25 #endif |
|
26 |
20 #include "csimsmsmess.h" |
27 #include "csimsmsmess.h" |
21 #include <testconfigfileparser.h> |
28 #include <testconfigfileparser.h> |
22 #include "Simlog.h" |
|
23 #include <etelmm.h> |
29 #include <etelmm.h> |
24 #include "CSimTsyMode.h" |
30 #include "CSimTsyMode.h" |
25 |
31 |
26 //macro |
32 //macro |
27 #define UNPACK_PCKG(target,source,datatype) datatype& target= (*(TPckg<datatype>*)(source))() |
33 #define UNPACK_PCKG(target,source,datatype) datatype& target= (*(TPckg<datatype>*)(source))() |
72 InitializeL(); |
78 InitializeL(); |
73 } |
79 } |
74 |
80 |
75 void CSimSmsMessaging::InitializeL() |
81 void CSimSmsMessaging::InitializeL() |
76 { |
82 { |
77 LOGSMS1("Starting to Load and Parse Sms Messaging Config "); |
83 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_INITIALIZEL_1, "Starting to Load and Parse Sms Messaging Config "); |
78 iRxTimer=CSimTimer::NewL(iPhone); |
84 iRxTimer=CSimTimer::NewL(iPhone); |
79 iTxTimer=CSimTimer::NewL(iPhone); |
85 iTxTimer=CSimTimer::NewL(iPhone); |
80 iSmspTimer=CSimTimer::NewL(iPhone); |
86 iSmspTimer=CSimTimer::NewL(iPhone); |
81 |
87 |
82 iSmsRxParameterListGsm=new(ELeave) CArrayFixFlat<TSmsRxParametersGsm>(KSmsSettingGranularity); |
88 iSmsRxParameterListGsm=new(ELeave) CArrayFixFlat<TSmsRxParametersGsm>(KSmsSettingGranularity); |
94 FindAndCreateSmsParamsL(); |
100 FindAndCreateSmsParamsL(); |
95 |
101 |
96 // NOTE - no need to start iRxTimer; this will be started once a EMobileSmsMessagingReceiveMessage |
102 // NOTE - no need to start iRxTimer; this will be started once a EMobileSmsMessagingReceiveMessage |
97 // request is received and/or Send Sms contrainst satisfied (see CompleteTxPendingReq) |
103 // request is received and/or Send Sms contrainst satisfied (see CompleteTxPendingReq) |
98 |
104 |
99 LOGSMS1("Finished parsing SMS Messaging config parameters"); |
105 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_INITIALIZEL_2, "Finished parsing SMS Messaging config parameters"); |
100 } |
106 } |
101 |
107 |
102 |
108 |
103 void CSimSmsMessaging::Reset() |
109 void CSimSmsMessaging::Reset() |
104 { |
110 { |
176 TInt count=CfgFileSection()->ItemCount(KSmsRx); |
182 TInt count=CfgFileSection()->ItemCount(KSmsRx); |
177 const CTestConfigItem* item=NULL; |
183 const CTestConfigItem* item=NULL; |
178 TInt i; |
184 TInt i; |
179 TSmsRxParametersGsm smsRxParameterGsm; |
185 TSmsRxParametersGsm smsRxParameterGsm; |
180 |
186 |
181 LOGSMS2("CSimSmsMessaging::FindAndCreateRxAttributesL IN [count=%d]", count); |
187 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_1, "CSimSmsMessaging::FindAndCreateRxAttributesL IN [count=%d]", count); |
182 |
188 |
183 // Need to do this *before* entering the loop (so that we know |
189 // Need to do this *before* entering the loop (so that we know |
184 // whether or not to read a delivery report pdu off the config file). |
190 // whether or not to read a delivery report pdu off the config file). |
185 iSmsControlCaps=RMobileSmsMessaging::TMobileSmsControlCaps(CfgFileSection()->ItemValue(KSmsControlCaps,KDefaultSmsControlCaps)); |
191 iSmsControlCaps=RMobileSmsMessaging::TMobileSmsControlCaps(CfgFileSection()->ItemValue(KSmsControlCaps,KDefaultSmsControlCaps)); |
186 |
192 |
192 |
198 |
193 TPtrC8 smsPdu,sca; |
199 TPtrC8 smsPdu,sca; |
194 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,smsPdu); |
200 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,smsPdu); |
195 if(ret!=KErrNone) |
201 if(ret!=KErrNone) |
196 { |
202 { |
197 LOGPARSERR("smsPdu",ret,0,&KSmsRx); |
203 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_2, "WARNING - CONFIGURATION FILE PARSING - Reading element SMSPDU returned %d (element no. %d) from tag %s.",ret,0,KSmsRx); |
198 continue; |
204 continue; |
199 } |
205 } |
200 else |
206 else |
201 { |
207 { |
202 smsRxParameterGsm.iPdu.Zero(); |
208 smsRxParameterGsm.iPdu.Zero(); |
204 } |
210 } |
205 |
211 |
206 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,sca); |
212 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,sca); |
207 if(ret!=KErrNone) |
213 if(ret!=KErrNone) |
208 { |
214 { |
209 LOGPARSERR("sca",ret,1,&KSmsRx); |
215 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element SCA returned %d (element no. %d) from tag %s.",ret,1,KSmsRx); |
210 continue; |
216 continue; |
211 } |
217 } |
212 else |
218 else |
213 { |
219 { |
214 smsRxParameterGsm.iSca=sca; |
220 smsRxParameterGsm.iSca=sca; |
220 { |
226 { |
221 TPtrC8 deliveryReportPdu; |
227 TPtrC8 deliveryReportPdu; |
222 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,deliveryReportPdu); |
228 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,deliveryReportPdu); |
223 if( (ret!=KErrNone) && (ret!=KErrGeneral) ) |
229 if( (ret!=KErrNone) && (ret!=KErrGeneral) ) |
224 { |
230 { |
225 LOGPARSERR("deliveryReportPdu",ret,2,&KSmsRx); |
231 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element DELIVERYREPORTPDU returned %d (element no. %d) from tag %s.",ret,2,KSmsRx); |
226 } |
232 } |
227 else |
233 else |
228 { |
234 { |
229 if (CSimTsyMode::GetMode() != CSimTsyMode::ECdmaV1) |
235 if (CSimTsyMode::GetMode() != CSimTsyMode::ECdmaV1) |
230 { |
236 { |
244 iResumeCompletePause=CfgFileSection()->ItemValue(KSmsResumePause,KDefaultSmsResumePause); |
250 iResumeCompletePause=CfgFileSection()->ItemValue(KSmsResumePause,KDefaultSmsResumePause); |
245 |
251 |
246 if (iSmsControlCaps & RMobileSmsMessaging::KCapsReceiveUnstoredClientAck) |
252 if (iSmsControlCaps & RMobileSmsMessaging::KCapsReceiveUnstoredClientAck) |
247 iSmsReceiveMode=RMobileSmsMessaging::EReceiveUnstoredClientAck; |
253 iSmsReceiveMode=RMobileSmsMessaging::EReceiveUnstoredClientAck; |
248 else iSmsReceiveMode=RMobileSmsMessaging::EReceiveModeUnspecified; |
254 else iSmsReceiveMode=RMobileSmsMessaging::EReceiveModeUnspecified; |
249 LOGSMS5("iSmsRxPeriod =%d, iAckNackCompletePause=%d, iResumeCompletePause=%d, iSmsControlCaps=%d",iSmsRxPeriod, iAckNackCompletePause, iResumeCompletePause, iSmsControlCaps); |
255 OstTraceDefExt4(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_5, "iSmsRxPeriod =%d, iAckNackCompletePause=%d, iResumeCompletePause=%d, iSmsControlCaps=%d",iSmsRxPeriod, iAckNackCompletePause, iResumeCompletePause, iSmsControlCaps); |
250 LOGSMS4("iSmsModeCaps =%d, iSmsRxStartDelay = %d, iSmsReceiveMode = %d",iSmsModeCaps , iSmsRxStartDelay, iSmsReceiveMode); |
256 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_6, "iSmsModeCaps =%d, iSmsRxStartDelay = %d, iSmsReceiveMode = %d",iSmsModeCaps , iSmsRxStartDelay, iSmsReceiveMode); |
251 LOGSMS2("CSimSmsMessaging::FindAndCreateRxAttributesL OUT [count=%d]", iSmsRxParameterListGsm->Count()); |
257 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATERXATTRIBUTESL_7, "CSimSmsMessaging::FindAndCreateRxAttributesL OUT [count=%d]", iSmsRxParameterListGsm->Count()); |
252 } |
258 } |
253 |
259 |
254 void CSimSmsMessaging::FindAndCreateTxAttributesL() |
260 void CSimSmsMessaging::FindAndCreateTxAttributesL() |
255 /** |
261 /** |
256 * Extract values from the tags |
262 * Extract values from the tags |
273 //get pdu |
279 //get pdu |
274 TPtrC8 smsTx; |
280 TPtrC8 smsTx; |
275 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,smsTx); |
281 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,smsTx); |
276 if(ret!=KErrNone) |
282 if(ret!=KErrNone) |
277 { |
283 { |
278 LOGPARSERR("smsTx",ret,0,&KSmsTx); |
284 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATETXATTRIBUTESL_1, "WARNING - CONFIGURATION FILE PARSING - Reading element SMSTX returned %d (element no. %d) from tag %s.",ret,0,KSmsTx); |
279 continue; |
285 continue; |
280 } |
286 } |
281 else |
287 else |
282 { |
288 { |
283 smsTxParametersGsm.iPdu.Zero(); |
289 smsTxParametersGsm.iPdu.Zero(); |
287 //get Sca |
293 //get Sca |
288 TPtrC8 sca; |
294 TPtrC8 sca; |
289 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,sca); |
295 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,sca); |
290 if (ret!=KErrNone) |
296 if (ret!=KErrNone) |
291 { |
297 { |
292 LOGPARSERR("sca",ret,1,&KSmsTx); |
298 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATETXATTRIBUTESL_2, "WARNING - CONFIGURATION FILE PARSING - Reading element SCA returned %d (element no. %d) from tag %s.",ret,1,KSmsTx); |
293 continue; |
299 continue; |
294 } |
300 } |
295 else |
301 else |
296 { |
302 { |
297 smsTxParametersGsm.iSca.Copy(sca); |
303 smsTxParametersGsm.iSca.Copy(sca); |
300 //get reference |
306 //get reference |
301 TInt reference; |
307 TInt reference; |
302 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,reference); |
308 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,reference); |
303 if(ret!=KErrNone) |
309 if(ret!=KErrNone) |
304 { |
310 { |
305 LOGPARSERR("reference",ret,2,&KSmsTx); |
311 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATETXATTRIBUTESL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element REFERENCE returned %d (element no. %d) from tag %s.",ret,2,KSmsTx); |
306 smsTxParametersGsm.iRef=KNoMessageReferenceInCofigurationFile; |
312 smsTxParametersGsm.iRef=KNoMessageReferenceInCofigurationFile; |
307 } |
313 } |
308 else |
314 else |
309 { |
315 { |
310 smsTxParametersGsm.iRef=reference; |
316 smsTxParametersGsm.iRef=reference; |
313 //get submit report pdu |
319 //get submit report pdu |
314 TPtrC8 submitReportPdu; |
320 TPtrC8 submitReportPdu; |
315 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,3,submitReportPdu); |
321 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,3,submitReportPdu); |
316 if(ret!=KErrNone) |
322 if(ret!=KErrNone) |
317 { |
323 { |
318 LOGPARSERR("submitReportPdu",ret,3,&KSmsTx); |
324 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATETXATTRIBUTESL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element SUBMITREPORTPDU returned %d (element no. %d) from tag %s.",ret,3,KSmsTx); |
319 continue; |
325 continue; |
320 } |
326 } |
321 else |
327 else |
322 { |
328 { |
323 smsTxParametersGsm.iSubmitReport.Zero(); |
329 smsTxParametersGsm.iSubmitReport.Zero(); |
327 //get expected error code |
333 //get expected error code |
328 TInt errorCode; |
334 TInt errorCode; |
329 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,4,errorCode); |
335 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,4,errorCode); |
330 if(ret!=KErrNone) |
336 if(ret!=KErrNone) |
331 { |
337 { |
332 LOGPARSERR("errorCode",ret,4,&KSmsTx); |
338 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATETXATTRIBUTESL_5, "WARNING - CONFIGURATION FILE PARSING - Reading element ERRORCODE returned %d (element no. %d) from tag %s.",ret,4,KSmsTx); |
333 continue; |
339 continue; |
334 } |
340 } |
335 else |
341 else |
336 { |
342 { |
337 smsTxParametersGsm.iExpectedError=errorCode; |
343 smsTxParametersGsm.iExpectedError=errorCode; |
363 |
369 |
364 TInt ipc,noBefore,noAfter; |
370 TInt ipc,noBefore,noAfter; |
365 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,ipc);//only :SendMessage() is supported |
371 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,ipc);//only :SendMessage() is supported |
366 if(ret!=KErrNone || ipc!=4207) |
372 if(ret!=KErrNone || ipc!=4207) |
367 { |
373 { |
368 LOGPARSERR("ipc",ret,0,&KSmsStartRxDelay); |
374 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATECONSTRAINTS_1, "WARNING - CONFIGURATION FILE PARSING - Reading element IPC returned %d (element no. %d) from tag %s.",ret,0,KSmsStartRxDelay); |
369 continue; |
375 continue; |
370 } |
376 } |
371 |
377 |
372 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,noBefore); |
378 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,noBefore); |
373 if(ret==KErrNone) |
379 if(ret==KErrNone) |
374 constraint.iIpcCnt=noBefore; |
380 constraint.iIpcCnt=noBefore; |
375 else |
381 else |
376 { |
382 { |
377 LOGPARSERR("noBefore",ret,1,&KSmsStartRxDelay); |
383 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATECONSTRAINTS_2, "WARNING - CONFIGURATION FILE PARSING - Reading element NOBEFORE returned %d (element no. %d) from tag %s.",ret,1,KSmsStartRxDelay); |
378 continue; |
384 continue; |
379 } |
385 } |
380 |
386 |
381 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,noAfter); |
387 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,noAfter); |
382 if(ret==KErrNone) |
388 if(ret==KErrNone) |
383 constraint.iRxCnt=noAfter; |
389 constraint.iRxCnt=noAfter; |
384 else |
390 else |
385 { |
391 { |
386 LOGPARSERR("noAfter",ret,2,&KSmsStartRxDelay); |
392 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATECONSTRAINTS_3, "WARNING - CONFIGURATION FILE PARSING - Reading element NOAFTER returned %d (element no. %d) from tag %s.",ret,2,KSmsStartRxDelay); |
387 continue; |
393 continue; |
388 } |
394 } |
389 |
395 |
390 __ASSERT_ALWAYS(iConstraints.Append(constraint) == KErrNone,SimPanic(EGeneral)); |
396 __ASSERT_ALWAYS(iConstraints.Append(constraint) == KErrNone,SimPanic(EGeneral)); |
391 } |
397 } |
411 TPtrC8 storeName; |
417 TPtrC8 storeName; |
412 TInt maxNumSlots; |
418 TInt maxNumSlots; |
413 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,storeName); |
419 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,storeName); |
414 if(ret!=KErrNone) |
420 if(ret!=KErrNone) |
415 { |
421 { |
416 LOGPARSERR("storeName",ret,0,&KSmsStore); |
422 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSSTORESL_1, "WARNING - CONFIGURATION FILE PARSING - Reading element STORENAME returned %d (element no. %d) from tag %s.",ret,0,KSmsStore); |
417 continue; |
423 continue; |
418 } |
424 } |
419 |
425 |
420 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,maxNumSlots); |
426 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,maxNumSlots); |
421 if(ret!=KErrNone) |
427 if(ret!=KErrNone) |
422 { |
428 { |
423 LOGPARSERR("maxNumSlots",ret,1,&KSmsStore); |
429 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSSTORESL_2, "WARNING - CONFIGURATION FILE PARSING - Reading element MAXNUMSLOTS returned %d (element no. %d) from tag %s.",ret,1,KSmsStore); |
424 continue; |
430 continue; |
425 } |
431 } |
426 |
432 |
427 CSimSmsStore* smsStore=CSimSmsStore::NewL(this,storeName,maxNumSlots,aPhone); |
433 CSimSmsStore* smsStore=CSimSmsStore::NewL(this,storeName,maxNumSlots,aPhone); |
428 TCleanupItem newObjClose(CloseSmsObj,smsStore); |
434 TCleanupItem newObjClose(CloseSmsObj,smsStore); |
470 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,index); |
476 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,index); |
471 if((ret==KErrNone)&&(index < maxSlots)) |
477 if((ret==KErrNone)&&(index < maxSlots)) |
472 entry.iIndex=index; |
478 entry.iIndex=index; |
473 else |
479 else |
474 { |
480 { |
475 LOGPARSERR("index",ret,0,&KSmsParamEntry); |
481 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_1, "WARNING - CONFIGURATION FILE PARSING - Reading element INDEX returned %d (element no. %d) from tag %s.",ret,0,KSmsParamEntry); |
476 continue; |
482 continue; |
477 } |
483 } |
478 |
484 |
479 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,smspName); |
485 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,1,smspName); |
480 if(ret==KErrNone) |
486 if(ret==KErrNone) |
481 entry.iText.Copy(smspName); |
487 entry.iText.Copy(smspName); |
482 else |
488 else |
483 { |
489 { |
484 LOGPARSERR("smspName",ret,1,&KSmsParamEntry); |
490 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_2, "WARNING - CONFIGURATION FILE PARSING - Reading element SMSPNAME returned %d (element no. %d) from tag %s.",ret,1,KSmsParamEntry); |
485 continue; |
491 continue; |
486 } |
492 } |
487 |
493 |
488 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,pid); |
494 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,2,pid); |
489 if(ret==KErrNone) |
495 if(ret==KErrNone) |
491 entry.iProtocolId=TUint8(pid); |
497 entry.iProtocolId=TUint8(pid); |
492 entry.iValidParams |= RMobileSmsMessaging::KProtocolIdIncluded; |
498 entry.iValidParams |= RMobileSmsMessaging::KProtocolIdIncluded; |
493 } |
499 } |
494 else |
500 else |
495 { |
501 { |
496 LOGPARSERR("pid",ret,2,&KSmsParamEntry); |
502 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element PID returned %d (element no. %d) from tag %s.",ret,2,KSmsParamEntry); |
497 continue; |
503 continue; |
498 } |
504 } |
499 |
505 |
500 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,3,dcs); |
506 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,3,dcs); |
501 if(ret==KErrNone) |
507 if(ret==KErrNone) |
503 entry.iDcs=TUint8(dcs); |
509 entry.iDcs=TUint8(dcs); |
504 entry.iValidParams |= RMobileSmsMessaging::KDcsIncluded; |
510 entry.iValidParams |= RMobileSmsMessaging::KDcsIncluded; |
505 } |
511 } |
506 else |
512 else |
507 { |
513 { |
508 LOGPARSERR("dcs",ret,3,&KSmsParamEntry); |
514 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element DCS returned %d (element no. %d) from tag %s.",ret,3,KSmsParamEntry); |
509 continue; |
515 continue; |
510 } |
516 } |
511 |
517 |
512 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,4,validityPeriod); |
518 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,4,validityPeriod); |
513 if(ret==KErrNone) |
519 if(ret==KErrNone) |
515 entry.iValidityPeriod=TUint8(validityPeriod); |
521 entry.iValidityPeriod=TUint8(validityPeriod); |
516 entry.iValidParams |= RMobileSmsMessaging::KValidityPeriodIncluded; |
522 entry.iValidParams |= RMobileSmsMessaging::KValidityPeriodIncluded; |
517 } |
523 } |
518 else |
524 else |
519 { |
525 { |
520 LOGPARSERR("validityPeriod",ret,4,&KSmsParamEntry); |
526 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_5, "WARNING - CONFIGURATION FILE PARSING - Reading element VALIDITYPERIOD returned %d (element no. %d) from tag %s.",ret,4,KSmsParamEntry); |
521 continue; |
527 continue; |
522 } |
528 } |
523 |
529 |
524 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,5,destAddress); |
530 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,5,destAddress); |
525 if(ret==KErrNone) |
531 if(ret==KErrNone) |
526 { |
532 { |
527 RecordDestination(destAddress, entry); |
533 RecordDestination(destAddress, entry); |
528 } |
534 } |
529 else |
535 else |
530 { |
536 { |
531 LOGPARSERR("destAddress",ret,5,&KSmsParamEntry); |
537 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_6, "WARNING - CONFIGURATION FILE PARSING - Reading element DESTADDRESS returned %d (element no. %d) from tag %s.",ret,5,KSmsParamEntry); |
532 continue; |
538 continue; |
533 } |
539 } |
534 |
540 |
535 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,6,sca); |
541 ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,6,sca); |
536 if(ret==KErrNone) |
542 if(ret==KErrNone) |
537 { |
543 { |
538 RecordSca(sca, entry); |
544 RecordSca(sca, entry); |
539 } |
545 } |
540 else |
546 else |
541 { |
547 { |
542 LOGPARSERR("sca",ret,6,&KSmsParamEntry); |
548 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_FINDANDCREATESMSPARAMSL_7, "WARNING - CONFIGURATION FILE PARSING - Reading element SCA returned %d (element no. %d) from tag %s.",ret,6,KSmsParamEntry); |
543 continue; |
549 continue; |
544 } |
550 } |
545 |
551 |
546 iSmspEntries->AddEntryL(entry); |
552 iSmspEntries->AddEntryL(entry); |
547 } |
553 } |
579 aEntry.iDestination.iTelNumber.Copy(aAsciiAddr); |
585 aEntry.iDestination.iTelNumber.Copy(aAsciiAddr); |
580 aEntry.iValidParams |= RMobileSmsMessaging::KDestinationIncluded; |
586 aEntry.iValidParams |= RMobileSmsMessaging::KDestinationIncluded; |
581 } |
587 } |
582 } |
588 } |
583 |
589 |
584 #ifdef _DEBUG // to stop the UREL build warnings |
590 #if (OST_TRACE_CATEGORY & OST_TRACE_CATEGORY_DEBUG) // to stop the UREL build warnings |
585 void CSimSmsMessaging::LogRequest(const TBool aEntering, TInt aIpc, TInt aError) |
591 void CSimSmsMessaging::LogRequest(const TBool aEntering, TInt aIpc, TInt aError) |
586 #else |
592 #else |
587 void CSimSmsMessaging::LogRequest(const TBool aEntering, TInt aIpc, TInt /*aError*/) |
593 void CSimSmsMessaging::LogRequest(const TBool aEntering, TInt aIpc, TInt /*aError*/) |
588 #endif |
594 #endif |
589 /** |
595 /** |
709 break; |
715 break; |
710 } |
716 } |
711 |
717 |
712 if (aEntering!=EFalse) |
718 if (aEntering!=EFalse) |
713 { |
719 { |
714 LOGSMS3(">>%d,CSimSmsMessaging::%S",aIpc, &ipcBuf ); |
720 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGREQUEST1_1, ">>%d,CSimSmsMessaging::%s",aIpc, ipcBuf ); |
715 } |
721 } |
716 else |
722 else |
717 { |
723 { |
718 LOGSMS4("<<%d, CSimSmsMessaging::%S with error %d",aIpc, &ipcBuf, aError); |
724 #if (OST_TRACE_CATEGORY & OST_TRACE_CATEGORY_DEBUG) // to stop the UREL build warnings |
|
725 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGREQUEST1_2, "<<%d, CSimSmsMessaging::%s with error %d",aIpc, ipcBuf, aError); |
|
726 #endif |
719 } |
727 } |
720 } |
728 } |
721 |
729 |
722 |
730 |
723 TInt CSimSmsMessaging::ExtFunc(const TTsyReqHandle aReqHandle,const TInt aIpc, const TDataPackage& aPckg) |
731 TInt CSimSmsMessaging::ExtFunc(const TTsyReqHandle aReqHandle,const TInt aIpc, const TDataPackage& aPckg) |
847 for(i=0;i<count;++i) |
855 for(i=0;i<count;++i) |
848 { |
856 { |
849 if(iSmsTxCnt==(iConstraints[i].iIpcCnt)) |
857 if(iSmsTxCnt==(iConstraints[i].iIpcCnt)) |
850 { |
858 { |
851 iCurrentConstraint=i; |
859 iCurrentConstraint=i; |
852 LOGSMS2("New Constraint : %d", iCurrentConstraint); |
860 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_IPCMATCH_1, "New Constraint : %d", iCurrentConstraint); |
853 if(i!=0) |
861 if(i!=0) |
854 { |
862 { |
855 if( !constraintEllapsed ) |
863 if( !constraintEllapsed ) |
856 { |
864 { |
857 LOGSMS1("Panic The constraints are overlapping...Compare test code and config file"); |
865 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_IPCMATCH_2, "Panic The constraints are overlapping...Compare test code and config file"); |
858 } |
866 } |
859 __ASSERT_ALWAYS(constraintEllapsed!=EFalse,SimPanic(EConstraintsOverlapping)); |
867 __ASSERT_ALWAYS(constraintEllapsed!=EFalse,SimPanic(EConstraintsOverlapping)); |
860 } |
868 } |
861 return ETrue; |
869 return ETrue; |
862 } |
870 } |
867 CTelObject* CSimSmsMessaging::OpenNewObjectByNameL(const TDesC& aName) |
875 CTelObject* CSimSmsMessaging::OpenNewObjectByNameL(const TDesC& aName) |
868 /** |
876 /** |
869 * |
877 * |
870 */ |
878 */ |
871 { |
879 { |
872 LOGSMS1(">>CSimSmsMessaging::OpenNewObjectByNameL"); |
880 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_OPENNEWOBJECTBYNAMEL_1, ">>CSimSmsMessaging::OpenNewObjectByNameL"); |
873 TBuf8<KMaxName> name; |
881 TBuf8<KMaxName> name; |
874 name.Copy(aName); // Do simple 16 bit to 8 bit conversion |
882 name.Copy(aName); // Do simple 16 bit to 8 bit conversion |
875 for(TInt i=0;i<iSmsStores->Count();i++) |
883 for(TInt i=0;i<iSmsStores->Count();i++) |
876 { |
884 { |
877 if(name.MatchF(iSmsStores->At(i)->Name())==0) |
885 if(name.MatchF(iSmsStores->At(i)->Name())==0) |
1029 * This function, triggered by sms receive events, manages the stated machine of |
1037 * This function, triggered by sms receive events, manages the stated machine of |
1030 * receiving Unstored clientacked sms messages |
1038 * receiving Unstored clientacked sms messages |
1031 * |
1039 * |
1032 */ |
1040 */ |
1033 { |
1041 { |
1034 LOGSMS3(">>CSimSmsMessaging::ActionRxEventUnstoredClientAck [iRxState=%d aRxEvent=%d]", iRxState, aRxEvent); |
1042 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ACTIONRXEVENTUNSTOREDCLIENTACK_1, ">>CSimSmsMessaging::ActionRxEventUnstoredClientAck [iRxState=%d aRxEvent=%d]", iRxState, aRxEvent); |
1035 switch(iRxState) |
1043 switch(iRxState) |
1036 { |
1044 { |
1037 case ESmsRxStateIdle: |
1045 case ESmsRxStateIdle: |
1038 { |
1046 { |
1039 if(aRxEvent==ESmsEventPostedRxReq) |
1047 if(aRxEvent==ESmsEventPostedRxReq) |
1064 if(aRxEvent==ESmsEventRxAckNack) |
1072 if(aRxEvent==ESmsEventRxAckNack) |
1065 { |
1073 { |
1066 iRxState=ESmsRxStateWaitingForNetworkAckNackResponse; |
1074 iRxState=ESmsRxStateWaitingForNetworkAckNackResponse; |
1067 if (!iRxTimer->IsActive() && !iRxTimer->Running()) |
1075 if (!iRxTimer->IsActive() && !iRxTimer->Running()) |
1068 { |
1076 { |
1069 LOGSMS1(">>CSimSmsMessaging::ActionRxEventUnstoredClientAck Starting Rx Timer"); |
1077 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ACTIONRXEVENTUNSTOREDCLIENTACK_2, ">>CSimSmsMessaging::ActionRxEventUnstoredClientAck Starting Rx Timer"); |
1070 iRxTimer->Start(iAckNackCompletePause,this, ETimerIdSmsMessRx); |
1078 iRxTimer->Start(iAckNackCompletePause,this, ETimerIdSmsMessRx); |
1071 } |
1079 } |
1072 |
1080 |
1073 return KErrNone; |
1081 return KErrNone; |
1074 } |
1082 } |
1126 * This function, triggered by sms receive events, manages the stated machine of |
1134 * This function, triggered by sms receive events, manages the stated machine of |
1127 * receiving Unstored Phone acked sms messages |
1135 * receiving Unstored Phone acked sms messages |
1128 * |
1136 * |
1129 */ |
1137 */ |
1130 { |
1138 { |
1131 LOGSMS3(">> ActionRxEventUnstoredPhoneAck Enter function. Event=%d, State=%d",aRxEvent,iRxState); |
1139 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ACTIONRXEVENTUNSTOREDPHONEACK_1, ">> ActionRxEventUnstoredPhoneAck Enter function. Event=%d, State=%d",aRxEvent,iRxState); |
1132 |
1140 |
1133 TInt ret = KErrGeneral; |
1141 TInt ret = KErrGeneral; |
1134 |
1142 |
1135 switch(iRxState) |
1143 switch(iRxState) |
1136 { |
1144 { |
1167 * This function, triggered by sms receive events, manages the stated machine of |
1175 * This function, triggered by sms receive events, manages the stated machine of |
1168 * receiving stored Phone acked sms messages |
1176 * receiving stored Phone acked sms messages |
1169 * |
1177 * |
1170 */ |
1178 */ |
1171 { |
1179 { |
1172 LOGSMS3(">> ActionRxEventStored Enter function. Event=%d, State=%d",aRxEvent,iRxState); |
1180 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ACTIONRXEVENTSTORED_1, ">> ActionRxEventStored Enter function. Event=%d, State=%d",aRxEvent,iRxState); |
1173 TInt ret = KErrGeneral; |
1181 TInt ret = KErrGeneral; |
1174 |
1182 |
1175 switch(iRxState) |
1183 switch(iRxState) |
1176 { |
1184 { |
1177 case ESmsRxStateIdle: |
1185 case ESmsRxStateIdle: |
1236 return KErrNone; |
1244 return KErrNone; |
1237 } |
1245 } |
1238 |
1246 |
1239 iSmsRxAttrib=&attrib; |
1247 iSmsRxAttrib=&attrib; |
1240 iSmsRxReqOutstanding=ETrue; |
1248 iSmsRxReqOutstanding=ETrue; |
1241 LOGSMS3(">>ReceiveMessageL. aSmsPdu&=%x, aParam2&=%x",aSmsPdu,iSmsRxAttrib); |
1249 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_RECEIVEMESSAGEL_1, ">>ReceiveMessageL. aSmsPdu&=0x%x, aParam2&=0x%x",(TUint)aSmsPdu,(TUint)iSmsRxAttrib); |
1242 |
1250 |
1243 // Print received PDU to simTSY log. |
1251 // Print received PDU to simTSY log. |
1244 __ASSERT_ALWAYS(iSmsReceiveMode!=RMobileSmsMessaging::EReceiveModeUnspecified,SimPanic(EMobileSmsMessagingPhoneNotSetToAReceiveMode)); |
1252 __ASSERT_ALWAYS(iSmsReceiveMode!=RMobileSmsMessaging::EReceiveModeUnspecified,SimPanic(EMobileSmsMessagingPhoneNotSetToAReceiveMode)); |
1245 TInt ret=0; |
1253 TInt ret=0; |
1246 switch (iSmsReceiveMode)//swich which state machine to enter |
1254 switch (iSmsReceiveMode)//swich which state machine to enter |
1420 /** |
1428 /** |
1421 * This function actions the sms message sending state machine. It is triggered by sms sending events |
1429 * This function actions the sms message sending state machine. It is triggered by sms sending events |
1422 * |
1430 * |
1423 */ |
1431 */ |
1424 { |
1432 { |
1425 LOGSMS1(">>ActionTxEvent "); |
1433 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ACTIONTXEVENT_1, ">>ActionTxEvent "); |
1426 switch(iTxState) |
1434 switch(iTxState) |
1427 { |
1435 { |
1428 case ESmsTxStateIdle: |
1436 case ESmsTxStateIdle: |
1429 __ASSERT_ALWAYS(aTxEvent!=ESmsEventSubmitReportReceived,SimPanic(EIllegalSmsTxEvent)); |
1437 __ASSERT_ALWAYS(aTxEvent!=ESmsEventSubmitReportReceived,SimPanic(EIllegalSmsTxEvent)); |
1430 if(aTxEvent==ESmsEventSendReq) |
1438 if(aTxEvent==ESmsEventSendReq) |
1538 * Complete an outstanding SMS message receive request if one is outstanding. If there is |
1546 * Complete an outstanding SMS message receive request if one is outstanding. If there is |
1539 * no request outstanding, the message will be discared. |
1547 * no request outstanding, the message will be discared. |
1540 * update the constraint count |
1548 * update the constraint count |
1541 */ |
1549 */ |
1542 { |
1550 { |
1543 LOGSMS1(">>AttemptSmsRxComplete "); |
1551 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ATTEMPTSMSRXCOMPLETE_1, ">>AttemptSmsRxComplete "); |
1544 |
1552 |
1545 if (CSimTsyMode::GetMode() != CSimTsyMode::ECdmaV1) |
1553 if (CSimTsyMode::GetMode() != CSimTsyMode::ECdmaV1) |
1546 { |
1554 { |
1547 iConstraintRxCnt++; |
1555 iConstraintRxCnt++; |
1548 } |
1556 } |
1550 TInt ret=KErrNone; |
1558 TInt ret=KErrNone; |
1551 if(iSmsRxReqOutstanding) |
1559 if(iSmsRxReqOutstanding) |
1552 { |
1560 { |
1553 if (iSmsReceiveMode==RMobileSmsMessaging::EReceiveStored) |
1561 if (iSmsReceiveMode==RMobileSmsMessaging::EReceiveStored) |
1554 { |
1562 { |
1555 LOGSMS4(">>Populating SMS Structures. iSmsRxPdu&=%x, iSmsRxAttrib&=%x, iSmsRxCnt=%d.",iSmsRxPdu,iSmsRxAttrib,iSmsRxCnt); |
1563 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_ATTEMPTSMSRXCOMPLETE_2, ">>Populating SMS Structures. iSmsRxPdu&=0x%x, iSmsRxAttrib&=0x%x, iSmsRxCnt=%d.",(TUint)iSmsRxPdu,(TUint)iSmsRxAttrib,iSmsRxCnt); |
1556 RMobileSmsStore::TMobileGsmSmsEntryV1 sms; |
1564 RMobileSmsStore::TMobileGsmSmsEntryV1 sms; |
1557 |
1565 |
1558 *iSmsRxPdu=iSmsRxParameterListGsm->At(iSmsRxCnt).iPdu; |
1566 *iSmsRxPdu=iSmsRxParameterListGsm->At(iSmsRxCnt).iPdu; |
1559 |
1567 |
1560 sms.iMsgData=RMobileSmsMessaging::TMobileSmsGsmTpdu(*iSmsRxPdu); |
1568 sms.iMsgData=RMobileSmsMessaging::TMobileSmsGsmTpdu(*iSmsRxPdu); |
1621 } |
1629 } |
1622 else |
1630 else |
1623 { |
1631 { |
1624 // No pending client receive request - need to wait for it before |
1632 // No pending client receive request - need to wait for it before |
1625 // simulating received SMS from network. |
1633 // simulating received SMS from network. |
1626 LOGSMS1(" - no pending receive req from client - do not start Rx timer"); |
1634 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_COMPLETETXPENDINGREQ_2, " - no pending receive req from client - do not start Rx timer"); |
1627 } |
1635 } |
1628 } |
1636 } |
1629 ReqCompleted(iSmsTxReqHandle, aError); |
1637 ReqCompleted(iSmsTxReqHandle, aError); |
1630 } |
1638 } |
1631 |
1639 |
1632 void CSimSmsMessaging::StartSmsMtTimer() |
1640 void CSimSmsMessaging::StartSmsMtTimer() |
1633 { |
1641 { |
1634 LOGSMS1(">>StartSmsMtTimer "); |
1642 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_STARTSMSMTTIMER_1, ">>StartSmsMtTimer "); |
1635 TInt count = 0; |
1643 TInt count = 0; |
1636 count = iSmsRxCnt<iSmsRxParameterListGsm->Count(); |
1644 count = iSmsRxCnt<iSmsRxParameterListGsm->Count(); |
1637 |
1645 |
1638 if(count) // Check that there are more messages defined in the config file. |
1646 if(count) // Check that there are more messages defined in the config file. |
1639 { |
1647 { |
1640 if((iConstraints.Count()==0) || (iConstraintRxCnt<iConstraints[iCurrentConstraint].iRxCnt)) // If there are no constraints, or there are constraints and they're not exhausted. |
1648 if((iConstraints.Count()==0) || (iConstraintRxCnt<iConstraints[iCurrentConstraint].iRxCnt)) // If there are no constraints, or there are constraints and they're not exhausted. |
1641 { |
1649 { |
1642 LOGSMS1(">>StartSmsMtTimer Starting"); |
1650 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_STARTSMSMTTIMER_2, ">>StartSmsMtTimer Starting"); |
1643 iRxTimer->Start(iSmsRxPeriod,this, ETimerIdSmsMessRx); |
1651 iRxTimer->Start(iSmsRxPeriod,this, ETimerIdSmsMessRx); |
1644 LOGSMS1(">>StartSmsMtTimer Started"); |
1652 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_STARTSMSMTTIMER_3, ">>StartSmsMtTimer Started"); |
1645 } |
1653 } |
1646 } |
1654 } |
1647 } |
1655 } |
1648 |
1656 |
1649 |
1657 |
1652 * Populate the SMS Rx Attributes from an ASCII respresentation, such as that stored in the configuration file. |
1660 * Populate the SMS Rx Attributes from an ASCII respresentation, such as that stored in the configuration file. |
1653 * This involves checking the address for a leading '+' character and setting the TON and NPI |
1661 * This involves checking the address for a leading '+' character and setting the TON and NPI |
1654 * accordingly. The address can then be copied into the iTelNumber structure. |
1662 * accordingly. The address can then be copied into the iTelNumber structure. |
1655 */ |
1663 */ |
1656 { |
1664 { |
1657 LOGSMS1(">>PopulateSmsRxAttrib, "); |
1665 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_POPULATESMSRXATTRIB_1, ">>PopulateSmsRxAttrib, "); |
1658 aAttrib->iOriginator.iTelNumber.SetLength(0); |
1666 aAttrib->iOriginator.iTelNumber.SetLength(0); |
1659 |
1667 |
1660 switch (iSmsReceiveMode) |
1668 switch (iSmsReceiveMode) |
1661 { |
1669 { |
1662 case RMobileSmsMessaging::EReceiveUnstoredClientAck: |
1670 case RMobileSmsMessaging::EReceiveUnstoredClientAck: |
2023 TRAPD(leaveCode,iSmspEntries->RestoreL(*aBuffer)); |
2031 TRAPD(leaveCode,iSmspEntries->RestoreL(*aBuffer)); |
2024 if (leaveCode) |
2032 if (leaveCode) |
2025 return leaveCode; |
2033 return leaveCode; |
2026 iSmspReqHandle=aTsyReqHandle; |
2034 iSmspReqHandle=aTsyReqHandle; |
2027 iSmspTimer->Start(iSmspBatchPause,this, ETimerIdSmsMessSmsp); |
2035 iSmspTimer->Start(iSmspBatchPause,this, ETimerIdSmsMessSmsp); |
2028 LOGSMS1("<<StoreSmsList,Exit function"); |
2036 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_STORESMSPLIST_1, "<<StoreSmsList,Exit function"); |
2029 return KErrNone; |
2037 return KErrNone; |
2030 } |
2038 } |
2031 else |
2039 else |
2032 LOGSMS1("<<StoreSmsList,Exit function"); |
2040 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_STORESMSPLIST_2, "<<StoreSmsList,Exit function"); |
2033 return KErrInUse; |
2041 return KErrInUse; |
2034 |
2042 |
2035 } |
2043 } |
2036 |
2044 |
2037 void CSimSmsMessaging::StoreSmspListCancel() |
2045 void CSimSmsMessaging::StoreSmspListCancel() |
2067 * Process a timer call back event. |
2075 * Process a timer call back event. |
2068 * @param aId Contains the Id of the timer that triggered the event |
2076 * @param aId Contains the Id of the timer that triggered the event |
2069 * |
2077 * |
2070 */ |
2078 */ |
2071 { |
2079 { |
2072 LOGSMS3(">>CSimSmsMesaging::TimerCallBack IN [aId=%d iSmsReceiveMode=%d]", aId, iSmsReceiveMode); |
2080 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_TIMERCALLBACK_1, ">>CSimSmsMesaging::TimerCallBack IN [aId=%d iSmsReceiveMode=%d]", aId, iSmsReceiveMode); |
2073 switch(aId) |
2081 switch(aId) |
2074 { |
2082 { |
2075 case ETimerIdSmsMessTx: |
2083 case ETimerIdSmsMessTx: |
2076 { |
2084 { |
2077 TInt ret=ActionTxEvent(ESmsEventSubmitReportReceived); |
2085 TInt ret=ActionTxEvent(ESmsEventSubmitReportReceived); |
2095 break; |
2103 break; |
2096 case RMobileSmsMessaging::EReceiveUnstoredPhoneAck: |
2104 case RMobileSmsMessaging::EReceiveUnstoredPhoneAck: |
2097 ret=ActionRxEventUnstoredPhoneAck(ESmsEventRxTimer); |
2105 ret=ActionRxEventUnstoredPhoneAck(ESmsEventRxTimer); |
2098 break; |
2106 break; |
2099 case RMobileSmsMessaging::EReceiveStored: |
2107 case RMobileSmsMessaging::EReceiveStored: |
2100 LOGSMS1("Recieve Stored SMS Rx Event."); |
2108 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_TIMERCALLBACK_2, "Recieve Stored SMS Rx Event."); |
2101 ret=ActionRxEventStored(ESmsEventRxTimer); |
2109 ret=ActionRxEventStored(ESmsEventRxTimer); |
2102 break; |
2110 break; |
2103 default://other receive modes cannot be set |
2111 default://other receive modes cannot be set |
2104 break; |
2112 break; |
2105 }//end switch |
2113 }//end switch |
2106 |
2114 |
2107 if (ret != KErrNone) |
2115 if (ret != KErrNone) |
2108 { |
2116 { |
2109 LOGSMS2("ERROR: Unexpected ret code %d", ret); |
2117 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_TIMERCALLBACK_3, "ERROR: Unexpected ret code %d", ret); |
2110 __ASSERT_ALWAYS(ret==KErrNone,SimPanic(EIllegalSmsRxEvent, __LINE__)); // There should be no error from this action, but to check... |
2118 __ASSERT_ALWAYS(ret==KErrNone,SimPanic(EIllegalSmsRxEvent, __LINE__)); // There should be no error from this action, but to check... |
2111 } |
2119 } |
2112 |
2120 |
2113 break; |
2121 break; |
2114 } |
2122 } |
2129 } |
2137 } |
2130 |
2138 |
2131 default: |
2139 default: |
2132 break; |
2140 break; |
2133 } |
2141 } |
2134 LOGSMS1(">>CSimSmsMesaging::TimerCallBack OUT"); |
2142 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_TIMERCALLBACK_4, ">>CSimSmsMesaging::TimerCallBack OUT"); |
2135 } |
2143 } |
2136 |
2144 |
2137 const CTestConfigSection* CSimSmsMessaging::CfgFileSection() |
2145 const CTestConfigSection* CSimSmsMessaging::CfgFileSection() |
2138 /** |
2146 /** |
2139 * Returns a pointer to the config file section |
2147 * Returns a pointer to the config file section |
2140 * |
2148 * |
2141 * @return CTestConfigSection a pointer to the configuration file data section |
2149 * @return CTestConfigSection a pointer to the configuration file data section |
2142 */ |
2150 */ |
2143 { |
2151 { |
2144 LOGSMS1(">>CSimSmsMessaging::CfgFileSection"); |
2152 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_CFGFILESECTION_1, ">>CSimSmsMessaging::CfgFileSection"); |
2145 return iPhone->CfgFile(); |
2153 return iPhone->CfgFile(); |
2146 } |
2154 } |
2147 |
2155 |
2148 |
2156 |
2149 void CSimSmsMessaging::ReloadConfigurationSettingsL() |
2157 void CSimSmsMessaging::ReloadConfigurationSettingsL() |
2206 @param aText - a header line about the PDU. |
2214 @param aText - a header line about the PDU. |
2207 @param aSmsPdu - PDU to log. |
2215 @param aSmsPdu - PDU to log. |
2208 @param aPduInAscii - aSmsPdu in ASCII format (default NULL). |
2216 @param aPduInAscii - aSmsPdu in ASCII format (default NULL). |
2209 */ |
2217 */ |
2210 { |
2218 { |
2211 LOGSMS3("%S pdu length=%d", &aText, aSmsPdu.Length()); |
2219 #if (OST_TRACE_CATEGORY & OST_TRACE_CATEGORY_DEBUG) // to stop the UREL build warnings |
|
2220 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_DUMPPDU1_1, "%s pdu length=%d", aText, aSmsPdu.Length()); |
|
2221 #endif |
2212 |
2222 |
2213 if( !aSmsPdu.Length() ) |
2223 if( !aSmsPdu.Length() ) |
2214 return; |
2224 return; |
2215 |
2225 |
2216 // In sendPdu case, caller needs to call PduToAscii for comparison. |
2226 // In sendPdu case, caller needs to call PduToAscii for comparison. |
2222 //Print the pdu in a loop because LOGTEXT can only print up to 150 characters |
2232 //Print the pdu in a loop because LOGTEXT can only print up to 150 characters |
2223 for (TInt i = 0; i < hexBuf->Length(); i+=100) |
2233 for (TInt i = 0; i < hexBuf->Length(); i+=100) |
2224 { |
2234 { |
2225 TInt len = Min(100, hexBuf->Mid(i).Length()); |
2235 TInt len = Min(100, hexBuf->Mid(i).Length()); |
2226 TPtrC8 pduChunk(hexBuf->Mid(i).Left(len).Ptr(), len); |
2236 TPtrC8 pduChunk(hexBuf->Mid(i).Left(len).Ptr(), len); |
2227 LOGSMS2("PDU Chunk: %S:", &pduChunk); |
2237 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_DUMPPDU1_2, "PDU Chunk: %s:", pduChunk); |
2228 } |
2238 } |
2229 |
2239 |
2230 if (0 == aPduInAscii) |
2240 if (0 == aPduInAscii) |
2231 delete hexBuf; |
2241 delete hexBuf; |
2232 } |
2242 } |
2233 |
2243 |
2234 #ifdef _DEBUG |
2244 #if (OST_TRACE_CATEGORY & OST_TRACE_CATEGORY_DEBUG) |
2235 |
2245 |
2236 /** |
2246 /** |
2237 Appends Type of number and Numbering plan identification to TBuf8 buffer. |
2247 Appends Type of number and Numbering plan identification to TBuf8 buffer. |
2238 |
2248 |
2239 @param aBuffer Name of aTon will be appended to this buffer. |
2249 @param aBuffer Name of aTon will be appended to this buffer. |
2355 _LIT8(KMSGREF, " iMsgRef: "); |
2365 _LIT8(KMSGREF, " iMsgRef: "); |
2356 _LIT8(KSUBMITREP, " iSubmitRep: "); |
2366 _LIT8(KSUBMITREP, " iSubmitRep: "); |
2357 |
2367 |
2358 TBuf8<KTextWidth> buffer; |
2368 TBuf8<KTextWidth> buffer; |
2359 |
2369 |
2360 LOGSMS1("Send Sms Attributes:"); |
2370 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_1, "Send Sms Attributes:"); |
2361 |
2371 |
2362 buffer.Zero(); |
2372 buffer.Zero(); |
2363 buffer.Copy(KFLAGS); |
2373 buffer.Copy(KFLAGS); |
2364 buffer.Append(_L8("0x")); |
2374 buffer.Append(_L8("0x")); |
2365 buffer.AppendFormat(_L8("%08X") , ((TInt)(aSmsAttributesV1.iFlags))); |
2375 buffer.AppendFormat(_L8("%08X") , ((TInt)(aSmsAttributesV1.iFlags))); |
2366 LOGSMS2("Buffer: %S", &buffer); |
2376 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_2, "Buffer: %s", buffer); |
2367 |
2377 |
2368 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KGsmServiceCentre) |
2378 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KGsmServiceCentre) |
2369 { |
2379 { |
2370 buffer.Zero(); |
2380 buffer.Zero(); |
2371 buffer.Copy(KSCADDR); |
2381 buffer.Copy(KSCADDR); |
2372 buffer.Append(aSmsAttributesV1.iGsmServiceCentre.iTelNumber); |
2382 buffer.Append(aSmsAttributesV1.iGsmServiceCentre.iTelNumber); |
2373 LOGSMS2("buffer: %S", &buffer); |
2383 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_3, "Buffer: %s", buffer); |
2374 |
2384 |
2375 buffer.Zero(); |
2385 buffer.Zero(); |
2376 buffer.Copy(KSCADDRTON); |
2386 buffer.Copy(KSCADDRTON); |
2377 AppendTonToBuffer(buffer,(aSmsAttributesV1.iGsmServiceCentre.iTypeOfNumber)); |
2387 AppendTonToBuffer(buffer,(aSmsAttributesV1.iGsmServiceCentre.iTypeOfNumber)); |
2378 LOGSMS2("buffer: %S", &buffer); |
2388 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_4, "Buffer: %s", buffer);; |
2379 |
2389 |
2380 buffer.Zero(); |
2390 buffer.Zero(); |
2381 buffer.Copy(KSCADDRNPI); |
2391 buffer.Copy(KSCADDRNPI); |
2382 AppendNpiToBuffer(buffer,(aSmsAttributesV1.iGsmServiceCentre.iNumberPlan)); |
2392 AppendNpiToBuffer(buffer,(aSmsAttributesV1.iGsmServiceCentre.iNumberPlan)); |
2383 LOGSMS2("buffer: %S", &buffer); |
2393 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_5, "Buffer: %s", buffer); |
2384 } |
2394 } |
2385 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KSmsDataFormat) |
2395 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KSmsDataFormat) |
2386 { |
2396 { |
2387 buffer.Zero(); |
2397 buffer.Zero(); |
2388 buffer.Copy(KDATAFORMAT); |
2398 buffer.Copy(KDATAFORMAT); |
2392 } |
2402 } |
2393 else if(aSmsAttributesV1.iDataFormat == RMobileSmsMessaging::EFormatGsmTpdu) |
2403 else if(aSmsAttributesV1.iDataFormat == RMobileSmsMessaging::EFormatGsmTpdu) |
2394 { |
2404 { |
2395 buffer.Append(_L("EFormatGsmTpdu")); |
2405 buffer.Append(_L("EFormatGsmTpdu")); |
2396 } |
2406 } |
2397 LOGSMS2("buffer: %S", &buffer); |
2407 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_6, "Buffer: %s", buffer); |
2398 } |
2408 } |
2399 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KRemotePartyInfo) |
2409 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KRemotePartyInfo) |
2400 { |
2410 { |
2401 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2411 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2402 |
2412 |
2403 buffer.Zero(); |
2413 buffer.Zero(); |
2404 buffer.Copy(KDEADDR); |
2414 buffer.Copy(KDEADDR); |
2405 buffer.Append(smsSendAttributesV1.iDestination.iTelNumber); |
2415 buffer.Append(smsSendAttributesV1.iDestination.iTelNumber); |
2406 LOGSMS2("buffer: %S", &buffer); |
2416 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_7, "Buffer: %s", buffer); |
2407 |
2417 |
2408 buffer.Zero(); |
2418 buffer.Zero(); |
2409 buffer.Copy(KDEADDRTON); |
2419 buffer.Copy(KDEADDRTON); |
2410 AppendTonToBuffer(buffer,(smsSendAttributesV1.iDestination.iTypeOfNumber)); |
2420 AppendTonToBuffer(buffer,(smsSendAttributesV1.iDestination.iTypeOfNumber)); |
2411 LOGSMS2("buffer: %S", &buffer); |
2421 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_8, "Buffer: %s", buffer); |
2412 |
2422 |
2413 buffer.Zero(); |
2423 buffer.Zero(); |
2414 buffer.Copy(KDEADDRNPI); |
2424 buffer.Copy(KDEADDRNPI); |
2415 AppendNpiToBuffer(buffer,(smsSendAttributesV1.iDestination.iNumberPlan)); |
2425 AppendNpiToBuffer(buffer,(smsSendAttributesV1.iDestination.iNumberPlan)); |
2416 LOGSMS2("buffer: %S", &buffer); |
2426 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_9, "Buffer: %s", buffer); |
2417 } |
2427 } |
2418 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KMoreToSend) |
2428 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KMoreToSend) |
2419 { |
2429 { |
2420 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2430 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2421 |
2431 |
2428 } |
2438 } |
2429 else |
2439 else |
2430 { |
2440 { |
2431 buffer.Append(_L8("EFalse")); |
2441 buffer.Append(_L8("EFalse")); |
2432 } |
2442 } |
2433 LOGSMS2("buffer: %S", &buffer); |
2443 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_10, "Buffer: %s", buffer); |
2434 } |
2444 } |
2435 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KMessageReference) |
2445 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KMessageReference) |
2436 { |
2446 { |
2437 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2447 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2438 |
2448 |
2439 buffer.Zero(); |
2449 buffer.Zero(); |
2440 buffer.Copy(KMSGREF); |
2450 buffer.Copy(KMSGREF); |
2441 buffer.Append(_L("0x")); |
2451 buffer.Append(_L("0x")); |
2442 buffer.AppendFormat(_L8("%08X") , smsSendAttributesV1.iMsgRef); |
2452 buffer.AppendFormat(_L8("%08X") , smsSendAttributesV1.iMsgRef); |
2443 LOGSMS2("buffer: %S", &buffer); |
2453 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMSMESSAGING_LOGTMOBILESMSATTRIBUTESV1_11, "Buffer: %s", buffer); |
2444 } |
2454 } |
2445 |
2455 |
2446 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KGsmSubmitReport) |
2456 if(aSmsAttributesV1.iFlags & RMobileSmsMessaging::KGsmSubmitReport) |
2447 { |
2457 { |
2448 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |
2458 const RMobileSmsMessaging::TMobileSmsSendAttributesV1& smsSendAttributesV1 = static_cast<const RMobileSmsMessaging::TMobileSmsSendAttributesV1&> (aSmsAttributesV1); |