diff -r 2fe1408b6811 -r e1b950c65cb4 epoc32/include/sipnotifydialogassoc.h --- a/epoc32/include/sipnotifydialogassoc.h Tue Mar 16 16:12:26 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* 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 -* which accompanies this distribution, and is available -* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Name : sipnotifydialogassoc.h -* Part of : SIP Client -* Interface : SDK API, SIP Client API -* Version : 1.0 -* -*/ - - - - -#ifndef CSIPNOTIFYDIALOGASSOC_H -#define CSIPNOTIFYDIALOGASSOC_H - -// INCLUDES -#include -#include "sipdialogassocbase.h" - -// CONSTANTS - -// FORWARD DECLARATIONS -class CSIPEventHeader; -class CSIPSubscriptionStateHeader; -class MSIPRegistrationContext; - -// CLASS DECLARATION - -/** -* @publishedAll -* @released -* -* Class for managing SIP NOTIFY dialog associations. -* It provides services for creating, using and -* terminating SIP NOTIFY dialog associations. The user can have multiple -* NOTIFY dialog associations per same SIP dialog. -* Implementation handles SUBSCRIBE on the dialog level defined by Call-Id, -* local and remote tags; user is responsible for "Event" and -* "Subscription-State" header semantics. -* @lib sipclient.lib -*/ -class CSIPNotifyDialogAssoc: public CSIPDialogAssocBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * The response to the received SIP request will create a SIP NOTIFY - * dialog association that will be correlated with the SIP dialog in - * which SIP server transaction was received. If the server transaction - * was not received within a SIP dialog, a new SIP dialog is created. - * The server transaction must be either SUBSCRIBE or REFER transaction. - * @pre aTransaction.State()==ETrying || EProceeding - * @pre aTransaction.Type() == - * SipStrConsts::ESubscribe || SipStrConsts::ERefer - * @pre aEvent != 0 && aState != 0 - * @param aTransaction a SIP server transaction - * @param aEvent an event to send a notification about; the ownership - * is transferred. - * @param aState a subscription state; the ownership is transferred. - * @return New object; the ownership is transferred - * @leave KErrArgument if aTransaction is not a SUBSCRIBE or REFER - * transaction, or aEvent == 0 or aState == 0. - * @leave KErrSIPInvalidTransactionState if aTransaction is in a wrong - * state - */ - IMPORT_C static CSIPNotifyDialogAssoc* - NewL(CSIPServerTransaction& aTransaction, - CSIPEventHeader* aEvent, - CSIPSubscriptionStateHeader* aState); - - /** - * Two-phased constructor. - * The response to the received SIP request will create a SIP NOTIFY - * dialog association that will be correlated with the SIP dialog in - * which SIP server transaction was received. If the server transaction - * was not received within a SIP dialog, a new SIP dialog is created. - * The server transaction must be either SUBSCRIBE or REFER transaction. - * @pre aTransaction.State()==ETrying || EProceeding - * @pre aTransaction.Type() == - * SipStrConsts::ESubscribe || SipStrConsts::ERefer - * @pre aEvent != 0 && aState != 0 - * @param aTransaction a SIP server transaction - * @param aEvent an event to send a notification about; the ownership - * is transferred. - * @param aState a subscription state; the ownership is transferred. - * @return New object; the ownership is transferred - * @leave KErrArgument if aTransaction is not a SUBSCRIBE or REFER - * transaction, or aEvent == 0 or aState == 0. - * @leave KErrSIPInvalidTransactionState if aTransaction is in a wrong - * state - */ - IMPORT_C static CSIPNotifyDialogAssoc* - NewLC(CSIPServerTransaction& aTransaction, - CSIPEventHeader* aEvent, - CSIPSubscriptionStateHeader* aState); - - /** - * Two-phased constructor. - * The response to the received SIP request will create a SIP NOTIFY - * dialog association that will be correlated with the SIP dialog in - * which SIP server transaction was received. If the server transaction - * was not received within a SIP dialog, a new SIP dialog is created. - * The server transaction must be either SUBSCRIBE or REFER transaction. - * @pre aTransaction.State()==ETrying || EProceeding - * @pre aTransaction.Type() == - * SipStrConsts::ESubscribe || SipStrConsts::ERefer - * @pre aContext.IsContextActive() == ETrue - * @pre aEvent != 0 && aState != 0 - * @param aTransaction a SIP server transaction - * @param aContext that will be used for populating - * the Contact-header of the response to aTransaction - * @param aEvent an event to send a notification about; the ownership - * is transferred. - * @param aState a subscription state; the ownership is transferred. - * @return New object; the ownership is transferred - * @leave KErrArgument if aTransaction is not a SUBSCRIBE or REFER - * transaction, or aEvent == 0 or aState == 0. - * @leave KErrSIPInvalidTransactionState if aTransaction is in a wrong - * state - */ - IMPORT_C static CSIPNotifyDialogAssoc* - NewL(CSIPServerTransaction& aTransaction, - const MSIPRegistrationContext& aContext, - CSIPEventHeader* aEvent, - CSIPSubscriptionStateHeader* aState); - - /** - * Two-phased constructor. - * The response to the received SIP request will create a SIP NOTIFY - * dialog association that will be correlated with the SIP dialog in - * which SIP server transaction was received. If the server transaction - * was not received within a SIP dialog, a new SIP dialog is created. - * The server transaction must be either SUBSCRIBE or REFER transaction. - * @pre aTransaction.State()==ETrying || EProceeding - * @pre aTransaction.Type() == - * SipStrConsts::ESubscribe || SipStrConsts::ERefer - * @pre aContext.IsContextActive() == ETrue - * @pre aEvent != 0 && aState != 0 - * @param aTransaction a SIP server transaction - * @param aContext that will be used for populating - * the Contact-header of the response to aTransaction - * @param aEvent an event to send a notification about; the ownership - * is transferred. - * @param aState a subscription state; the ownership is transferred. - * @return New object; the ownership is transferred - * @leave KErrArgument if aTransaction is not a SUBSCRIBE or REFER - * transaction, or aEvent == 0 or aState == 0. - * @leave KErrSIPInvalidTransactionState if aTransaction is in a wrong - * state - */ - IMPORT_C static CSIPNotifyDialogAssoc* - NewLC(CSIPServerTransaction& aTransaction, - const MSIPRegistrationContext& aContext, - CSIPEventHeader* aEvent, - CSIPSubscriptionStateHeader* aState); - - /** - * Destructor - */ - IMPORT_C ~CSIPNotifyDialogAssoc(); - - public: // New functions - - /** - * Creates NOTIFY and sends it to the remote target. - * If client provides optional SIP headers they must - * not contain Event and Subscription-State headers. - * @pre Dialog().Connection().State()==EActive - * @pre Dialog().State()==CSIPDialog::TState::EConfirmed - * @param aElements optional SIP message headers and body. - * Ownership is transferred. - * @return NOTIFY SIP UAC transaction - * @leave KErrSIPInvalidDialogState if dialog's state is incorrect - * @leave KErrSIPResourceNotAvailable if a required SIP Client API - * object has been deleted. - * @capability NetworkServices - */ - IMPORT_C CSIPClientTransaction* - SendNotifyL(CSIPMessageElements* aElements=0); - - /** - * Gets an event about which the notification is done - * @return an event - */ - IMPORT_C const CSIPEventHeader& Event() const; - - /** - * Gets subscription state - * @return subscription state - */ - IMPORT_C CSIPSubscriptionStateHeader& SubscriptionState(); - - /** - * Gets subscription state - * @return subscription state - */ - IMPORT_C const CSIPSubscriptionStateHeader& SubscriptionState() const; - - public: // New functions, for internal use - - CSIPClientTransaction* - DoSendNotifyWithinDialogL(CSIPMessageElements* aElements); - - private: // Constructors - - CSIPNotifyDialogAssoc(); - - void ConstructL(CSIPServerTransaction& aTransaction, - const MSIPRegistrationContext* aContext, - CSIPEventHeader* aEvent, - CSIPSubscriptionStateHeader* aState); - - private: // Data - - CSIPEventHeader* iEvent; - CSIPSubscriptionStateHeader* iSubscriptionState; - }; - -#endif