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

ParameterDescription
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.

ParameterDescription
aElementscontains user SIP headers and content. Ownership is transferred.

Returns: 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.

ParameterDescription
aDialoga dialog to be associated with

Returns: 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

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
ParameterDescription
aTransactiona SIP server transaction

Returns: New object, ownership is transferred.

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
ParameterDescription
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction

Returns: New object, ownership is transferred.

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
ParameterDescription
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

Returns: New object, ownership is transferred.

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
ParameterDescription
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

Returns: New object, ownership is transferred.

NewLC ( CSIPDialog & )

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

Two-phased constructor.

ParameterDescription
aDialoga dialog to be associated with

Returns: 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

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
ParameterDescription
aTransactiona SIP server transaction

Returns: New object, ownership is transferred.

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
ParameterDescription
aTransactiona SIP server transaction
aContextthat will be used for populating the Contact-header of the response to aTransaction

Returns: New object, ownership is transferred.

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
ParameterDescription
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

Returns: New object, ownership is transferred.

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
ParameterDescription
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

Returns: New object, ownership is transferred.

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
ParameterDescription
aTransactiona SIP INVITE client transaction to acknowledge
aElementsoptional 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
ParameterDescription
aElementscontains user SIP headers and content. Ownership is transferred.

Returns: SIP BYE transaction. 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
ParameterDescription
aElementscontains user SIP headers and content. Ownership is transferred.

Returns: INVITE SIP transaction. 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
ParameterDescription
aElementscontains user SIP headers and content. Ownership is transferred.

Returns: PRACK SIP transaction. 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
ParameterDescription
aElementscontains user SIP headers and content. Ownership is transferred.

Returns: UPDATE SIP transaction. Ownership is transferred.