phoneengine/callhandling/src/cpesystemcallstate.cpp
changeset 0 5f000ab63145
equal deleted inserted replaced
-1:000000000000 0:5f000ab63145
       
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  This file contains the implementation of CPESystemCallState class 
       
    15 *                member functions.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include <talogger.h>
       
    22 #include <pepanic.pan>
       
    23 #include <ctsydomainpskeys.h>
       
    24 
       
    25 #include "cpesystemcallstate.h"
       
    26 #include "cpecallarrayowner.h"
       
    27 #include "mpedatastore.h"
       
    28 #include "cpesinglecall.h"
       
    29 
       
    30 // EXTERNAL DATA STRUCTURES
       
    31 // None.
       
    32 
       
    33 // EXTERNAL FUNCTION PROTOTYPES  
       
    34 // None.
       
    35 
       
    36 // CONSTANTS
       
    37 // None.
       
    38 
       
    39 // MACROS
       
    40 // None.
       
    41 
       
    42 // LOCAL CONSTANTS AND MACROS
       
    43 // None.
       
    44 
       
    45 // MODULE DATA STRUCTURES
       
    46 // None.
       
    47 
       
    48 // LOCAL FUNCTION PROTOTYPES
       
    49 // None.
       
    50 
       
    51 // FORWARD DECLARATIONS
       
    52 // None.
       
    53 
       
    54 // ==================== LOCAL FUNCTIONS ====================
       
    55 // None.
       
    56 
       
    57 // ================= MEMBER FUNCTIONS =======================
       
    58 
       
    59 // -----------------------------------------------------------------------------
       
    60 // CPESystemCallState::CPESystemCallState
       
    61 // C++ default constructor can NOT contain any code, that
       
    62 // might leave.
       
    63 // -----------------------------------------------------------------------------
       
    64 //
       
    65 CPESystemCallState::CPESystemCallState( 
       
    66          CPECallArrayOwner& aCallArrayOwner,
       
    67          MPEDataStore& aDataStore ) : 
       
    68          iCallArrayOwner( aCallArrayOwner ),
       
    69          iDataStore( aDataStore ),
       
    70          iCallStateTsy( EPSCTsyCallStateUninitialized ),
       
    71          iCallTypeTsy( EPSCTsyCallTypeUninitialized )
       
    72     {
       
    73     }
       
    74 
       
    75 // Destructor
       
    76 CPESystemCallState::~CPESystemCallState()
       
    77     {
       
    78     TEFLOGSTRING( KTAOBJECT, 
       
    79         "CALL CPESystemCallState::~CPESystemCallState start" );
       
    80     iCallStateProperty.Close();
       
    81     iCallTypeProperty.Close();
       
    82     TEFLOGSTRING( KTAOBJECT, 
       
    83         "CALL CPESystemCallState::~CPESystemCallState complete" );
       
    84     }    
       
    85 
       
    86 // -----------------------------------------------------------------------------
       
    87 // CPESystemCallState::NewL
       
    88 // -----------------------------------------------------------------------------
       
    89 //
       
    90 CPESystemCallState* CPESystemCallState::NewL( 
       
    91         CPECallArrayOwner& aCallArrayOwner,
       
    92         MPEDataStore& aDataStore )
       
    93     {
       
    94     TEFLOGSTRING( KTAOBJECT,
       
    95          "CALL CPESystemCallState::NewL: start." );
       
    96     
       
    97     CPESystemCallState* self = new ( ELeave ) CPESystemCallState( aCallArrayOwner, aDataStore );
       
    98     CleanupStack::PushL( self );
       
    99     self->ConstructL();
       
   100     CleanupStack::Pop( self );
       
   101 
       
   102     TEFLOGSTRING( KTAOBJECT, 
       
   103         "CALL CPESystemCallState::NewL: complete." );
       
   104     
       
   105     return self;
       
   106     }
       
   107     
       
   108 // -----------------------------------------------------------------------------
       
   109 // CPESystemCallState::ConstructL
       
   110 // -----------------------------------------------------------------------------
       
   111 //
       
   112 void CPESystemCallState::ConstructL()
       
   113 
       
   114     {
       
   115     // Attach and initialize publish & subscribe properties
       
   116     TInt r( KErrNone );
       
   117     RProperty::TType type( RProperty::EInt );
       
   118     TSecurityPolicy readPolicy( ECapability_None );
       
   119     TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
       
   120     
       
   121     TEFLOGSTRING( KTAOBJECT,
       
   122          "CALL CPESystemCallState::ConstructL: start." );
       
   123     iCallStateInCenRep = EPSCTsyCallStateNone;
       
   124     iCallTypeInCenRep = EPSCTsyCallTypeNone;
       
   125     
       
   126     User::LeaveIfError( 
       
   127         iCallStateProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallState ) );  
       
   128     r =  iCallStateProperty.Set( iCallStateInCenRep );
       
   129     if ( KErrNotFound == r )
       
   130         {
       
   131         // Not defined yet - do so here
       
   132         User::LeaveIfError( RProperty::Define( KPSUidCtsyCallInformation, 
       
   133             KCTsyCallState, 
       
   134             type,
       
   135             readPolicy,
       
   136             writePolicy ) );
       
   137         r = iCallStateProperty.Set( iCallStateInCenRep );
       
   138         }
       
   139     User::LeaveIfError( r );
       
   140     
       
   141     User::LeaveIfError( 
       
   142         iCallTypeProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallType ) );   
       
   143     r =  iCallTypeProperty.Set( iCallTypeInCenRep );
       
   144     if ( KErrNotFound == r )
       
   145         {
       
   146         // Not defined yet - do so here
       
   147         User::LeaveIfError( RProperty::Define( KPSUidCtsyCallInformation, 
       
   148             KCTsyCallType, 
       
   149             type,
       
   150             readPolicy,
       
   151             writePolicy ) );
       
   152         r = iCallTypeProperty.Set( iCallTypeInCenRep );
       
   153         }
       
   154     User::LeaveIfError( r );
       
   155     
       
   156     TEFLOGSTRING( KTAOBJECT, 
       
   157         "CALL CPESystemCallState::ConstructL: complete." );
       
   158     }
       
   159     
       
   160 // -----------------------------------------------------------------------------
       
   161 // CPESystemCallState::CreateCallL
       
   162 // -----------------------------------------------------------------------------
       
   163 //
       
   164 void CPESystemCallState::NotifySystemCallStateChanged( 
       
   165         MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
       
   166         TInt aCallId )
       
   167     {
       
   168     TEFLOGSTRING3( 
       
   169         KTAINT, 
       
   170         "CALL CPECallHandling::NotifySystemCallStateChanged, message id: %d, call id: %d", 
       
   171         aMessage, 
       
   172         aCallId );
       
   173         
       
   174     iCallStateTsy = EPSCTsyCallStateUninitialized;
       
   175     iCallTypeTsy = EPSCTsyCallTypeUninitialized;
       
   176     TInt updateError( KErrNone );
       
   177     TInt updateErrorTsy( KErrNone );
       
   178     
       
   179     switch ( aMessage )
       
   180         {
       
   181         case MEngineMonitor::EPEMessageIncoming:
       
   182             HandleIncoming( aCallId );
       
   183             break;
       
   184         case MEngineMonitor::EPEMessageAnswering:
       
   185             HandleAnswering( aCallId );
       
   186             break;
       
   187         case MEngineMonitor::EPEMessageDialing:
       
   188             HandleDialling( aCallId );
       
   189             break;
       
   190         case MEngineMonitor::EPEMessageConnecting:
       
   191         case MEngineMonitor::EPEMessageConnectingWithInband:
       
   192             HandleConnecting( aCallId );
       
   193             break;
       
   194         case MEngineMonitor::EPEMessageConnected:
       
   195             HandleConnected( aCallId );
       
   196             break;
       
   197         case MEngineMonitor::EPEMessageDisconnecting:
       
   198         case MEngineMonitor::EPEMessageDisconnectingWithInband:
       
   199             HandleDisconnecting( aCallId );
       
   200             break;
       
   201         case MEngineMonitor::EPEMessageIdle:
       
   202             HandleIdle( aCallId );
       
   203             break;
       
   204         case MEngineMonitor::EPEMessageHeld:
       
   205             HandleHeld( aCallId );
       
   206             break;
       
   207         case MEngineMonitor::EPEMessageCallControlCapsChanged:
       
   208             HandleCallControlCapsChanged();
       
   209             break;
       
   210         case MEngineMonitor::EPEMessageRemotePartyInfoChanged:
       
   211             HandleRemotePartyChanged( aCallId );
       
   212             break;
       
   213         default:
       
   214             // Other messages cause no action.
       
   215             break;
       
   216         } 
       
   217 
       
   218     if ( iCallStateTsy != EPSCTsyCallStateUninitialized && 
       
   219          iCallStateTsy != iCallStateInCenRep )
       
   220         {
       
   221         TEFLOGSTRING2( 
       
   222             KTAREQOUT, 
       
   223             "CALL CPECallHandling::NotifySystemCallStateChanged request rproperty::set, Call State Tsy: %d", 
       
   224             iCallStateTsy );
       
   225         updateErrorTsy = RProperty::Set( KPSUidCtsyCallInformation, 
       
   226         KCTsyCallState, iCallStateTsy );
       
   227         iCallStateInCenRep = iCallStateTsy;
       
   228         }
       
   229 
       
   230     if ( iCallTypeTsy != EPSCTsyCallTypeUninitialized && 
       
   231          !updateError && 
       
   232          !updateErrorTsy && 
       
   233          iCallTypeTsy != iCallTypeInCenRep )
       
   234         {
       
   235         TEFLOGSTRING2( 
       
   236             KTAREQOUT, 
       
   237             "CALL CPECallHandling::NotifySystemCallStateChanged request rproperty::set, Call Type: %d", 
       
   238             iCallTypeTsy );
       
   239         updateError = iCallTypeProperty.Set( iCallTypeTsy );
       
   240         updateErrorTsy = RProperty::Set( KPSUidCtsyCallInformation, 
       
   241         KCTsyCallType, iCallTypeTsy );
       
   242         iCallTypeInCenRep = iCallTypeTsy;
       
   243         }
       
   244 
       
   245     if ( updateError || updateErrorTsy )
       
   246         {// Logs error - but does not return it
       
   247         TEFLOGSTRING2( 
       
   248             KTAERROR, 
       
   249             "CALL CPECallHandling::NOTIFYSYSTEMCALLSTATECHANGED: UNABLE TO UPDATE SYSTEM KEYS, ERROR = %d", 
       
   250             updateError || updateErrorTsy );
       
   251         }
       
   252     }
       
   253 
       
   254 // -----------------------------------------------------------------------------
       
   255 // CPESystemCallState::HandleIncoming
       
   256 // -----------------------------------------------------------------------------
       
   257 //
       
   258 void CPESystemCallState::HandleIncoming( TInt aCallId )
       
   259     {
       
   260     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleIncoming" );
       
   261     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   262     if( !callData )
       
   263         {
       
   264         TEFLOGSTRING2( 
       
   265             KTAERROR, 
       
   266             "CALL CPECallHandling::HandleIncoming: call not found, call id  = %d", 
       
   267             aCallId );
       
   268         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   269         return;
       
   270         }
       
   271     iCallStateTsy = EPSCTsyCallStateRinging;
       
   272     SetCallInformatioAPICallType( *callData );
       
   273     }
       
   274     
       
   275 // -----------------------------------------------------------------------------
       
   276 // CPESystemCallState::HandleDialling
       
   277 // -----------------------------------------------------------------------------
       
   278 //
       
   279 void CPESystemCallState::HandleDialling( TInt aCallId )
       
   280     {
       
   281     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleDialling" );
       
   282     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   283     if( !callData )
       
   284         {
       
   285         TEFLOGSTRING2( 
       
   286             KTAERROR, 
       
   287             "CALL CPECallHandling::HandleDialling: call not found, call id  = %d", 
       
   288             aCallId );
       
   289         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   290         return;
       
   291         }
       
   292     iCallStateTsy = EPSCTsyCallStateDialling;
       
   293     SetCallInformatioAPICallType( *callData );
       
   294     }
       
   295     
       
   296 // -----------------------------------------------------------------------------
       
   297 // CPESystemCallState::HandleConnected
       
   298 // -----------------------------------------------------------------------------
       
   299 //
       
   300 void CPESystemCallState::HandleConnected( TInt aCallId )
       
   301     {
       
   302     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleConnected" );
       
   303     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   304     if( !callData )
       
   305         {
       
   306         TEFLOGSTRING2( 
       
   307             KTAERROR, 
       
   308             "CALL CPECallHandling::HandleConnected: call not found, call id  = %d", 
       
   309             aCallId );
       
   310         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   311         return;
       
   312         }
       
   313     
       
   314     if ( !iCallArrayOwner.CallByState( EPEStateRinging ) )
       
   315         {
       
   316         iCallStateTsy = EPSCTsyCallStateConnected;
       
   317         // Needs update also CallType. Even when replace Video Call, see error ELYG-7AWC2N.    
       
   318         SetCallInformatioAPICallType( *callData );
       
   319         }
       
   320     }
       
   321 
       
   322 // -----------------------------------------------------------------------------
       
   323 // CPESystemCallState::HandleRemotePartyChanged
       
   324 // -----------------------------------------------------------------------------
       
   325 //
       
   326 void CPESystemCallState::HandleRemotePartyChanged( TInt aCallId )
       
   327     {
       
   328     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleRemotePartyChanged" );
       
   329     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   330     if( !callData )
       
   331         {
       
   332         TEFLOGSTRING2( 
       
   333             KTAERROR, 
       
   334             "CALL CPECallHandling::HandleRemotePartyChanged: call not found, call id  = %d", 
       
   335             aCallId );
       
   336         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   337         return;
       
   338         }
       
   339     CPESingleCall* connectedCallData = iCallArrayOwner.CallPointerByState( EPEStateConnected );
       
   340 
       
   341     if ( connectedCallData )
       
   342         {
       
   343         iCallStateTsy = EPSCTsyCallStateConnected;
       
   344         // Needs update also CallType. Even when replace Video Call, see error ELYG-7AWC2N.    
       
   345         SetCallInformatioAPICallType( *callData );
       
   346         }
       
   347     }
       
   348     
       
   349 // -----------------------------------------------------------------------------
       
   350 // CPESystemCallState::HandleDisconnecting
       
   351 // -----------------------------------------------------------------------------
       
   352 //
       
   353 void CPESystemCallState::HandleDisconnecting( TInt aCallId )
       
   354     {
       
   355     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleDisconnecting" );
       
   356     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   357     if( !callData )
       
   358         {
       
   359         TEFLOGSTRING2( 
       
   360             KTAERROR, 
       
   361             "CALL CPECallHandling::HandleDisconnecting: call not found, call id  = %d", 
       
   362             aCallId );
       
   363         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   364         return;
       
   365         }
       
   366     if ( !iCallArrayOwner.CallByState( EPEStateConnected ) &&
       
   367          !iCallArrayOwner.CallByState( EPEStateHeld ) &&
       
   368          !iCallArrayOwner.CallByState( EPEStateDialing ) && 
       
   369          !iCallArrayOwner.CallByState( EPEStateConnecting ) && 
       
   370          !iCallArrayOwner.CallByState( EPEStateRinging ) )
       
   371         {
       
   372         iCallStateTsy = EPSCTsyCallStateDisconnecting;
       
   373         SetCallInformatioAPICallType( *callData );
       
   374         }
       
   375     }
       
   376     
       
   377 // -----------------------------------------------------------------------------
       
   378 // CPESystemCallState::HandleIdle
       
   379 // -----------------------------------------------------------------------------
       
   380 //
       
   381 void CPESystemCallState::HandleIdle( TInt /*aCallId*/ )
       
   382     {
       
   383     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleIdle" );
       
   384     if ( !iCallArrayOwner.ActiveCallCount() )
       
   385         {
       
   386         iCallStateTsy = EPSCTsyCallStateNone;
       
   387         iCallTypeTsy = EPSCTsyCallTypeNone;
       
   388         }
       
   389     else
       
   390         {
       
   391          // There is other active / waiting call(s)
       
   392         CPESingleCall* ringingCallData = iCallArrayOwner.CallPointerByState( EPEStateRinging );
       
   393         if ( !ringingCallData )
       
   394             {
       
   395             CPESingleCall* connectedCallData = iCallArrayOwner.CallPointerByState( EPEStateConnected );
       
   396             CPESingleCall* heldCallData = iCallArrayOwner.CallPointerByState( EPEStateHeld );
       
   397             if ( connectedCallData )
       
   398                 {
       
   399                 iCallStateTsy = EPSCTsyCallStateConnected;
       
   400                 SetCallInformatioAPICallType( *connectedCallData );
       
   401                 }                    
       
   402             else if ( heldCallData )
       
   403                 {
       
   404                 iCallStateTsy = EPSCTsyCallStateHold;
       
   405                 SetCallInformatioAPICallType( *heldCallData );
       
   406                 }
       
   407             }
       
   408         else
       
   409             {
       
   410             iCallStateTsy = EPSCTsyCallStateRinging;
       
   411             SetCallInformatioAPICallType( *ringingCallData );
       
   412             }   
       
   413         }
       
   414     }
       
   415     
       
   416 // -----------------------------------------------------------------------------
       
   417 // CPESystemCallState::HandleHeld
       
   418 // -----------------------------------------------------------------------------
       
   419 //
       
   420 void CPESystemCallState::HandleHeld( TInt aCallId )
       
   421     {
       
   422     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleHeld" );
       
   423     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   424     if( !callData )
       
   425         {
       
   426         TEFLOGSTRING2( 
       
   427             KTAERROR, 
       
   428             "CALL CPECallHandling::HandleHeld: call not found, call id  = %d", 
       
   429             aCallId );
       
   430         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   431         return;
       
   432         }
       
   433 
       
   434     if( !iCallArrayOwner.CallByState( EPEStateDialing ) &&
       
   435         !iCallArrayOwner.CallByState( EPEStateRinging ) &&
       
   436         !iCallArrayOwner.CallByState( EPEStateConnecting ) &&
       
   437         !iCallArrayOwner.CallByState( EPEStateConnected )&&
       
   438         !iCallArrayOwner.CallByState( EPEStateAnswering ) )
       
   439         {
       
   440         iCallStateTsy = EPSCTsyCallStateHold;
       
   441         SetCallInformatioAPICallType( *callData );
       
   442         }
       
   443     }
       
   444 
       
   445 // -----------------------------------------------------------------------------
       
   446 // CPESystemCallState::HandleAnswering
       
   447 // -----------------------------------------------------------------------------
       
   448 //
       
   449 void CPESystemCallState::HandleAnswering( TInt aCallId )
       
   450     {
       
   451     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleAnswering" );
       
   452     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   453     if( !callData )
       
   454         {
       
   455         TEFLOGSTRING2( 
       
   456             KTAERROR, 
       
   457             "CALL CPECallHandling::HandleHeld: call not found, call id  = %d", 
       
   458             aCallId );
       
   459         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   460         return;
       
   461         }
       
   462     
       
   463     iCallStateTsy = EPSCTsyCallStateAnswering; 
       
   464     SetCallInformatioAPICallType( *callData );
       
   465     }
       
   466 
       
   467 // -----------------------------------------------------------------------------
       
   468 // CPESystemCallState::HandleConnecting
       
   469 // -----------------------------------------------------------------------------
       
   470 //
       
   471 void CPESystemCallState::HandleConnecting( TInt aCallId )
       
   472     {
       
   473     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleConnecting" );
       
   474     CPESingleCall* callData = iCallArrayOwner.GetCallObject( aCallId );
       
   475     if( !callData )
       
   476         {
       
   477         TEFLOGSTRING2( 
       
   478             KTAERROR, 
       
   479             "CALL CPECallHandling::HandleHeld: call not found, call id  = %d", 
       
   480             aCallId );
       
   481         __ASSERT_DEBUG( callData, Panic( EPEPanicCallDataNull) );
       
   482         return;
       
   483         }
       
   484     
       
   485     iCallStateTsy = EPSCTsyCallStateAlerting;
       
   486     SetCallInformatioAPICallType( *callData );
       
   487     }
       
   488 
       
   489 // -----------------------------------------------------------------------------
       
   490 // CPESystemCallState::HandleCallControlCapsChanged
       
   491 // -----------------------------------------------------------------------------
       
   492 //
       
   493 void CPESystemCallState::HandleCallControlCapsChanged()
       
   494     {
       
   495     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::HandleCallControlCapsChanged" );
       
   496     CPESingleCall* callData = iCallArrayOwner.CallPointerByState( EPEStateConnected );
       
   497     if( callData && !iCallArrayOwner.CallByState( EPEStateRinging ) )
       
   498         {
       
   499         iCallStateTsy = EPSCTsyCallStateConnected;
       
   500         SetCallInformatioAPICallType( *callData );
       
   501         }
       
   502     }
       
   503     
       
   504 // -----------------------------------------------------------------------------
       
   505 // CPESystemCallState::SetCallInformatioAPICallType
       
   506 // -----------------------------------------------------------------------------
       
   507 //
       
   508 void CPESystemCallState::SetCallInformatioAPICallType( CPESingleCall& aCallData )
       
   509     {
       
   510     TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::SetCallInformatioAPICallType" );
       
   511     switch ( aCallData.Call().Parameters().CallType() )
       
   512         {
       
   513         case CCPCall::ECallTypeCSVoice:
       
   514             TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::SetCallInformatioAPICallType EPSCTsyCallTypeCSVoice" );
       
   515             iCallTypeTsy = EPSCTsyCallTypeCSVoice;
       
   516             break;
       
   517         case CCPCall::ECallTypePS:
       
   518             TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::SetCallInformatioAPICallType EPSCTsyCallTypeVoIP" );
       
   519             iCallTypeTsy = EPSCTsyCallTypeVoIP;
       
   520             break;
       
   521         case CCPCall::ECallTypeVideo:
       
   522             TEFLOGSTRING( KTAINT, "CALL CPESystemCallState::SetCallInformatioAPICallType EPSCTsyCallTypeH324Multimedia" );
       
   523             iCallTypeTsy = EPSCTsyCallTypeH324Multimedia;
       
   524             break;
       
   525         default:
       
   526             TEFLOGSTRING( 
       
   527                 KTAERROR, 
       
   528                 "CALL CPECallHandling::SetCallInformatioAPICallType: call type not recognised" );
       
   529             __ASSERT_DEBUG( EFalse, Panic( EPEPanicCallDataNull) );
       
   530             break;
       
   531         }
       
   532     }
       
   533     
       
   534 // ================= OTHER EXPORTED FUNCTIONS ===============================
       
   535 
       
   536 
       
   537 // End of File