mmsharing/mmshavailability/inc/musavacapabilitycontext.h
changeset 0 f0cf47e981f9
child 12 6e3ada025302
--- /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 <badesca.h>
+#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