diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/Common/inc/sipclientserver.h --- /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 + +_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