diff -r 33a5d2bbf6fc -r 73a1feb507fb mmshplugins/mmshaoplugin/inc/musvoipcallmonitor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmshplugins/mmshaoplugin/inc/musvoipcallmonitor.h Tue Aug 31 15:12:07 2010 +0300 @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Monitors the VOIP calls. +* +*/ + + +#ifndef MUSVOIPCALLMONITOR_H_ +#define MUSVOIPCALLMONITOR_H_ + +#include + +#include +#include +#include + +#include "mussesseioninformationapi.h" +#include "musunittesting.h" +#include "mmuscallstateobserver.h" + +/** + * Monitors the Internet telephony calls ( VOIP ) + * Same condition of CS call criteria applies here to + * for Mush. + * @lib musaoplugin.dll + */ +class CMusVoipCallMonitor : public CActive + { + + public: // constructors and destructor + /** + * Symbian two-phased constructor. + */ + static CMusVoipCallMonitor* NewL( TName& aCallName, + MMusCallStateObserver& aCallStateObserver ); + + /** + * Symbian two-phased constructor. + */ + static CMusVoipCallMonitor* NewLC( TName& aCallName ); + + /** + * Destructor. + */ + ~CMusVoipCallMonitor(); + + private: // functions from base class CActive + + void RunL(); + + void DoCancel(); + + TInt RunError( TInt aError ); + + private: + + /** + * C++ constructor. + */ + CMusVoipCallMonitor( TName& aCallName, MMusCallStateObserver& aCallStateObserver ); + + /** + * Symbian 2nd-phase constructor. + */ + void ConstructL( ); + + public: + + /** + * Compares the call names (aName == iCallName) + * + * @return ETrue if matches else EFalse + */ + TBool IsEqual(TName& aName); + + /** + * Sets the call state PS Key value. + * + * @aVal one of the call event types + */ + void SetStateL(NMusSessionInformationApi::TMusCallEvent aVal); + + /** + * Checks from voip call monitor if required data is ready. + */ + TBool IsDataReadyL(); + + private: + + /** + * Sets the call Information like call direction and remote address + */ + void SetCallInfoL(); + + /** + * Sets the call Provider Information (CallProvider Name is PS Key) + */ + void SetCallProviderInfoL( TUint32 aServiceId ); + + TBool RemoteInfoExistsL(); + + void MonitorForRemoteInfoL(); + + void StopRemoteInfoMonitoring(); + + void ReportStateChangeL( NMusSessionInformationApi::TMusCallEvent aVal ); + + static TInt GuardTimerExpired( TAny* aPtr ); + + /** + * Returns current connected call Service ID. + * @return Current connected call service ID, if there is at least one + * call in connected state, otherwise KErrNotFound + */ + TUint32 CallServiceIdL(); + + void AddDomainFromOwnUsernameL( TUint32 aServiceId, TDes16& aUri ); + + // Resets the Call Provider Information. + void ResetCallProviderName(); + + + private: + /* + * Name of the call. + */ + TName& iCallName ; + + RProperty iPropertyEvent; + + /* + * Reference of callstate observer not owned + */ + MMusCallStateObserver& iCallStateObserver; + + CDeltaTimer* iGuardTimer; + TCallBack iGuardTimerCallBack; + TDeltaTimerEntry iGuardTimerEntry; + + MUS_UNITTEST( UT_CMusVoipCallMonitor ) + + }; + +#endif /* MUSVOIPCALLMONITOR_H_ */