--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sipvoipprovider/inc/svpmtsession.h Mon Jan 18 20:12:36 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2006-2008 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: Representation of SVP MT session
+*
+*/
+
+
+#ifndef SVPMTSESSION_H
+#define SVPMTSESSION_H
+
+#include <mccpcall.h>
+#include "svpsessionbase.h"
+#include "svputdefs.h"
+
+/**
+ * Class which acts as SVP MT session.
+ * Contains all the SVP MT session specific methods.
+ *
+ * @lib svp.dll
+ * @since S60 3.2
+ */
+class CSVPMtSession : public CSVPSessionBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CSVPMtSession* NewL( CMceInSession* aMtSession,
+ TMceTransactionDataContainer& aContainer,
+ TUint32 aServiceId,
+ TUint32 aVoIPProfileId,
+ MSVPSessionObserver& aObserver,
+ CSVPUtility& aSVPUtility,
+ CSVPRtpObserver& aRtpObserver,
+ TInt aKeepAliveValue,
+ TBool aPreconditions );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSVPMtSession();
+
+
+public: // from base classes: MCCPCall
+
+ /**
+ * Answers to an incoming session.
+ * @since Series60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Answer();
+
+ /**
+ * Rejects an incoming call.
+ * @since Series 60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Reject();
+
+ /**
+ * Reguests to queue the call.
+ * @since S60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Queue();
+
+ /**
+ * Send 180 Ringing
+ * @since S60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Ringing();
+
+ /**
+ * From MCCPMtSession. Return boolean value, is incoming session forwarded or not.
+ * @since Series60 3.2
+ * @return ETrue if session is forwarded, else EFalse
+ */
+ TBool IsCallForwarded() const;
+
+ /**
+ * Returns boolean value, is the session mobile originated.
+ * @since Series60 3.2
+ * @return TBool ETrue if session is mobile originated, otherwise EFalse
+ */
+ TBool IsMobileOriginated() const;
+
+ /**
+ * Calls sessions destructor
+ * @since Series60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Release();
+
+ /**
+ * Puts the specified session on hold.
+ * @since Series60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Hold();
+
+ /**
+ * Resumes the session.
+ * @since Series60 3.2
+ * @return KErrNone if successful or system wide error code
+ */
+ TInt Resume();
+
+ /**
+ * Handles remote action after session is established.
+ * @since Series60 3.2
+ * @param None
+ * @return
+ */
+ TInt IncomingRequest( CMceInSession* aUpdatedSession );
+
+private: // new methods
+
+ /**
+ * Handles sink/source enabling for Mt streams
+ * @since Series 60 3.2
+ * @param aStreams array of streams in Mt session
+ */
+ void HandleMtStreamsL( const RPointerArray< CMceMediaStream >& aStreams );
+
+ /**
+ * Worker functio to answer an incoming session.
+ * @since Series60 3.2
+ * @return void
+ */
+ void DoAnswerL();
+
+// From CSVPSessionBase
+
+ /**
+ * Sets RTP keep-alive timer value and payload
+ * @since Series 60 3.2
+ * @param aSession MCE session
+ * @param aSessionUpdateOngoing Flag determines whether session udpate is needed
+ * @return void
+ */
+ void SetRtpKeepAliveL( CMceSession* aSession,
+ TBool aSessionUpdateOngoing );
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CSVPMtSession( CMceInSession* aMtSession,
+ TMceTransactionDataContainer& aContainer,
+ TUint32 aVoIPProfileId,
+ MSVPSessionObserver& aObserver,
+ CSVPUtility& aSVPUtility,
+ CSVPRtpObserver& aRtpObserver,
+ TInt aKeepAliveValue,
+ TBool aPreconditions );
+
+ /**
+ * Symbian 2nd phase construction
+ */
+ void ConstructL( TUint32 aServiceId );
+
+private:
+
+ // For testing
+ SVP_UT_DEFS
+
+ };
+
+#endif // SVPMTSESSION_H