realtimenetprots/sipfw/SIP/Common/inc/sipclientserver.h
changeset 0 307788aac0a8
child 55 36ea1f90a3d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/Common/inc/sipclientserver.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,239 @@
+/*
+* 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 "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:
+* Name          : sipclientserver.h
+* Part of       : SIPCommon
+* Version       : SIP/6.0
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+
+#ifndef SIPCLIENTSERVER_H
+#define SIPCLIENTSERVER_H
+
+#include <e32std.h>
+
+_LIT(KSipServerName,"SipServer");
+_LIT(KSipServerFilename, "SipServer");
+_LIT(KSipServerSemaphoreName, "SipServerSemaphore");
+
+const TUid KServerUid3 = {0x101f5d36};
+
+#if (defined (__WINS__) || defined(__WINSCW__))
+static const TUint KServerMinHeapSize =  0x1000;  //   4K
+static const TUint KServerMaxHeapSize = 0x80000;  // 512K !?!?
+#endif
+
+// The server version.
+// A version must be specifyed when creating a session with the server
+const TUint KSipServerMajorVersionNumber=0;
+const TUint KSipServerMinorVersionNumber=1;
+const TUint KSipServerBuildVersionNumber=1;
+
+
+// A container for SIP IDs
+class TSIPIds
+	{
+public:
+
+	TSIPIds()
+		: iIapId(0),
+          iRequestId(0),
+		  iRegistrationId(0),
+		  iDialogId(0),
+		  iRefreshId(0),
+		  iRefresh(EFalse),
+		  iTargetRefresh(EFalse),
+		  iSendWithExpires(ETrue),
+		  iCacheOutboundProxyIP(EFalse),
+		  iConnectionError(KErrNone){}
+
+	TSIPIds(const TSIPIds& aIds)
+		: iIapId(aIds.iIapId),
+          iRequestId(aIds.iRequestId),
+		  iRegistrationId(aIds.iRegistrationId),
+		  iDialogId(aIds.iDialogId),
+		  iRefreshId(aIds.iRefreshId),
+		  iRefresh(aIds.iRefresh),
+		  iTargetRefresh(aIds.iTargetRefresh),
+		  iSendWithExpires(aIds.iSendWithExpires),
+		  iCacheOutboundProxyIP(aIds.iCacheOutboundProxyIP),
+		  iConnectionError(aIds.iConnectionError){}
+
+    TUint32 iIapId;
+	TUint32 iRequestId;
+	TUint32 iRegistrationId;
+	TUint32 iDialogId;
+	TUint32 iRefreshId;
+	TBool iRefresh;
+	TBool iTargetRefresh;
+	TBool iSendWithExpires;
+	TBool iCacheOutboundProxyIP;
+	TInt iConnectionError;
+	};
+
+
+// A container for incoming buffer sizes
+class TSIPMessageBufSizes
+    {
+public:
+
+    TSIPMessageBufSizes()
+        : iHeaderBufSize(0),
+          iContentBufSize(0) {}
+
+    TSIPMessageBufSizes(TInt aHeaderBufSize, TInt aContentBufSize)
+        : iHeaderBufSize(aHeaderBufSize),
+          iContentBufSize(aContentBufSize) {}
+
+	TSIPMessageBufSizes(const TSIPMessageBufSizes& aSizes)
+        : iHeaderBufSize(aSizes.iHeaderBufSize),
+          iContentBufSize(aSizes.iContentBufSize) {}
+
+    TInt iHeaderBufSize;
+    TInt iContentBufSize;
+    };
+    
+    
+// A container for SIP socket options
+class TSIPSockOpt
+    {
+public:
+
+    TSIPSockOpt()
+        : iOptionName(0),
+          iOptionLevel(0),
+          iOption(0) {}
+
+    TSIPSockOpt(TUint aOptionName, TUint aOptionLevel, TInt aOption=0)
+        : iOptionName(aOptionName),
+          iOptionLevel(aOptionLevel),
+          iOption(aOption) {}
+
+    TUint iOptionName;
+    TUint iOptionLevel;
+    TInt iOption;
+    };    
+
+
+// HTTP Digest observer type
+enum TSipHttpDigestObserverType
+	{
+    ESipNoHttpDigestObserver = 0,
+    ESipRealmHttpDigestObserver = 1,
+    ESipResponseHttpDigestObserver = 2
+	};
+	
+	
+// Oper. codes used in passing IPC messages between C/S-client and C/S-server
+enum TSipItcFunctions
+    {
+	// 0-23: No capabilities required
+    ESipItcTerminateDialog,
+    ESipItcTerminateRefresh,
+    ESipItcTerminateDialogRefresh,
+    ESipItcTerminateRegistration,
+    ESipItcSupportedSecurityMechanisms,
+    ESipItcNegotiatedSecurityMechanism,
+    ESipItcIsSigCompSupported,
+    ESipItcGetTransactionState,
+    ESipItcGetDialogState,
+    ESipItcGetCompartmentCount,
+    ESipItcGetFromHeader,
+    ESipItcGetRefreshInterval,
+    ESipItcGetCallIDHeader,
+    ESipItcGetLocalTag,
+    ESipItcOutboundProxy,
+    ESipItcGetRegisteredContact,
+    ESipItcGetLocalAddr,
+    ESipItcSetOutboundProxy,
+    ESipItcRemoveOutboundProxy,
+    ESipItcSetRefreshInterval,
+    ESipItcSetHttpDigestObserver,
+    ESipItcSetCredentials,
+    ESipItcRemoveCredentials,
+    ESipItcIgnoreChallenge,
+    ESipItcSetSecurityHandling,
+    ESipItcResetDialogState,
+    // 26: WriteDeviceData capability required
+    ESipItcSetAppUid,
+    // 27-28: // Custom check: same capabilities as SIP server required
+    ESipItcSetSIPSockOpt,
+    ESipItcSetSIPSockOptWithDes,
+    // 29-51: NetworkServices capability required
+    ESipItcOpenSubSession,
+    ESipItcCloseSubSession,    
+    ESipItcRegister,
+    ESipItcRegisterAndSetOutboundProxy,
+    ESipItcUpdateRegistration,
+    ESipItcUnRegister,
+    ESipItcFetchRegistrations,
+    ESipItcSendRequest,
+    ESipItcSendRequestAndUpdateRefresh,
+    ESipItcSendRequestAndTerminateRefresh,
+    ESipItcSendResponse,
+    ESipItcSendCancel,
+    ESipItcSendResponseAndCreateDialog,
+    ESipItcSendResponseInDialog,
+    ESipItcSendRequestAndCreateDialog,
+    ESipItcSendRequestInDialog,
+    ESipItcSendRequestInDialogAndUpdateRefresh,
+    ESipItcClientReadyToReceive, // Asynchronous receive
+    ESipItcClientReceiveSipMessage, // Synchronous receive
+    ESipItcClientCancelReceive,      
+    ESipItcConnectionReadyToReceive, // Asynchronous receive
+    ESipItcConnectionReceiveSipMessage, // Synchronous receive
+    ESipItcConnectionCancelReceive,
+    ESipItcRefreshConnection,
+    ESipItcGetConnectionError
+    };	
+
+
+// Indexes used in IPC parameter array passed between C/S-client and C/S-server
+//
+// NOTE: Remember to update the types in comments if the actual types change.
+//
+enum TSipItcArguments
+	{
+    ESipItcArgConnectionState = 0,         // Type: TInt
+    ESipItcArgInternalState = 0,           // Type: TInt
+    ESipItcArgRefreshInterval = 0,         // Type: TInt
+    ESipItcArgMessageHeaders = 0,          // Type: TDes8/TDesC8
+    ESipItcArgRealm = 0,                   // Type: TDes8/TDesC8
+    ESipItcArgAuthenticationMechanism = 0, // Type: TDesC8
+    ESipItcArgSockOpt = 0,                 // Type: TSIPSockOpt
+    ESipItcArgLocalAddr = 0,               // Type: TInetAddr
+    ESipItcArgLocalTag = 0,                // Type: TDesC8
+    ESipItcArgHttpDigestObserverType = 0,  // Type: TSipHttpDigestObserverType
+    ESipItcArgSecurityHandling = 0,        // Type: TBool
+    ESipItcArgAppUid = 1,                  // Type: TInt
+    ESipItcArgIds = 1,                     // Type: TSIPIds
+    ESipItcArgNextHop = 1,                 // Type: TDesC8    
+    ESipItcArgBufSizes = 2,                // Type: TSIPMessageBufSizes
+    ESipItcArgMessageContent = 2,          // Type: TDes8/TDesC8
+    ESipItcArgSockOptDes = 2,              // Type: TDesC8
+    ESipItcArgCredentials = 2,             // Type: TDesC8
+    ESipItcArgSubSessionHandle = 3         // Type: TInt
+	};
+
+#endif // SIPCLIENTSERVER_H
+
+// End of File