telephonyserverplugins/simatktsy/src/csatcctsy.cpp
branchRCL_3
changeset 65 630d2f34d719
parent 0 3553901f7fa8
child 66 07a122eea281
equal deleted inserted replaced
61:17af172ffa5f 65:630d2f34d719
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2006-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".
    19 
    19 
    20 
    20 
    21 
    21 
    22 
    22 
    23 //INCLUDES
    23 //INCLUDES
       
    24 
       
    25 #include "OstTraceDefinitions.h"
       
    26 #ifdef OST_TRACE_COMPILER_IN_USE
       
    27 #include "csatcctsyTraces.h"
       
    28 #endif
       
    29 
    24 #include "etelsat.h"                // SAT specific Etel definitions
    30 #include "etelsat.h"                // SAT specific Etel definitions
    25 #include "CSatDataPackage.h"        // Parameter packing 
    31 #include "CSatDataPackage.h"        // Parameter packing 
    26 #include "CSatCCTsy.h"              // Class header
    32 #include "CSatCCTsy.h"              // Class header
    27 #include "CSatTsy.h"                // SAT TSY general class
    33 #include "CSatTsy.h"                // SAT TSY general class
    28 #include "CSatNotificationsTsy.h"   // SAT TSY Notifications class
    34 #include "CSatNotificationsTsy.h"   // SAT TSY Notifications class
    29 #include "cmmmessagemanagerbase.h"  // Message manager class for forwarding req.
    35 #include "cmmmessagemanagerbase.h"  // Message manager class for forwarding req.
    30 #include "TfLogger.h"               // For TFLOGSTRING
       
    31 #include "msattsy_ipcdefs.h"		// Sat Tsy specific request types
    36 #include "msattsy_ipcdefs.h"		// Sat Tsy specific request types
    32 #include "TSatUtility.h"			// Utility class
    37 #include "TSatUtility.h"			// Utility class
    33 #include "TTlv.h"					// TTlv class
    38 #include "TTlv.h"					// TTlv class
    34 
    39 
    35 
    40 
    42         (    
    47         (    
    43         CSatTsy* aSatTsy,
    48         CSatTsy* aSatTsy,
    44         CSatNotificationsTsy* aNotificationsTsy   
    49         CSatNotificationsTsy* aNotificationsTsy   
    45         )
    50         )
    46     {
    51     {
    47     TFLOGSTRING("CSAT: CSatCCTsy::NewL");
    52     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_NEWL_1, "CSAT: CSatCCTsy::NewL");
    48     CSatCCTsy* const satCcTsy = new ( ELeave ) CSatCCTsy( aNotificationsTsy );
    53     CSatCCTsy* const satCcTsy = new ( ELeave ) CSatCCTsy( aNotificationsTsy );
    49     CleanupStack::PushL( satCcTsy );
    54     CleanupStack::PushL( satCcTsy );
    50     satCcTsy->iSatTsy = aSatTsy;
    55     satCcTsy->iSatTsy = aSatTsy;
    51     satCcTsy->ConstructL();
    56     satCcTsy->ConstructL();
    52     CleanupStack::Pop( satCcTsy );
    57     CleanupStack::Pop( satCcTsy );
    53     TFLOGSTRING("CSAT: CSatCCTsy::NewL, end of method");
    58     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_NEWL_2, "CSAT: CSatCCTsy::NewL, end of method");
    54     return satCcTsy;
    59     return satCcTsy;
    55     }
    60     }
    56 
    61 
    57 // -----------------------------------------------------------------------------
    62 // -----------------------------------------------------------------------------
    58 // CSatCCTsy::~CSatCCTsy
    63 // CSatCCTsy::~CSatCCTsy
    62 CSatCCTsy::~CSatCCTsy
    67 CSatCCTsy::~CSatCCTsy
    63         (    
    68         (    
    64         //None   
    69         //None   
    65         )
    70         )
    66     {
    71     {
    67     TFLOGSTRING("CSAT: CSatCCTsy::~CSatCCTsy");
    72     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_DTOR_1, "CSAT: CSatCCTsy::~CSatCCTsy");
    68     // Unregister.
    73     // Unregister.
    69     iSatTsy->MessageManager()->RegisterTsyObject(
    74     iSatTsy->MessageManager()->RegisterTsyObject(
    70 		CMmMessageManagerBase::ESatCCTsyObjType, NULL );
    75 		CMmMessageManagerBase::ESatCCTsyObjType, NULL );
    71     }
    76     }
    72     
    77     
    78 void CSatCCTsy::ConstructL
    83 void CSatCCTsy::ConstructL
    79         (    
    84         (    
    80         //None
    85         //None
    81         )
    86         )
    82     {
    87     {
    83     TFLOGSTRING("CSAT: CSatCCTsy::ConstructL\n" );
    88     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CONSTRUCTL_1, "CSAT: CSatCCTsy::ConstructL\n" );
    84     // Register.
    89     // Register.
    85     iSatTsy->MessageManager()->RegisterTsyObject(
    90     iSatTsy->MessageManager()->RegisterTsyObject(
    86 		CMmMessageManagerBase::ESatCCTsyObjType, this );
    91 		CMmMessageManagerBase::ESatCCTsyObjType, this );
    87 	iBearerData.Zero();
    92 	iBearerData.Zero();
    88 	// Initialize to false
    93 	// Initialize to false
   115          (
   120          (
   116 		 CSatDataPackage* aDataPackage, 
   121 		 CSatDataPackage* aDataPackage, 
   117 		 TInt /*aResult*/
   122 		 TInt /*aResult*/
   118 		 )
   123 		 )
   119     {
   124     {
   120     TFLOGSTRING("CSAT: CSatCCTsy::CompleteBearerCapability");
   125     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_COMPLETEBEARERCAPABILITY_1, "CSAT: CSatCCTsy::CompleteBearerCapability");
   121     TPtrC8* bearerData = NULL;
   126     TPtrC8* bearerData = NULL;
   122 
   127 
   123     // Unpack parameters 
   128     // Unpack parameters 
   124     aDataPackage->UnPackData( &bearerData );
   129     aDataPackage->UnPackData( &bearerData );
   125     iBearerData.Copy( *bearerData );
   130     iBearerData.Copy( *bearerData );
   132 void CSatCCTsy::CreateEnvelopeL
   137 void CSatCCTsy::CreateEnvelopeL
   133         (
   138         (
   134         CSatDataPackage* aDataPackage
   139         CSatDataPackage* aDataPackage
   135         )
   140         )
   136     {
   141     {
   137     TFLOGSTRING("CSAT: CSatCCTsy::CreateEnvelope");
   142     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATEENVELOPEL_1, "CSAT: CSatCCTsy::CreateEnvelope");
   138     TCCInfo* ccInfo;
   143     TCCInfo* ccInfo;
   139     
   144     
   140     // Unpack parameters
   145     // Unpack parameters
   141     aDataPackage->UnPackData( &ccInfo );
   146     aDataPackage->UnPackData( &ccInfo );
   142     
   147     
   157             CreateUSSDEnvelopeL( ccInfo );
   162             CreateUSSDEnvelopeL( ccInfo );
   158             break;
   163             break;
   159             }
   164             }
   160         default:
   165         default:
   161             {
   166             {
   162             TFLOGSTRING2("CSAT: CSatCCTsy::CreateEnvelope,\
   167             OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATEENVELOPEL_2, "CSAT: CSatCCTsy::CreateEnvelope, Unidentified tag: %d", ccInfo->iTag );
   163                 Unidentified tag: %d", ccInfo->iTag );
       
   164             }
   168             }
   165         }
   169         }
   166     }
   170     }
   167 
   171 
   168 // -----------------------------------------------------------------------------
   172 // -----------------------------------------------------------------------------
   173 void CSatCCTsy::CheckIfAlphaIdPresent
   177 void CSatCCTsy::CheckIfAlphaIdPresent
   174         (
   178         (
   175         CSatDataPackage* aDataPackage
   179         CSatDataPackage* aDataPackage
   176         )
   180         )
   177     {
   181     {
   178     TFLOGSTRING("CSAT: CSatCCTsy::CheckIfAlphaIdPresent"); 
   182     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CHECKIFALPHAIDPRESENT_1, "CSAT: CSatCCTsy::CheckIfAlphaIdPresent");
   179     TDesC8* atkData;            
   183     TDesC8* atkData;            
   180     RSat::TControlResult* result;
   184     RSat::TControlResult* result;
   181     
   185     
   182     // Unpack parameters
   186     // Unpack parameters
   183     aDataPackage->UnPackData( &atkData, &result );
   187     aDataPackage->UnPackData( &atkData, &result );
   265                         // identifier is not given or it is NULL, client will not 
   269                         // identifier is not given or it is NULL, client will not 
   266                         // be notified. Specs leaves this open so this decision 
   270                         // be notified. Specs leaves this open so this decision 
   267                         // can be made.
   271                         // can be made.
   268                         if ( 0 != alphaIdLength )
   272                         if ( 0 != alphaIdLength )
   269                             {
   273                             {
   270                             TFLOGSTRING("CSAT: CSatCCTsy::CheckIfAlphaIdPresent.\
   274                             OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CHECKIFALPHAIDPRESENT_2, "CSAT: CSatCCTsy::CheckIfAlphaIdPresent. inform user.");
   271                                 inform user.");
       
   272 
   275 
   273                             TPtrC8 sourceString;
   276                             TPtrC8 sourceString;
   274                             sourceString.Set( ( *atkData ).Mid( index + 
   277                             sourceString.Set( ( *atkData ).Mid( index + 
   275                                 lengthOfLength, alphaIdLength ) );
   278                                 lengthOfLength, alphaIdLength ) );
   276 
   279 
   281                             iNotificationsTsy->NotifyClientForAlphaId( alphaId, 
   284                             iNotificationsTsy->NotifyClientForAlphaId( alphaId, 
   282                                 *result );
   285                                 *result );
   283                             }
   286                             }
   284                         else
   287                         else
   285                             {
   288                             {
   286                             TFLOGSTRING("CSAT: CSatCCTsy::CheckIfAlphaIdPresent.\
   289                             OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CHECKIFALPHAIDPRESENT_3, "CSAT: CSatCCTsy::CheckIfAlphaIdPresent. AlphaID length: 0.");
   287                                 AlphaID length: 0.");
       
   288                             }
   290                             }
   289 
   291 
   290                         // Update index
   292                         // Update index
   291                         index += alphaIdLength + lengthOfLength;
   293                         index += alphaIdLength + lengthOfLength;
   292                         break;
   294                         break;
   293                         }
   295                         }
   294                     default:
   296                     default:
   295                         {
   297                         {
   296                         TFLOGSTRING("CSAT: CSatCCTsy::CheckIfAlphaIdPresent\
   298                         OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CHECKIFALPHAIDPRESENT_4, "CSAT: CSatCCTsy::CheckIfAlphaIdPresent Unknown tag.");
   297                             Unknown tag.");
       
   298                         index = envLength;
   299                         index = envLength;
   299                         break;
   300                         break;
   300                         }
   301                         }
   301                     }
   302                     }
   302                 }
   303                 }
   303             }
   304             }
   304         }
   305         }
   305     else
   306     else
   306         {
   307         {
   307         TFLOGSTRING("CSAT: CSatCCTsy::CheckIfAlphaIdPresent. \
   308         OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CHECKIFALPHAIDPRESENT_5, "CSAT: CSatCCTsy::CheckIfAlphaIdPresent. Input data missing!");
   308             Input data missing!");
       
   309         }
   309         }
   310     }
   310     }
   311     
   311     
   312 // -----------------------------------------------------------------------------
   312 // -----------------------------------------------------------------------------
   313 // CSatCCTsy::CompleteCCEventL
   313 // CSatCCTsy::CompleteCCEventL
   318         (
   318         (
   319         TInt aIpc,
   319         TInt aIpc,
   320         CSatDataPackage* aDataPackage 
   320         CSatDataPackage* aDataPackage 
   321         )
   321         )
   322     {
   322     {
   323     TFLOGSTRING2("CSAT: CSatCCTsy::CompleteCCEventL, aIpc: %d", aIpc);
   323     OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_COMPLETECCEVENTL_1, "CSAT: CSatCCTsy::CompleteCCEventL, aIpc: %d", aIpc);
   324     TCCInfo* ccInfo;
   324     TCCInfo* ccInfo;
   325     
   325     
   326     // Unpack parameters
   326     // Unpack parameters
   327     aDataPackage->UnPackData( &ccInfo );
   327     aDataPackage->UnPackData( &ccInfo );
   328     
   328     
   385             CreateUSSDEnvelopeL( ccInfo );
   385             CreateUSSDEnvelopeL( ccInfo );
   386             break;
   386             break;
   387             }
   387             }
   388         default:
   388         default:
   389             {
   389             {
   390             TFLOGSTRING("CSAT: CSatCCTsy::CompleteCCEventL, Unknown event!");
   390             OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_COMPLETECCEVENTL_2, "CSAT: CSatCCTsy::CompleteCCEventL, Unknown event!");
   391             }
   391             }
   392         }
   392         }
   393     }   
   393     }   
   394     	
   394     	
   395 // -----------------------------------------------------------------------------
   395 // -----------------------------------------------------------------------------
   402 void CSatCCTsy::SetTonNpiForSS
   402 void CSatCCTsy::SetTonNpiForSS
   403         ( 
   403         ( 
   404         const TUint8 aTonNpi 
   404         const TUint8 aTonNpi 
   405         )
   405         )
   406     {
   406     {
   407     TFLOGSTRING("CSAT: CSatCCTsy::SetTonNpiForSS");
   407     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_SETTONNPIFORSS_1, "CSAT: CSatCCTsy::SetTonNpiForSS");
   408     iTonNpiForSS = aTonNpi;
   408     iTonNpiForSS = aTonNpi;
   409     iTonNpiPresent = ETrue;
   409     iTonNpiPresent = ETrue;
   410     }
   410     }
   411 
   411 
   412 // -----------------------------------------------------------------------------
   412 // -----------------------------------------------------------------------------
   417 void CSatCCTsy::SetUssdStatus
   417 void CSatCCTsy::SetUssdStatus
   418 		( 
   418 		( 
   419     	CSatDataPackage* aDataPackage
   419     	CSatDataPackage* aDataPackage
   420     	)
   420     	)
   421     { 
   421     { 
   422     TFLOGSTRING("CSAT: CSatCCTsy::SetUssdStatus." );    
   422     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_SETUSSDSTATUS_1, "CSAT: CSatCCTsy::SetUssdStatus." );
   423     // Unpack parameters 
   423     // Unpack parameters 
   424     aDataPackage->UnPackData( iUssdTlvSupported ); 
   424     aDataPackage->UnPackData( iUssdTlvSupported ); 
   425     }  
   425     }  
   426 
   426 
   427 // -----------------------------------------------------------------------------
   427 // -----------------------------------------------------------------------------
   434 void CSatCCTsy::StoreAddressForCC
   434 void CSatCCTsy::StoreAddressForCC
   435         ( 
   435         ( 
   436         const TDesC8& aAddress 
   436         const TDesC8& aAddress 
   437         )
   437         )
   438     {
   438     {
   439     TFLOGSTRING("CSAT: CSatCCTsy::StoreAddressForCC");
   439     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_STOREADDRESSFORCC_1, "CSAT: CSatCCTsy::StoreAddressForCC");
   440     
   440     
   441     if ( NULL == &aAddress )
   441     if ( NULL == &aAddress )
   442         {
   442         {
   443         iProactiveCommandAddress.Zero();
   443         iProactiveCommandAddress.Zero();
   444         TFLOGSTRING("CSAT: CSatCCTsy::StoreAddressForCC, address cleared");
   444         OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_STOREADDRESSFORCC_2, "CSAT: CSatCCTsy::StoreAddressForCC, address cleared");
   445         }
   445         }
   446     else
   446     else
   447         {
   447         {
   448         iProactiveCommandAddress.Copy( aAddress );
   448         iProactiveCommandAddress.Copy( aAddress );
   449         
   449         
   454             if ( '+' == iProactiveCommandAddress[0] )
   454             if ( '+' == iProactiveCommandAddress[0] )
   455                 {
   455                 {
   456                 iProactiveCommandAddress.Delete( 0, 1 );
   456                 iProactiveCommandAddress.Delete( 0, 1 );
   457                 }
   457                 }
   458             }
   458             }
   459         TFLOGSTRING("CSAT: CSatCCTsy::StoreAddressForCC, Address stored");
   459         OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_STOREADDRESSFORCC_3, "CSAT: CSatCCTsy::StoreAddressForCC, Address stored");
   460         }
   460         }
   461     }     
   461     }     
   462        
   462        
   463 // -----------------------------------------------------------------------------
   463 // -----------------------------------------------------------------------------
   464 // CSatCCTsy::CreateCallEnvelopeL
   464 // CSatCCTsy::CreateCallEnvelopeL
   468 void CSatCCTsy::CreateCallEnvelopeL
   468 void CSatCCTsy::CreateCallEnvelopeL
   469 		( 
   469 		( 
   470 		const TCCInfo* aCCInfo
   470 		const TCCInfo* aCCInfo
   471 		)
   471 		)
   472     {
   472     {
   473     TFLOGSTRING("CSAT: CSatCCTsy::CreateCallEnvelopeL" );
   473     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATECALLENVELOPEL_1, "CSAT: CSatCCTsy::CreateCallEnvelopeL" );
   474     // Create envelope
   474     // Create envelope
   475     TTlv envelope;
   475     TTlv envelope;
   476     envelope.Begin( KBerTlvCallControlTag );
   476     envelope.Begin( KBerTlvCallControlTag );
   477 
   477 
   478     // Device identities
   478     // Device identities
   525             envelope.AddByte( static_cast<TUint8>( iBearerData.Length() ) );
   525             envelope.AddByte( static_cast<TUint8>( iBearerData.Length() ) );
   526             envelope.AddData( iBearerData ); 
   526             envelope.AddData( iBearerData ); 
   527             }
   527             }
   528         else
   528         else
   529         	{
   529         	{
   530         	TFLOGSTRING("CSAT: CSatCCTsy::CreateCallEnvelopeL,\
   530         	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATECALLENVELOPEL_2, "CSAT: CSatCCTsy::CreateCallEnvelopeL, Bearer data length exceeded, data not added" );
   531         	    Bearer data length exceeded, data not added" );
       
   532         	}
   531         	}
   533         }
   532         }
   534 
   533 
   535 	// Add location information data
   534 	// Add location information data
   536 	iNotificationsTsy->AddLocationInformationToTlv( envelope );
   535 	iNotificationsTsy->AddLocationInformationToTlv( envelope );
   560 void CSatCCTsy::CreateSSEnvelopeL
   559 void CSatCCTsy::CreateSSEnvelopeL
   561 		( 
   560 		( 
   562 		const TCCInfo* aCCInfo
   561 		const TCCInfo* aCCInfo
   563 		)
   562 		)
   564     {
   563     {
   565     TFLOGSTRING("CSAT: CSatCCTsy::CreateSSEnvelopeL" );
   564     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATESSENVELOPEL_1, "CSAT: CSatCCTsy::CreateSSEnvelopeL" );
   566     // There is no TON and NPI in SS cc request. Information is part of the 
   565     // There is no TON and NPI in SS cc request. Information is part of the 
   567     // number string: Spec ETSI TS 122 030 v5.0.0 says that if number starts
   566     // number string: Spec ETSI TS 122 030 v5.0.0 says that if number starts
   568     // with +, TON is international and if it starts without it, it's unknown.
   567     // with +, TON is international and if it starts without it, it's unknown.
   569     // ( ATK isi spec mentions also possibility of no TON and NPI,but so far 
   568     // ( ATK isi spec mentions also possibility of no TON and NPI,but so far 
   570     // nothing found about it from ETSI specs. SS ISI spec mentions even more )
   569     // nothing found about it from ETSI specs. SS ISI spec mentions even more )
   692 void CSatCCTsy::CreateUSSDEnvelopeL
   691 void CSatCCTsy::CreateUSSDEnvelopeL
   693 		( 
   692 		( 
   694 		const TCCInfo* aCCInfo
   693 		const TCCInfo* aCCInfo
   695 		)
   694 		)
   696     {
   695     {
   697     TFLOGSTRING("CSAT: CSatCCTsy::CreateUSSDEnvelopeL" );
   696     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_CREATEUSSDENVELOPEL_1, "CSAT: CSatCCTsy::CreateUSSDEnvelopeL" );
   698     // Create USSD envelope
   697     // Create USSD envelope
   699     TTlv envelope;
   698     TTlv envelope;
   700         
   699         
   701     envelope.Begin( KBerTlvCallControlTag );
   700     envelope.Begin( KBerTlvCallControlTag );
   702     // Device identities
   701     // Device identities
   771 TBool CSatCCTsy::IsOnlyDigitsInUssd
   770 TBool CSatCCTsy::IsOnlyDigitsInUssd
   772         (
   771         (
   773         const TDesC8& aUSSDString
   772         const TDesC8& aUSSDString
   774         )
   773         )
   775     {    
   774     {    
   776     TFLOGSTRING("CSAT: CSatCCTsy::IsOnlyDigitsInUssd." );        
   775     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_ISONLYDIGITSINUSSD_1, "CSAT: CSatCCTsy::IsOnlyDigitsInUssd." );
   777     // Unpack it
   776     // Unpack it
   778     TBuf8<KMaxUssdStringLengthInBytes> ussdString;
   777     TBuf8<KMaxUssdStringLengthInBytes> ussdString;
   779     TSatUtility::Packed7to8Unpacked( aUSSDString, ussdString );    
   778     TSatUtility::Packed7to8Unpacked( aUSSDString, ussdString );    
   780     TBool ret( ETrue );
   779     TBool ret( ETrue );
   781     
   780     
   802 TBool CSatCCTsy::HasProactiveOrigin
   801 TBool CSatCCTsy::HasProactiveOrigin
   803         ( 
   802         ( 
   804         const TDesC8& aAddress 
   803         const TDesC8& aAddress 
   805         )
   804         )
   806     {
   805     {
   807     TFLOGSTRING("CSAT: CSatCCTsy::HasProactiveOrigin");
   806     OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_HASPROACTIVEORIGIN_1, "CSAT: CSatCCTsy::HasProactiveOrigin");
   808     TBool match( EFalse );
   807     TBool match( EFalse );
   809     
   808     
   810     if ( aAddress.Length() )
   809     if ( aAddress.Length() )
   811         {
   810         {
   812         // Check first if there is a + in the beginning of the given address
   811         // Check first if there is a + in the beginning of the given address
   813         if ( '+' == aAddress[0] )
   812         if ( '+' == aAddress[0] )
   814             {
   813             {
   815             // It means we need to drop the first character out from comparison
   814             // It means we need to drop the first character out from comparison
   816             if ( iProactiveCommandAddress == aAddress.Mid( 1 ) )
   815             if ( iProactiveCommandAddress == aAddress.Mid( 1 ) )
   817                 {
   816                 {
   818                 TFLOGSTRING("CSAT: CSatCCTsy::HasProactiveOrigin, Match!");
   817                 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_HASPROACTIVEORIGIN_2, "CSAT: CSatCCTsy::HasProactiveOrigin, Match!");
   819                 match = ETrue;
   818                 match = ETrue;
   820                 }
   819                 }
   821             }
   820             }
   822         // Otherwise we can use the whole string for checking
   821         // Otherwise we can use the whole string for checking
   823         else if ( iProactiveCommandAddress == aAddress )
   822         else if ( iProactiveCommandAddress == aAddress )
   824             {
   823             {
   825             TFLOGSTRING("CSAT: CSatCCTsy::HasProactiveOrigin, Match!");
   824             OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_HASPROACTIVEORIGIN_3, "CSAT: CSatCCTsy::HasProactiveOrigin, Match!");
   826             match = ETrue;
   825             match = ETrue;
   827             }
   826             }
   828         }
   827         }
   829     else
   828     else
   830         {
   829         {
   831         TFLOGSTRING("CSAT: CSatCCTsy::HasProactiveOrigin, \
   830         OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSATCCTSY_HASPROACTIVEORIGIN_4, "CSAT: CSatCCTsy::HasProactiveOrigin, Invalid input address");
   832             Invalid input address");
       
   833         }
   831         }
   834         
   832         
   835     return match;
   833     return match;
   836     }       
   834     }       
   837 
   835