epoc32/include/sip.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
--- a/epoc32/include/sip.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/sip.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,162 @@
-sip.h
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Name        : sip.h
+* Part of     : SIP Client
+* Interface   : SDK API, SIP Client API
+* Version     : 2.0
+*
+*/
+
+
+
+#ifndef CSIP_H
+#define CSIP_H
+
+// INCLUDES
+#include <e32base.h>
+#include "_sipcodecdefs.h"
+
+// FORWARD DECLARATIONS
+class CDesC8Array;
+class MSIPObserver;
+class CSIPConnection;
+class CSIPImplementation;
+
+// CLASS DECLARATION
+
+/**
+*  @publishedAll
+*  @released
+*
+*  Class for connecting to SIP server.
+*
+*  This class provides the connection to the SIP server and
+*  provides functions for quering supported SIP security mechanisms and
+*  the support of signalling compression (SigComp).
+*
+*  Note that the implementation uses strings defined in the SIP Codec
+*  string pool. During instantiation the class will open SIP codec string pool 
+*  for getting static strings and getting and setting dynamic strings.
+* 
+*  The user can create only one instance of this class. (a singleton class).
+*
+*  @lib sipclient.lib
+*/
+class CSIP : public CBase
+	{
+    public: // Constructors and destructor
+
+	    /**
+        * Two-phased constructor.
+		* @param aUid an unique id that identifies client
+		* @param aObserver a observer for asynchronous event
+        * @return New object, ownership is transferred
+        * @capability WriteDeviceData
+        */
+		IMPORT_C static CSIP* NewL(const TUid& aUid,
+                                   MSIPObserver& aObserver);
+
+	    /**
+        * Two-phased constructor.
+		* Constructs an object and adds the pointer to the cleanup stack.
+		* @param aUid an unique id that identifies client
+		* @param aObserver a observer for asynchronous event
+        * @return New object, ownership is transferred
+        * @capability WriteDeviceData
+        */
+		IMPORT_C static CSIP* NewLC(const TUid& aUid,
+                                    MSIPObserver& aObserver);                                   
+
+        /**
+        * Destructor.               
+        */
+		IMPORT_C ~CSIP();
+
+    public: // New functions
+
+		/**
+		* Gets all supported security mechanisms
+		* @return supported SIP security mechanisms names (e.g. digest);
+        *         the ownership is transferred
+		*/
+		IMPORT_C CDesC8Array* SupportedSecurityMechanismsL() const;
+
+		/**
+		* Checks if the signalling compression (SigComp) is supported.
+        * Leaves on failure with a system wide error code.
+		* @return ETrue if supported, EFalse otherwise
+		*/
+		IMPORT_C TBool IsSigCompSupportedL() const;
+
+		/**
+		* Gets negotiated security mechanism with the next hop
+		* on the signaling path.
+		* @param aHop the next hop's FQDN or numeric IP address
+		* @return negotiated security mechanism or zero-pointer in case no
+		*		  security mechanism was negotiated with the next hop;
+		*		  the ownership is transferred
+		*/
+		IMPORT_C HBufC8* NegotiatedSecurityMechanismL(const TDesC8& aHop);
+
+		/**
+		* Checks if the user has a connection created for given IAP-id
+		* @param aIapId IAP-id
+ 		* @return sip connection or 0-pointer if connection does not exist.
+        *         Ownership is not transferred.
+		*/
+		IMPORT_C CSIPConnection* Connection(TUint32 aIapId) const;
+		
+        /*
+        * By default the SIP built-in security mechanisms are enabled.
+        * @param aEnabled if set to EFalse the build-in SIP security handling 
+        *        mechanism is disabled.
+        */
+        IMPORT_C void SetSecurityHandlingL(TBool aEnabled);
+
+        /*
+        * Tests if SIP security handling mechanism is enabled/disabled
+        * @return ETrue if built-in mechanisms are enabled, EFalse otherwise.
+        */
+        IMPORT_C TBool IsSecurityHandlingEnabled() const;		
+
+	public: // New functions, for internal use
+
+		/**
+		* Returns the CSIPImplementation.
+		*
+ 		* @return CSIPImplementation
+		*/
+		CSIPImplementation& Implementation();
+		
+    private: // Constructors
+        CSIP();
+
+        void ConstructL(const TUid& aUid, MSIPObserver& aObserver);
+
+	private: // Data
+		CSIPImplementation* iImplementation;
+
+	private: // For testing purposes
+
+	    UNIT_TEST(CSIP_Test)
+        UNIT_TEST(CSIPRegistrationBinding_Test)
+        UNIT_TEST(CSIPInviteDialogAssoc_Test)
+        UNIT_TEST(CSIPSubscribeDialogAssoc_Test)
+        UNIT_TEST(CSIPReferDialogAssoc_Test)
+
+		__DECLARE_TEST;
+		};
+
+#endif