realtimenetprots/sipfw/SampleApp/sipengine/inc/SIPExSIPStateBase.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SampleApp/sipengine/inc/SIPExSIPStateBase.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,191 @@
+
+/*
+* Copyright (c) 2004-2009 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:
+*
+*/
+
+
+
+#ifndef _SIPEXSIPSTATEBASE_H_
+#define _SIPEXSIPSTATEBASE_H_
+
+//  INCLUDES
+#include <e32base.h>
+
+// From sipapi
+#include <sipclienttransaction.h>
+#include <sipservertransaction.h>
+#include <sipresponseelements.h>
+
+// From Codec
+#include <siptoheader.h>
+
+// FORWARD DECLARATIONS
+class CSIPExSIPEngine;
+class CSIPClientTransaction;
+class CSIPResponseElements;
+
+// CLASS DECLARATION
+
+/**
+* SIP state base; provides function default implementation,
+* common error handling and function for getting state name.
+*
+* Function will leave with KErrTotalLossOfPrecision in case of
+* invalid state.
+*/
+class CSIPExSIPStateBase: public CBase
+	{
+	public:// Constructors and destructor
+		/**
+		* Destructor
+		*/
+		virtual ~CSIPExSIPStateBase();
+
+
+	public://new functions
+	
+		/**
+		* SendInviteL
+		* Sends an INVITE to peer.
+		* @param aEngine Reference to SIP Engine.
+		* @param aSipUri uri of recipient.
+		*/
+		virtual void SendInviteL(
+			CSIPExSIPEngine& aEngine,
+			const TDesC8& aSipUri );
+			
+
+		/**
+		* CancelInviteL
+		* Cancel an INVITE sent previously.
+		* @param aEngine Reference to Engine object.
+		*/
+		virtual void CancelInviteL(
+			CSIPExSIPEngine& aEngine );
+
+
+		/**
+		* AcceptInviteL
+		* Send 200 (OK) as response to an INVITE
+		* received from peer.
+		* @param aEngine Reference to Engine object.
+		*/
+		virtual void AcceptInviteL(
+			CSIPExSIPEngine& aEngine );
+			
+		/**
+		* DeclineInviteL
+		* Send 486 (Busy Here) as response
+		* to an INVITE received from peer.
+		* @param aEngine Reference to Engine object.
+		*/
+		virtual void DeclineInviteL(
+			CSIPExSIPEngine& aEngine );
+			
+			
+			
+		/**
+		* EndSessionL
+		* Send BYE in an established session.
+		* @param aEngine Reference to Engine object.
+		*/
+		virtual void EndSessionL(
+			CSIPExSIPEngine& aEngine );
+		
+
+		/**
+		* ResponseReceivedL
+		* A SIP response has been received from the network.
+		* @param aEngine Reference to Engine object.
+		* @param aTransaction Contains response elements.
+		*/
+		virtual void ResponseReceivedL(
+			CSIPExSIPEngine& aEngine,
+			CSIPClientTransaction& aTransaction );
+
+
+		/**
+		* AckReceivedL
+		* ACK has been received.
+		* @param aEngine Reference to Engine object.
+		* @param aTransaction Contains response elements.
+		*/
+		virtual void AckReceivedL(
+			CSIPExSIPEngine& aEngine,
+			CSIPServerTransaction& aTransaction );
+
+
+		/**
+		* ByeReceivedL
+		* BYE has been received.
+		* @param aEngine Reference to Engine object.
+		* @param aTransaction Contains response elements.
+		*/
+		virtual void ByeReceivedL(
+			CSIPExSIPEngine& aEngine,
+			CSIPServerTransaction& aTransaction );
+
+
+		/**
+		* CancelReceivedL
+		* CANCEL has been received.
+		* @param aEngine Reference to Engine object.
+		* @param aTransaction Contains response elements.
+		*/
+		virtual void CancelReceivedL(
+			CSIPExSIPEngine& aEngine,
+			CSIPClientTransaction& aTransaction );
+
+
+		/**
+		* InviteReceivedL
+		* INVITE has been received.
+		* @param aEngine Reference to Engine object.
+		* @param aTransaction Contains response elements.
+		* The ownership is transferred.
+		*/
+		virtual void InviteReceivedL(
+			CSIPExSIPEngine& aEngine,
+			CSIPServerTransaction* aTransaction );
+
+
+
+		/**
+		* An asynchronous error has occured related to a periodical refresh 
+		* that relates to a registration.
+		* @param aEngine Reference to Engine object.
+		* @param aError error code
+		* @param aSIPRegistration associated registration
+		*/
+		virtual void ErrorOccured(
+			CSIPExSIPEngine& aEngine,
+			TInt aError );
+
+
+	protected:
+	    /**
+		* C++ default constructor.
+		* @param aName a state name
+		*/
+		CSIPExSIPStateBase();
+
+
+	private://data members
+
+	};
+
+#endif	// _SIPEXSIPSTATEBASE_H_
+