CSIPInviteDialogAssoc Class Reference

class CSIPInviteDialogAssoc : public CSIPDialogAssocBase

Class for managing SIP dialog association created with INVITE. It provides services for creating, using and terminating SIP INVITE dialog association.

The user can have only one INVITE dialog association per dialog.

sipclient.lib

Inherits from

Public Member Functions
~CSIPInviteDialogAssoc()
voidDoSendAckL(const CSIPClientTransaction &, CSIPMessageElements *)
CSIPClientTransaction *DoSendCancelL(TUint32)
CSIPClientTransaction *DoSendInviteL(CSIPMessageElements *)
CSIPClientTransaction *DoSendRequestWithinDialogL(RStringF, CSIPMessageElements *)
IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPDialog &)
IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPServerTransaction &)
IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPServerTransaction &, const MSIPRegistrationContext &)
IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPDialog &)
IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPServerTransaction &)
IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPServerTransaction &, const MSIPRegistrationContext &)
IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C voidSendAckL(const CSIPClientTransaction &, CSIPMessageElements *)
IMPORT_C CSIPClientTransaction *SendByeL(CSIPMessageElements *)
IMPORT_C CSIPClientTransaction *SendInviteL(CSIPMessageElements *)
IMPORT_C CSIPClientTransaction *SendPrackL(CSIPMessageElements *)
IMPORT_C CSIPClientTransaction *SendUpdateL(CSIPMessageElements *)
Private Member Functions
CSIPInviteDialogAssoc()
voidConstructL(CSIPServerTransaction &, const MSIPRegistrationContext *)
CSIPInviteDialogAssoc *NewLC(CSIPConnection &, CUri8 *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *, const MSIPRegistrationContext *)
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()
Inherited Attributes
CSIPDialogAssocBase::iImplementation

Constructor & Destructor Documentation

CSIPInviteDialogAssoc()

CSIPInviteDialogAssoc()[private]

~CSIPInviteDialogAssoc()

IMPORT_C~CSIPInviteDialogAssoc()

Destructor

Member Functions Documentation

ConstructL(CSIPServerTransaction &, const MSIPRegistrationContext *)

voidConstructL(CSIPServerTransaction &aTransaction,
const MSIPRegistrationContext *aContext
)[private]

Parameters

CSIPServerTransaction & aTransaction
const MSIPRegistrationContext * aContext

DoSendAckL(const CSIPClientTransaction &, CSIPMessageElements *)

voidDoSendAckL(const CSIPClientTransaction &aTransaction,
CSIPMessageElements *aElements
)

Sends ACK

Parameters

const CSIPClientTransaction & aTransactiona SIP INVITE client transaction to acknowledge
CSIPMessageElements * aElementsoptional SIP message headers and body. Ownership is transferred.

DoSendCancelL(TUint32)

CSIPClientTransaction *DoSendCancelL(TUint32aRequestId)

Parameters

TUint32 aRequestId

DoSendInviteL(CSIPMessageElements *)

CSIPClientTransaction *DoSendInviteL(CSIPMessageElements *aElements)

Sends initial INVITE creating a dialog and creates a transaction for it.

Parameters

CSIPMessageElements * aElementscontains user SIP headers and content. Ownership is transferred.

DoSendRequestWithinDialogL(RStringF, CSIPMessageElements *)

CSIPClientTransaction *DoSendRequestWithinDialogL(RStringFaMethod,
CSIPMessageElements *aElements
)

Parameters

RStringF aMethod
CSIPMessageElements * aElements

NewL(CSIPDialog &)

IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPDialog &aDialog)[static]

Two-phased constructor.

Parameters

CSIPDialog & aDialoga dialog to be associated with

NewL(CSIPServerTransaction &)

IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPServerTransaction &aTransaction)[static]
Two-phased constructor. Should be used if response to the received SIP request will create a SIP dialog association. The server transaction must be a INVITE transaction. If SIP server transaction was received within an existing SIP dialog the created SIP dialog association will be correlated to that SIP dialog. Otherwise a new SIP dialog is created.
Pre-condition
aTransaction.State() == CSIPTransactionBase::EProceeding
aTransaction.Type() == SipStrConsts::EInvite
leave
KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
leave
KErrSIPInvalidTransactionState if aTransaction.State() != CSIPTransactionBase::EProceeding
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted

Parameters

CSIPServerTransaction & aTransactiona SIP server transaction

NewL(CSIPServerTransaction &, const MSIPRegistrationContext &)

IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPServerTransaction &aTransaction,
const MSIPRegistrationContext &aContext
)[static]
Two-phased constructor. Should be used if response to the received SIP request will create a SIP dialog association. The server transaction must be a INVITE transaction. If SIP server transaction was received within an existing SIP dialog the created SIP dialog association will be correlated to that SIP dialog. Otherwise a new SIP dialog is created.
Pre-condition
aTransaction.State() == CSIPTransactionBase::EProceeding
aTransaction.Type() == SipStrConsts::EInvite
aContext.IsContextActive() == ETrue
leave
KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
leave
KErrSIPInvalidTransactionState if aTransaction.State() != CSIPTransactionBase::EProceeding
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted

Parameters

CSIPServerTransaction & aTransactiona SIP server transaction
const MSIPRegistrationContext & aContextthat will be used for populating the Contact-header of the response to aTransaction

NewL(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPConnection &aConnection,
CSIPFromHeader *aFrom,
CUri8 *aRemoteUri,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aFrom != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
leave
KErrArgument if aFrom == 0 or aRemoteUri == 0

Parameters

CSIPConnection & aConnectiona SIP connection to be used with dialog association
CSIPFromHeader * aFromoriginator's address; the ownership is transfered
CUri8 * aRemoteUria remote target URI that identifies a resource that the request is addressed to. The ownership is transferred.
CSIPToHeader * aTo = 0logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewL(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPInviteDialogAssoc *NewL(CSIPConnection &aConnection,
CUri8 *aRemoteUri,
const MSIPRegistrationContext &aContext,
CSIPFromHeader *aFrom = 0,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
aContext.IsContextActive() == ETrue
leave
KErrArgument if aRemoteUri == 0
leave
KErrSIPInvalidRegistrationState if aContext.IsContextActive() == EFalse

Parameters

CSIPConnection & aConnectiona SIP connection to be used with dialog association
CUri8 * aRemoteUria remote target URI that identifies a resource that the request is targeted to. The ownership is transferred.
const MSIPRegistrationContext & aContextused for selecting outbound proxy and originator's address (AOR) and contact
CSIPFromHeader * aFrom = 0originator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
CSIPToHeader * aTo = 0logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPDialog &)

IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPDialog &aDialog)[static]

Two-phased constructor.

Parameters

CSIPDialog & aDialoga dialog to be associated with

NewLC(CSIPServerTransaction &)

IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPServerTransaction &aTransaction)[static]
Two-phased constructor. Should be used if response to the received SIP request will create a SIP dialog association. The server transaction must be a INVITE transaction. If SIP server transaction was received within the existing SIP dialog the created SIP dialog association will be correlated to that SIP dialog. Otherwise a new SIP dialog is created.
Pre-condition
aTransaction.State() == CSIPTransactionBase::EProceeding
aTransaction.Type() == SipStrConsts::EInvite
leave
KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
leave
KErrSIPInvalidTransactionState if aTransaction.State() != CSIPTransactionBase::EProceeding
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted

Parameters

CSIPServerTransaction & aTransactiona SIP server transaction

NewLC(CSIPServerTransaction &, const MSIPRegistrationContext &)

IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPServerTransaction &aTransaction,
const MSIPRegistrationContext &aContext
)[static]
Two-phased constructor. Should be used if response to the received SIP request will create a SIP dialog association. The server transaction must be a INVITE transaction. If SIP server transaction was received within the existing SIP dialog the created SIP dialog association will be correlated to that SIP dialog. Otherwise a new SIP dialog is created.
Pre-condition
aTransaction.State() == CSIPTransactionBase::EProceeding
aTransaction.Type() == SipStrConsts::EInvite
aContext.IsContextActive() == ETrue
leave
KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
leave
KErrSIPInvalidTransactionState if aTransaction.State() != CSIPTransactionBase::EProceeding
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted

Parameters

CSIPServerTransaction & aTransactiona SIP server transaction
const MSIPRegistrationContext & aContextthat will be used for populating the Contact-header of the response to aTransaction

NewLC(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPConnection &aConnection,
CSIPFromHeader *aFrom,
CUri8 *aRemoteUri,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aFrom != 0
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
leave
KErrArgument if aFrom == 0 or aRemoteUri == 0

Parameters

CSIPConnection & aConnection
CSIPFromHeader * aFromoriginator's address; the ownership is transfered
CUri8 * aRemoteUria remote target URI that identifies a resource that the request is addressed to. The ownership is transferred.
CSIPToHeader * aTo = 0logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)

