CSIPInviteDialogAssoc Class Reference

#include <mw/sipinvitedialogassoc.h>

Link against: sipclient.lib

class CSIPInviteDialogAssoc : public CSIPDialogAssocBase

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 *)
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 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.

Constructor & Destructor Documentation

~CSIPInviteDialogAssoc ( )

IMPORT_C~CSIPInviteDialogAssoc()

Destructor

Member Function Documentation

DoSendAckL ( const CSIPClientTransaction &, CSIPMessageElements * )

voidDoSendAckL(const CSIPClientTransaction &aTransaction,
CSIPMessageElements *aElements
)

Sends ACK

Parameters
aTransactiona SIP INVITE client transaction to acknowledge
aElementsoptional SIP message headers and body. Ownership is transferred.

DoSendCancelL ( TUint32 )

CSIPClientTransaction *DoSendCancelL(TUint32aRequestId)

DoSendInviteL ( CSIPMessageElements * )

CSIPClientTransaction *DoSendInviteL(CSIPMessageElements *aElements)

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

Parameters
aElementscontains user SIP headers and content. Ownership is transferred.
Return Value
INVITE SIP transaction. Ownership is transferred.

DoSendRequestWithinDialogL ( RStringF, CSIPMessageElements * )

CSIPClientTransaction *DoSendRequestWithinDialogL(RStringFaMethod,
CSIPMessageElements *aElements
)

NewL ( CSIPDialog & )

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

Two-phased constructor.

Parameters
aDialoga dialog to be associated with
Return Value
New object, ownership is transferred.

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

Parameters
aTransactiona SIP server transaction
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aTransaction.Type() !=
KErrSIPInvalidTransactionStateif aTransaction.State() !=
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted

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

Parameters
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aTransaction.Type() !=
KErrSIPInvalidTransactionStateif aTransaction.State() !=
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted

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.

Parameters
aConnectiona SIP connection to be used with dialog association
aFromoriginator's address; the ownership is transfered
aRemoteUria remote target URI that identifies a resource that the request is addressed to. The ownership is transferred.
aTological recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
aContacta contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aFrom == 0 or aRemoteUri == 0

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

Parameters
aConnectiona SIP connection to be used with dialog association
aRemoteUria remote target URI that identifies a resource that the request is targeted to. The ownership is transferred.
aContextused for selecting outbound proxy and originator's address (AOR) and contact
aFromoriginator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
aTological recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
aContacta contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aRemoteUri == 0
KErrSIPInvalidRegistrationStateif aContext.IsContextActive() == EFalse

NewLC ( CSIPDialog & )

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

Two-phased constructor.

Parameters
aDialoga dialog to be associated with
Return Value
New object, ownership is transferred.

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

Parameters
aTransactiona SIP server transaction
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aTransaction.Type() !=
KErrSIPInvalidTransactionStateif aTransaction.State() !=
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted

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

Parameters
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aTransaction.Type() !=
KErrSIPInvalidTransactionStateif aTransaction.State() !=
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted

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.

Parameters
aFromoriginator's address; the ownership is transfered
aRemoteUria remote target URI that identifies a resource that the request is addressed to. The ownership is transferred.
aTological recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
aContacta contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aFrom == 0 or aRemoteUri == 0

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

Parameters
aConnectiona SIP connection to be used with dialog association
aRemoteUria remote target URI that identifies a resource that the request is targeted to. The ownership is transferred.
aContextused for selecting outbound proxy and originator's address (AOR) and contact
aFromoriginator's address. If not defined it will constructed using registration context (User's AOR); the ownership is transfered
aTological recipient's address; if not defined the remote target uri will be used for To-header construction; the ownership is transfered
aContacta contact to be used in dialog creation. Must be given only if user intends to re-direct future requests; the ownership is transfered
Return Value
New object, ownership is transferred.
Leave Codes
KErrArgumentif aRemoteUri == 0
KErrSIPInvalidRegistrationStateif aContext.IsContextActive() == EFalse

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()==CSIPDialog::EConfirmed

Parameters
aTransactiona SIP INVITE client transaction to acknowledge
aElementsoptional SIP message headers and body. Ownership is transferred.
Leave Codes
KErrArgumentif aTransaction is not an INVITE transaction.
KErrSIPInvalidDialogStateif ACK can't be sent in the current dialog state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted
Capability
NetworkServices

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()==CSIPDialog::EEarly || Dialog().State()==CSIPDialog::EConfirmed

Parameters
aElementscontains user SIP headers and content. Ownership is transferred.
Return Value
SIP BYE transaction. Ownership is transferred.
Leave Codes
KErrSIPInvalidDialogStateif BYE can't be sent in the current dialog state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted
Capability
NetworkServices

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()==CSIPDialog::EInit || Dialog().State()==CSIPDialog::EConfirmed

Parameters
aElementscontains user SIP headers and content. Ownership is transferred.
Return Value
INVITE SIP transaction. Ownership is transferred.
Leave Codes
KErrSIPInvalidDialogStateif dialog is not in a correct state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted
Capability
NetworkServices

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()==CSIPDialog::EEarly || Dialog().State()==CSIPDialog::EConfirmed aElements must not contain Contact headers

Parameters
aElementscontains user SIP headers and content. Ownership is transferred.
Return Value
PRACK SIP transaction. Ownership is transferred.
Leave Codes
KErrSIPInvalidDialogStateif dialog is not in a correct state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted
Capability
NetworkServices

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()==CSIPDialog::EEarly || Dialog().State()==CSIPDialog::EConfirmed

Parameters
aElementscontains user SIP headers and content. Ownership is transferred.
Return Value
UPDATE SIP transaction. Ownership is transferred.
Leave Codes
KErrSIPInvalidDialogStateif dialog is not in a correct state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted
Capability
NetworkServices