2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Name : SipResolvedClient.h
16 * Part of : SDK API, SIP Client Resolver API
23 #ifndef CSIPRESOLVEDCLIENT_H
24 #define CSIPRESOLVEDCLIENT_H
27 #include <ecom/ecom.h>
28 #include <stringpool.h>
30 //FORWARD DECLARATIONS
32 class CSIPContentTypeHeader;
35 /** Interface UID of this ECOM interface*/
36 const TUid KSIPResolvedClientIFUid = { 0x102010dd };
43 * Interface that clients must realize
44 * in order to enable client resolution mechanism upon the reception
45 * of SIP request outside the SIP dialog. Data provided in
46 * the ECOM resource file or optionally requested from the interface implementation
47 * will be used for target client determination by the SIP implementation.
48 * Note that channel UIDs must be unique accross all SIP clients e.g. clients may
49 * use UIDs assigned for binaries.
51 class CSIPResolvedClient : public CBase
58 virtual inline ~CSIPResolvedClient();
60 public: // Abstract methods
63 * Returns the SIP client's channel UID that indicates client's
64 * channel UID for connection with SIP e.g. CSIP::NewL()
65 * @param aMethod the method of the SIP request
66 * @param aRequestUri the request-URI of the SIP request
67 * @param aHeaders all the headers in the SIP request
68 * @param aContent SIP request body; zero-length descriptor if not present
69 * @param aContentType the content-type of the SIP request.
70 * Zero-pointer if body is not present.
71 * @return SIP client's communication channel's UID
73 virtual TUid ChannelL(RStringF aMethod,
74 const TDesC8& aRequestUri,
75 const RPointerArray<CSIPHeaderBase>& aHeaders,
76 const TDesC8& aContent,
77 const CSIPContentTypeHeader* aContentType=0) = 0;
80 * Requests the client to connect to SIP with resolved
81 * UID in case there's no connection with resolved channel UID.
82 * @param aUid previously resolved channel UID
83 * @leave KErrNoMemory if out of memory
84 * @leave KErrNotFound in case non-existing channel UID was provided
86 virtual void ConnectL(TUid aUid) = 0;
89 * Requests the implementation to provide capabilities in XML format
90 * in case they were not defined in the ECOM resource file. The cabablities
91 * to be returned must be defined according to the same DTD.
92 * This function will be invoked only if the capabilities are not
93 * defined in the ECOM resource file.
95 virtual const TDesC8& Capabilities();
99 /// Unique key for implementations of this interface.
102 protected: // Constructors:
104 inline CSIPResolvedClient();
107 #include <sipresolvedclient.inl>
109 #endif // CSIPRESOLVEDCLIENT_H