CSIPNotifyDialogAssoc Class Reference

#include <mw/sipnotifydialogassoc.h>

Link against: sipclient.lib

class CSIPNotifyDialogAssoc : public CSIPDialogAssocBase

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()
Inherited Attributes
CSIPDialogAssocBase::iImplementation
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()

Detailed Description

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.

Constructor & Destructor Documentation

~CSIPNotifyDialogAssoc ( )

IMPORT_C~CSIPNotifyDialogAssoc()

Destructor

Member Function Documentation

DoSendNotifyWithinDialogL ( CSIPMessageElements * )

CSIPClientTransaction *DoSendNotifyWithinDialogL(CSIPMessageElements *aElements)

Event ( )

IMPORT_C const CSIPEventHeader &Event()const

Gets an event about which the notification is done

Returns: an event

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
ParameterDescription
aTransactiona SIP server transaction
aEventan event to send a notification about; the ownership is transferred.
aStatea subscription state; the ownership is transferred.

Returns: New object; 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
ParameterDescription
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction
aEventan event to send a notification about; the ownership is transferred.
aStatea subscription state; the ownership is transferred.

Returns: New object; 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
ParameterDescription
aTransactiona SIP server transaction
aEventan event to send a notification about; the ownership is transferred.
aStatea subscription state; the ownership is transferred.

Returns: New object; 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
ParameterDescription
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction
aEventan event to send a notification about; the ownership is transferred.
aStatea subscription state; the ownership is transferred.

Returns: New object; 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
ParameterDescription
aElementsoptional SIP message headers and body. Ownership is transferred.

Returns: NOTIFY SIP UAC transaction

SubscriptionState ( )

IMPORT_C CSIPSubscriptionStateHeader &SubscriptionState()

Gets subscription state

Returns: subscription state

SubscriptionState ( )

IMPORT_C const CSIPSubscriptionStateHeader &SubscriptionState()const

Gets subscription state

Returns: subscription state