--- 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