IMPORT_C CSIPInviteDialogAssoc *NewLC(CSIPConnection &aConnection,
CUri8 *aRemoteUri,
const MSIPRegistrationContext &aContext,
CSIPFromHeader *aFrom = 0,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aRemoteUri != 0 The user of the class must not define tags in From-header and To-header.
aContext.IsContextActive() == ETrue
leave
KErrArgument if aRemoteUri == 0
leave
KErrSIPInvalidRegistrationState if aContext.IsContextActive() == EFalse

Parameters

CSIPConnection & aConnectiona SIP connection to be used with dialog association
CUri8 * aRemoteUria remote target URI that identifies a resource that the request is targeted to. The ownership is transferred.
const MSIPRegistrationContext & aContextused for selecting outbound proxy and originator's address (AOR) and contact
CSIPFromHeader * aFrom = 0originator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
CSIPToHeader * aTo = 0logical recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
CSIPContactHeader * aContact = 0a contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered

NewLC(CSIPConnection &, CUri8 *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *, const MSIPRegistrationContext *)

CSIPInviteDialogAssoc *NewLC(CSIPConnection &aConnection,
CUri8 *aRemoteUri,
CSIPFromHeader *aFrom,
CSIPToHeader *aTo,
CSIPContactHeader *aContact,
const MSIPRegistrationContext *aContext
)[private, static]

Parameters

CSIPConnection & aConnection
CUri8 * aRemoteUri
CSIPFromHeader * aFrom
CSIPToHeader * aTo
CSIPContactHeader * aContact
const MSIPRegistrationContext * aContext

SendAckL(const CSIPClientTransaction &, CSIPMessageElements *)

IMPORT_C voidSendAckL(const CSIPClientTransaction &aTransaction,
CSIPMessageElements *aElements = 0
)
Creates SIP ACK request and sends it to the remote target. The client transaction must be an INVITE transaction.
Pre-condition
Dialog().Connection().State()==EActive
Dialog().State()==CSIPDialogEConfirmed
leave
KErrArgument if aTransaction is not an INVITE transaction.
leave
KErrSIPInvalidDialogState if ACK can't be sent in the current dialog state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted
capability
NetworkServices

Parameters

const CSIPClientTransaction & aTransactiona SIP INVITE client transaction to acknowledge
CSIPMessageElements * aElements = 0optional SIP message headers and body. Ownership is transferred.

SendByeL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction *SendByeL(CSIPMessageElements *aElements = 0)
Creates SIP BYE request and sends it to the remote target.
Pre-condition
Dialog().Connection().State()==EActive
Dialog().State()==CSIPDialogEEarly || Dialog().State()==CSIPDialogEConfirmed
leave
KErrSIPInvalidDialogState if BYE can't be sent in the current dialog state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0contains user SIP headers and content. Ownership is transferred.

SendInviteL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction *SendInviteL(CSIPMessageElements *aElements = 0)
Creates INVITE and sends it to the remote target. 101-199 or 2xx response will create INVITE dialog association in case of first INVITE within this dialog association. Subsequent INVITE requests are re-INVITEs.
Pre-condition
Dialog().Connection().State()==EActive
Dialog().State()==CSIPDialogEInit || Dialog().State()==CSIPDialogEConfirmed
leave
KErrSIPInvalidDialogState if dialog is not in a correct state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0contains user SIP headers and content. Ownership is transferred.

SendPrackL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction *SendPrackL(CSIPMessageElements *aElements = 0)
Creates PRACK and sends it to the remote target.
Pre-condition
Dialog().Connection().State()==EActive
Dialog().State()==CSIPDialogEEarly || Dialog().State()==CSIPDialogEConfirmed
aElements must not contain Contact headers
leave
KErrSIPInvalidDialogState if dialog is not in a correct state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0contains user SIP headers and content. Ownership is transferred.

SendUpdateL(CSIPMessageElements *)

IMPORT_C CSIPClientTransaction *SendUpdateL(CSIPMessageElements *aElements = 0)
Creates UPDATE and sends it to the remote target.
Pre-condition
Dialog().Connection().State()==EActive
Dialog().State()==CSIPDialogEEarly || Dialog().State()==CSIPDialogEConfirmed
leave
KErrSIPInvalidDialogState if dialog is not in a correct state
leave
KErrSIPResourceNotAvailable if a required SIP Client API object has been deleted
capability
NetworkServices

Parameters

CSIPMessageElements * aElements = 0contains user SIP headers and content. Ownership is transferred.