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