williamr@2: /* williamr@2: * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * 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 williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Name : SipResolvedClient.h williamr@2: * Part of : SDK API, SIP Client Resolver API williamr@2: * Version : 1.0 williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef CSIPRESOLVEDCLIENT_H williamr@2: #define CSIPRESOLVEDCLIENT_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: williamr@2: //FORWARD DECLARATIONS williamr@2: class CSIPHeaderBase; williamr@2: class CSIPContentTypeHeader; williamr@2: williamr@2: // CONSTANTS williamr@2: /** Interface UID of this ECOM interface*/ williamr@2: const TUid KSIPResolvedClientIFUid = { 0x102010dd }; williamr@2: williamr@2: // CLASS DEFINITION williamr@2: /** williamr@2: * @publishedAll williamr@2: * @released williamr@2: * williamr@2: * Interface that clients must realize williamr@2: * in order to enable client resolution mechanism upon the reception williamr@2: * of SIP request outside the SIP dialog. Data provided in williamr@2: * the ECOM resource file or optionally requested from the interface implementation williamr@2: * will be used for target client determination by the SIP implementation. williamr@2: * Note that channel UIDs must be unique accross all SIP clients e.g. clients may williamr@2: * use UIDs assigned for binaries. williamr@2: */ williamr@2: class CSIPResolvedClient : public CBase williamr@2: { williamr@2: public: // Destructor williamr@2: williamr@2: /** williamr@2: * Destructor williamr@2: */ williamr@2: virtual inline ~CSIPResolvedClient(); williamr@2: williamr@2: public: // Abstract methods williamr@2: williamr@2: /** williamr@2: * Returns the SIP client's channel UID that indicates client's williamr@2: * channel UID for connection with SIP e.g. CSIP::NewL() williamr@2: * @param aMethod the method of the SIP request williamr@2: * @param aRequestUri the request-URI of the SIP request williamr@2: * @param aHeaders all the headers in the SIP request williamr@2: * @param aContent SIP request body; zero-length descriptor if not present williamr@2: * @param aContentType the content-type of the SIP request. williamr@2: * Zero-pointer if body is not present. williamr@2: * @return SIP client's communication channel's UID williamr@2: */ williamr@2: virtual TUid ChannelL(RStringF aMethod, williamr@2: const TDesC8& aRequestUri, williamr@2: const RPointerArray& aHeaders, williamr@2: const TDesC8& aContent, williamr@2: const CSIPContentTypeHeader* aContentType=0) = 0; williamr@2: williamr@2: /** williamr@2: * Requests the client to connect to SIP with resolved williamr@2: * UID in case there's no connection with resolved channel UID. williamr@2: * @param aUid previously resolved channel UID williamr@2: * @leave KErrNoMemory if out of memory williamr@2: * @leave KErrNotFound in case non-existing channel UID was provided williamr@2: */ williamr@2: virtual void ConnectL(TUid aUid) = 0; williamr@2: williamr@2: /** williamr@2: * Requests the implementation to provide capabilities in XML format williamr@2: * in case they were not defined in the ECOM resource file. The cabablities williamr@2: * to be returned must be defined according to the same DTD. williamr@2: * This function will be invoked only if the capabilities are not williamr@2: * defined in the ECOM resource file. williamr@2: */ williamr@2: virtual const TDesC8& Capabilities(); williamr@2: williamr@2: public: // Data williamr@2: williamr@2: /// Unique key for implementations of this interface. williamr@2: TUid iInstanceKey; williamr@2: williamr@2: protected: // Constructors: williamr@2: williamr@2: inline CSIPResolvedClient(); williamr@2: }; williamr@2: williamr@2: #include williamr@2: williamr@2: #endif // CSIPRESOLVEDCLIENT_H