telutils/phoneparser/src/PhoneGsmParser.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
--- a/telutils/phoneparser/src/PhoneGsmParser.cpp	Tue Aug 31 15:45:17 2010 +0300
+++ b/telutils/phoneparser/src/PhoneGsmParser.cpp	Wed Sep 01 12:15:03 2010 +0100
@@ -17,29 +17,32 @@
 
 
 // INCLUDE FILES
-#include    "phonegsmparser.h" 
-#include    "cphonegsmparser.h" 
-#include    "cphonegsmparserbase.h" 
-#include    "cphonegsmparserresult.h" 
-#include    "cphonegsmoptioncontainer.h" 
+#include    "PhoneGsmParser.h"
+#include    "CPhoneGsmParser.h"
+#include    "CPhoneGsmParserBase.h"
+#include    "CPhoneGsmParserResult.h"
+#include    "CPhoneGsmOptionContainer.h"
 
-#include    "cphonegsmparsercontainer.h" 
-#include    "cphonegsmssparser.h" 
-#include    "cphonegsmsimcontrolparser.h" 
-#include    "cphonegsmphonenumberparser.h" 
-#include    "cphonegsmsscallparser.h" 
-#include    "cphonegsmmanufacturerparser.h" 
-#include    "cphonegsmpcnprocedureparser.h" 
-#include    "cphonegsmmanufacturerhandler.h" 
-#include    "cphonegsmemergencynumberparser.h" 
-#include    "cphoneparserfeatures.h" 
-#include    "cphonevoipnumberparser.h" 
+#include    "CPhoneGsmParserContainer.h"
+#include    "CPhoneGsmSsParser.h"
+#include    "CPhoneGsmSimControlParser.h"
+#include    "CPhoneGsmPhoneNumberParser.h"
+#include    "CPhoneGsmSsCallParser.h"
+#include    "CPhoneGsmManufacturerParser.h"
+#include    "CPhoneGsmPcnProcedureParser.h"
+#include    "CPhoneGsmManufacturerHandler.h"
+#include    "CPhoneGsmEmergencyNumberParser.h"
+#include    "CPhoneParserFeatures.h"
+#include    "CPhoneVoipNumberParser.h"
+#include    "CPhoneGsmImeiParser.h"
+
 
 // CONSTANTS
 const TInt KPhoneParserResultParameterReserver = 10;
 _LIT( KPhoneParserPanic, "PhoneParser" );
 
 // Software version display code
+_LIT( KPhoneCodeSwVersion, "*#0000#" );
 _LIT( KPhoneCodeBadPinChange, "**04*" );
 _LIT( KPhoneCodeBadPin2Change, "**042*" );
 _LIT( KPhoneCodeBadPinUnblock, "**05*" );
@@ -47,6 +50,7 @@
 _LIT( KPhoneCodeActivateRfsNormal, "*#7780#" );
 _LIT( KPhoneCodeActivateRfsDeep, "*#7370#" );
 _LIT( KPhoneCodeBtAddress, "*#2820#" );
+_LIT( KPhoneCodeLifeTimer, "*#92702689#" );
 _LIT( KPhoneCodeRFLoopback, "*#9990#" );
 _LIT( KPhoneCodeWLANMAC, "*#62209526#" );
 _LIT( KPhoneCodeBtDebugMode, "*#2873#" );
@@ -95,6 +99,10 @@
     CPhoneGsmParserBase* voipNumberParser =
         CPhoneVoipNumberParser::NewLC();
     
+    // 7. IMEI PARSER TO STACK
+    CPhoneGsmParserBase* imeiParser =
+        CPhoneGsmImeiParser::NewLC();
+    
     CPhoneGsmParser* parser = 
         CPhoneGsmParser::NewL(
             ssContainer, 
@@ -102,9 +110,10 @@
             phoneNumber,
             manufacturerSpecific,
             emergencyNumberParser,
-            voipNumberParser);
+            voipNumberParser,
+            imeiParser );
 
-    CleanupStack::Pop( 6, ssContainer );
+    CleanupStack::Pop( 7, ssContainer );
 
     return parser;
     }
@@ -224,11 +233,13 @@
     
     // Allowed:
     //      0 SEND
-    //      All manufacturer codes
+    //      IMEI
+    //      All manufacturer codes (incl. SW version)
     //      All sim control procedures
     //      All pcn procedures
     
     return ( uid == KPhoneUidCommand0 ||
+             uid == KPhoneUidIMEI ||
              uid == KPhoneUidManufacturerDebugCode ||
              uid == KPhoneUidManufacturerCode || 
              PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidSimControlProcedure ||
@@ -247,14 +258,18 @@
 
     // Allowed:
     //      DialEmergency
-    //      Some manufacturer codes
+    //      IMEI
+    //      Some manufacturer codes (incl. SW version)
     //      All sim control procedures
     //      All pcn procedures
     
     return ( uid == KPhoneUidEmergencyNumber ||
+             uid == KPhoneUidIMEI ||
              uid == KPhoneUidManufacturerDebugCode ||
              ( uid == KPhoneUidManufacturerCode && 
-               ( aux == CPhoneGsmManufacturerHandler::EBadPinChange ||
+               ( aux == CPhoneGsmManufacturerHandler::EShowVersion ||
+                 aux == CPhoneGsmManufacturerHandler::ELifeTimer ||
+                 aux == CPhoneGsmManufacturerHandler::EBadPinChange ||
                  aux == CPhoneGsmManufacturerHandler::EBadPin2Change ||
                  aux == CPhoneGsmManufacturerHandler::EBadPinUnblock ||
                  aux == CPhoneGsmManufacturerHandler::EBadPin2Unblock ) ) ||
@@ -311,6 +326,11 @@
     manufacturer->AddL( *manuCodes );
     CleanupStack::Pop( manuCodes );
 
+    manuCodes->AddStringL(
+        KPhoneCodeSwVersion, 
+        CPhoneGsmManufacturerParser::EFlagCode,
+        CPhoneGsmManufacturerHandler::EShowVersion );
+
     manuCodes->AddStringL( 
         KPhoneCodeBadPinChange,
         CPhoneGsmManufacturerParser::EFlagCode + 
@@ -355,7 +375,15 @@
         KPhoneCodeWLANMAC, 
         CPhoneGsmManufacturerParser::EFlagCode,
         CPhoneGsmManufacturerHandler::EShowWlanMac,
-        KFeatureIdProtocolWlan );       
+        KFeatureIdProtocolWlan );		
+
+    if ( CPhoneParserFeatures::LifeTimerEnabled())
+        {
+        manuCodes->AddStringL( 
+            KPhoneCodeLifeTimer,
+            CPhoneGsmManufacturerParser::EFlagCode,
+            CPhoneGsmManufacturerHandler::ELifeTimer );
+        }
 
     manuCodes->AddStringL( 
         KPhoneCodeRFLoopback,