diff -r 000000000000 -r f0cf47e981f9 mmsharing/mmshavailability/inc/musavacapabilitycontext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/inc/musavacapabilitycontext.h Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,236 @@ +/* +* Copyright (c) 2005-2007 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: Swis call context +* +*/ + +#ifndef MUSAVACAPABILITYCONTEXT_H +#define MUSAVACAPABILITYCONTEXT_H + +#include +#include "musunittesting.h" + + +const TInt KMUSAVASIP200 = 200; +const TInt KMUSAVASIPServerInternalError = 500; +const TInt KMUSAVASIPNotImplemented = 501; +const TInt KMUSAVASIPForbidden = 403; +const TInt KMUSAVASIPNotFound = 404; +const TInt KMUSAVASIPTimeout = 408; +const TInt KMUSAVASIPUnsupportedURIScheme = 416; +const TInt KMUSAVASIPTemporarilyUnavailable = 480; +const TUint KMUSAVASIPDecline = 603; + +const TInt KMUSAVAMaxLengthOfSDPMessage = 1000; +_LIT8( KMUSAVASIPMediaTypeApplication, "application" ); +_LIT8( KMUSAVASIPMediaSubTypeSDP, "sdp" ); +_LIT8( KMUSAVASIPHeaderUserAgent, "User-Agent" ); +_LIT8( KMUSAVASIPHeaderPAssertedIdentity, "P-Asserted-Identity" ); +_LIT8( KMUSAVASIPParamFalse, "false" ); +_LIT8( KMUSAVASemicolon, ";"); + + +class CSIPServerTransaction; +class RStringF; +class CSdpDocument; +class CSIPMessageElements; +class CSIPTransactionBase; +class CSIPHeaderBase; +class CSIPExtensionHeader; +class CSIPAcceptContactHeader; +class CSIPContactHeader; +class CUri8; + + +class MusAvaCapabilityContext + { +public: // static API + + /** + * Returns SDP string from pool + * + * @param aStringIndex SDP string index + * @return SDP String + */ + static RStringF SDPStringL( TInt aStringIndex ); + + /** + * Creates SDP string to pool + * + * @param aString the string as descriptor + * @return SDP String + */ + static RStringF SDPStringL( const TDesC8& aString ); + + /** + * Creates SIP string to pool + * + * @param aString the string as descriptor + * @return SIP String + */ + static RStringF SIPStringL( const TDesC8& aString ); + + /** + * Resolves local host + * + * @param aQuery query + * @return feature set + */ + static void LocalHostL( const CSIPServerTransaction& aRequest, + TPtrC8& aLocalHost, + RStringF& aHostType); + + /** + * Helper to create uri from descriptor + * + * @param aUri uri as descriptor + * @return uri + */ + static CUri8* ToUriL( const TDesC8& aUri ); + + /** + * Helper to transform SDP document to text + * + * @param aSdpContent SDP document + * @return SDP document as text + */ + static HBufC8* ToTextL( CSdpDocument& aSdpContent ); + + + /** + * Returns message elemensts from request/response + * + * @param aTrx server/client transaction + * @return message elemensts + */ + static const CSIPMessageElements& MessageElementsL( + const CSIPTransactionBase& aTrx ); + + /** + * Creates Accept-Contact header + * + * @param aValue value of header + * @return the header + */ + static CSIPAcceptContactHeader* AcceptContactHeaderLC( RStringF aValue ); + + /** + * returns Accept-Contact header from request/response + * + * @param aTrx request/response + * @return the header + */ + static const CSIPAcceptContactHeader* AcceptContactHeaderL( + const CSIPTransactionBase& aTrx ); + + /** + * Creates Contact header + * + * @param aAddress the address + * @param aValue value of header + * @return the header + */ + static CSIPContactHeader* ContactHeaderLC( const CUri8& aAddress, + RStringF aValue ); + + /** + * Returns Contact header from request/response + * + * @param aTrx request/response + * @return the header + */ + static const CSIPContactHeader* ContactHeaderL( + const CSIPTransactionBase& aTrx ); + + + /** + * Creates User-Agent header + * + * @param aValue value of header + * @return the header + */ + static CSIPExtensionHeader* UserAgentHeaderLC( const TDesC8& aValue ); + + /** + * returns User-Agent header from request/response + * + * @param aTrx request/response + * @return the header + */ + static const CSIPExtensionHeader* UserAgentHeaderL( + const CSIPTransactionBase& aTrx ); + + /** + * Creates P-Asserted-Identity header + * + * @param aValue value of header + * @return the header + */ + static CSIPExtensionHeader* PAssertedIdentityHeaderLC( + const TDesC8& aValue ); + + /** + * Returns originator from request + * + * @param aTrx request + * @return originator's URI + */ + static const CUri8& MusAvaCapabilityContext::OriginatorL( + const CSIPServerTransaction& aTrx ); + + /** + * Finds header from user headers based on header's name + * + * @param aHeaderName name of the header + * @param aMessage SIP message containg user headers + * @param aIndex index of the header in message + * @return the header + */ + static const CSIPHeaderBase* Header( RStringF aHeaderName, + const CSIPMessageElements& aMessage, + TUint aIndex ); + + /** + * Finds header from user headers based on header's name + * + * @param aHeaderName name of the header + * @param aMessage SIP message containg user headers + * @return the header + */ + static const CSIPHeaderBase* Header( RStringF aHeaderName, + const CSIPMessageElements& aMessage ); + /** + * Finds header count from user headers based on header's name + * + * @param aHeaderName name of the header + * @param aMessage SIP message containg user headers + * @return the count + */ + static TUint HeaderCount( RStringF aHeaderName, + const CSIPMessageElements& aMessage ); + + /** + * Finds and returns all P-Asserted-Identity header . + * + * @param aMessage SIP message header. + * @return array which has all P-Asserted-Identity header. + */ + static CDesCArrayFlat* MusAvaCapabilityContext::PAssertedIdentityHeaderL( + const CSIPMessageElements& aMessage ); + //MUS_UNITTEST ( UT_ ) + + }; + + +#endif // MUSAVACAPABILITYCONTEXT_H