CSIPNotifyDialogAssoc Class Reference

class CSIPNotifyDialogAssoc : public CSIPDialogAssocBase

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. sipclient.lib

Inherits from

Public Member Functions
~CSIPNotifyDialogAssoc ()
CSIPClientTransaction * DoSendNotifyWithinDialogL ( CSIPMessageElements *)
IMPORT_C const CSIPEventHeader & Event ()
IMPORT_C CSIPNotifyDialogAssoc * NewL ( CSIPServerTransaction &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)
IMPORT_C CSIPNotifyDialogAssoc * NewL ( CSIPServerTransaction &, const MSIPRegistrationContext &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)
IMPORT_C CSIPNotifyDialogAssoc * NewLC ( CSIPServerTransaction &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)
IMPORT_C CSIPNotifyDialogAssoc * NewLC ( CSIPServerTransaction &, const MSIPRegistrationContext &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)
IMPORT_C CSIPClientTransaction * SendNotifyL ( CSIPMessageElements *)
IMPORT_C CSIPSubscriptionStateHeader & SubscriptionState ()
IMPORT_C const CSIPSubscriptionStateHeader & SubscriptionState ()
Private Member Functions
CSIPNotifyDialogAssoc ()
void ConstructL ( CSIPServerTransaction &, const MSIPRegistrationContext *, CSIPEventHeader *, CSIPSubscriptionStateHeader *)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CSIPDialogAssocBase::CSIPDialogAssocBase()
CSIPDialogAssocBase::ConstructL(RStringF,CSIPDialog &)
CSIPDialogAssocBase::ConstructL(RStringF,CSIPDialog &,CSIPServerTransaction &)
CSIPDialogAssocBase::DeletingRefresh(CSIPRefresh &,TUint32)
CSIPDialogAssocBase::Dialog()
CSIPDialogAssocBase::Dialog()const
CSIPDialogAssocBase::FindRefresh(TUint32)
CSIPDialogAssocBase::Implementation()
CSIPDialogAssocBase::IsNonTargetRefreshRequest(RStringF)const
CSIPDialogAssocBase::SendNonTargetRefreshRequestL(RStringF,CSIPMessageElements *)
CSIPDialogAssocBase::Type()const
CSIPDialogAssocBase::~CSIPDialogAssocBase()
Private Attributes
CSIPEventHeader * iEvent
CSIPSubscriptionStateHeader * iSubscriptionState
Inherited Attributes
CSIPDialogAssocBase::iImplementation

Constructor & Destructor Documentation

CSIPNotifyDialogAssoc()

CSIPNotifyDialogAssoc ( ) [private]

~CSIPNotifyDialogAssoc()

IMPORT_C ~CSIPNotifyDialogAssoc ( )

Destructor

Member Functions Documentation

ConstructL(CSIPServerTransaction &, const MSIPRegistrationContext *, CSIPEventHeader *, CSIPSubscriptionStateHeader *)

void ConstructL ( CSIPServerTransaction & aTransaction,
const MSIPRegistrationContext * aContext,
CSIPEventHeader * aEvent,
CSIPSubscriptionStateHeader * aState
) [private]

DoSendNotifyWithinDialogL(CSIPMessageElements *)

CSIPClientTransaction * DoSendNotifyWithinDialogL ( CSIPMessageElements * aElements )

Parameters

CSIPMessageElements * aElements

Event()

IMPORT_C const CSIPEventHeader & Event ( ) const

Gets an event about which the notification is done

NewL(CSIPServerTransaction &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)

IMPORT_C CSIPNotifyDialogAssoc * NewL ( CSIPServerTransaction & aTransaction,
CSIPEventHeader * aEvent,
CSIPSubscriptionStateHeader * aState
) [static]
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-condition
aTransaction.State()==ETrying || EProceeding
aTransaction.Type() == SipStrConsts::ESubscribe || SipStrConsts::ERefer
aEvent != 0 && aState != 0
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

Parameters

CSIPServerTransaction & aTransaction a SIP server transaction
CSIPEventHeader * aEvent an event to send a notification about; the ownership is transferred.
CSIPSubscriptionStateHeader * aState a subscription state; the ownership is transferred.

NewL(CSIPServerTransaction &, const MSIPRegistrationContext &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)

IMPORT_C CSIPNotifyDialogAssoc * NewL ( CSIPServerTransaction & aTransaction,
const MSIPRegistrationContext & aContext,
CSIPEventHeader * aEvent,
CSIPSubscriptionStateHeader * aState
) [static]
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-condition
aTransaction.State()==ETrying || EProceeding
aTransaction.Type() == SipStrConsts::ESubscribe || SipStrConsts::ERefer
aContext.IsContextActive() == ETrue
aEvent != 0 && aState != 0
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

Parameters

CSIPServerTransaction & aTransaction a SIP server transaction
const MSIPRegistrationContext & aContext that will be used for populating the Contact-header of the response to aTransaction
CSIPEventHeader * aEvent an event to send a notification about; the ownership is transferred.
CSIPSubscriptionStateHeader * aState a subscription state; the ownership is transferred.

NewLC(CSIPServerTransaction &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)

IMPORT_C CSIPNotifyDialogAssoc * NewLC ( CSIPServerTransaction & aTransaction,
CSIPEventHeader * aEvent,
CSIPSubscriptionStateHeader * aState
) [static]
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-condition
aTransaction.State()==ETrying || EProceeding
aTransaction.Type() == SipStrConsts::ESubscribe || SipStrConsts::ERefer
aEvent != 0 && aState != 0
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

Parameters

CSIPServerTransaction & aTransaction a SIP server transaction
CSIPEventHeader * aEvent an event to send a notification about; the ownership is transferred.
CSIPSubscriptionStateHeader * aState a subscription state; the ownership is transferred.

NewLC(CSIPServerTransaction &, const MSIPRegistrationContext &, CSIPEventHeader *, CSIPSubscriptionStateHeader *)

IMPORT_C CSIPNotifyDialogAssoc * NewLC ( CSIPServerTransaction & aTransaction,
const MSIPRegistrationContext & aContext,
CSIPEventHeader * aEvent,
CSIPSubscriptionStateHeader * aState
) [static]
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-condition
aTransaction.State()==ETrying || EProceeding
aTransaction.Type() == SipStrConsts::ESubscribe || SipStrConsts::ERefer
aContext.IsContextActive() == ETrue
aEvent != 0 && aState != 0
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

Parameters

CSIPServerTransaction & aTransaction a SIP server transaction
const MSIPRegistrationContext & aContext that will be used for populating the Contact-header of the response to aTransaction
CSIPEventHeader * aEvent an event to send a notification about; the ownership is transferred.
CSIPSubscriptionStateHeader * aState a subscription state; the ownership is transferred.

SendNotifyL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction * SendNotifyL ( CSIPMessageElements * aElements = 0 )
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-condition
Dialog() .Connection().State()==EActive
Dialog() .State()==CSIPDialogTState::EConfirmed
leave
KErrSIPInvalidDialogState if dialog's state is incorrect
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted.
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0 optional SIP message headers and body. Ownership is transferred.

SubscriptionState()

IMPORT_C CSIPSubscriptionStateHeader & SubscriptionState ( )

Gets subscription state

SubscriptionState()

IMPORT_C const CSIPSubscriptionStateHeader & SubscriptionState ( ) const

Gets subscription state

Member Data Documentation

CSIPEventHeader * iEvent

CSIPEventHeader * iEvent [private]

CSIPSubscriptionStateHeader * iSubscriptionState

CSIPSubscriptionStateHeader * iSubscriptionState [private]