CSIPDialogImplementation Class Reference

class CSIPDialogImplementation : public CBase

Implementation class for managing SIP dialogs.

Inherits from

  • CSIPDialogImplementation
Public Member Functions
~CSIPDialogImplementation()
voidAddAssocL(CSIPDialogAssocBase &, RStringF)
const CSIPCallIDHeader &CallIdL()
voidChangeRefreshesToActive()
voidChangeState(const CDialogState *)
voidCheckNoTransactionExistsL()
CSIPConnection *Connection()
const CSIPConnection *Connection()
voidConnectionDeleted()
voidConnectionLost()
const CSIPContactHeader *ContactHeader()
voidCopyCallIdL(const CSIPDialogImplementation &)
CSIPClientTransaction *CreateClientTransactionL(RStringF, CSIPDialogAssocImplementation &, CSIPRefresh *)
CSIPDialog &Dialog()
TUint32 DialogId()
TBool DoesNotifyConfirmDialog()
TBool ErrorOccured(TInt, TUint32, CConnectionCallback &)
TBool ErrorOccured(TInt, TUint32, TUint32, CConnectionCallback &)
voidFillLocalTagL(TBool)
voidFillRemoteTagL(const CSIPToHeader &)
TBool FindAssocAndRefresh(TUint32, CSIPDialogAssocBase **, CSIPRefresh **)
TBool FindAssocAndRefreshL(TUint32, TUint32, CSIPDialogAssocBase **, CSIPRefresh **, CSIPTransactionBase **)
CSIPRefresh *FindRefresh(TUint32, TUint32)
CSIPTransactionBase *FindTransaction(TUint32)
TBool FindTransactionAndAssoc(TUint32, CSIPTransactionBase **, CSIPDialogAssocBase **)
const CSIPFromHeader &FromHeader()
CUri8 *GetUriFromContactL(const CSIPMessageElements &)
TBool IncomingRequestL(CSIPServerTransaction *, CConnectionCallback &)
TBool IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &)
TBool IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, TUint32, CConnectionCallback &)
voidInitialTransactionReceivedL(CSIPServerTransaction &)
voidInitialTransactionStarted(TUint32)
TBool IsAssociated(const CSIPDialogAssocBase &)
CSIPDialogImplementation *NewL(CSIPDialog *, CSIPConnectionImplementation &)
CSIPDialogImplementation *NewL(CSIPDialog *, CSIPConnectionImplementation &, const MSIPRegistrationContext &)
CSIPDialogImplementation *NewLC(CSIPConnectionImplementation &, const MSIPRegistrationContext *)
const MSIPRegistrationContext *RegistrationContext()
TUint32 RegistrationId()
const CUri8 &RemoteURI()
voidRemoveAssoc(const CSIPDialogAssocBase &)
TBool ResponseToRefreshL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &, const CDialogState &, const CDialogState &, const CDialogState &, TBool)
TInt ReuseInitialRequestData()
const RPointerArray< CSIPDialogAssocBase > &SIPDialogAssociations()
voidSendAckL(CSIPInviteDialogAssoc &, const CSIPClientTransaction &, CSIPMessageElements *)
CSIPClientTransaction *SendByeL(CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendCancelL(TUint32)
CSIPClientTransaction *SendDialogCreatingRequestL(CSIPDialogAssocImplementation &, CSIPMessageElements *, CSIPRefresh *)
CSIPClientTransaction *SendInviteL(CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendNonTargetRefreshRequestL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)
CSIPClientTransaction *SendNotifyL(CSIPNotifyDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendPrackL(CSIPInviteDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendReferL(CSIPReferDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendRequestInDialogL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)
voidSendResponseL(const CSIPResponseElements &, TUint32, TBool, TBool)
CSIPClientTransaction *SendSubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *, CSIPRefresh *)
CSIPClientTransaction *SendUnsubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)
CSIPClientTransaction *SendUpdateL(CSIPInviteDialogAssoc &, CSIPMessageElements *)
voidSetDialogId(TUint32)
voidSetHeadersL(CSIPFromHeader *, CSIPToHeader *, CUri8 *, CSIPContactHeader *)
CSIPDialog::TState State()
voidStoreCallIdL()
const CSIPToHeader &ToHeader()
CSIPClientTransaction *UpdateL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)
voidUpdateRemoteTargetL(RStringF, const CSIPMessageElements &)
voidUpdateState(const CSIPClientTransaction &, const CDialogState &, const CDialogState &, const CDialogState &)
TBool operator==(const CSIPDialogImplementation &)
Private Member Functions
CSIPDialogImplementation(CSIPConnectionImplementation &)
CSIPDialogImplementation(CSIPConnectionImplementation &, const MSIPRegistrationContext &)
voidCheckConnectionL()
voidConstructL(CSIPDialog *)
CSIPConnection *GetConnection()
TBool HasInviteAssoc()
voidInitialTransactionStarted(CSIPTransactionBase &)
const CDialogState &StateL()
UNIT_TEST(CSIP_Test)
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()
Private Attributes
CSIPCallIDHeader *iCallID
CSIPConnectionImplementation *iConnection
CSIPContactHeader *iContact
CSIPDialog *iDialog
RPointerArray< CSIPDialogAssocBase >iDialogAssocs
TUint32 iDialogId
CSIPFromHeader *iFrom
TUint32 iInitialRequestId
const MSIPRegistrationContext *iRegistration
CUri8 *iRemoteUri
const CDialogState *iState
TBool iStringPoolOpened
CSIPToHeader *iTo

Constructor & Destructor Documentation

CSIPDialogImplementation(CSIPConnectionImplementation &)

CSIPDialogImplementation(CSIPConnectionImplementation &aConnImplementation)[private]

Parameters

CSIPConnectionImplementation & aConnImplementation

CSIPDialogImplementation(CSIPConnectionImplementation &, const MSIPRegistrationContext &)

CSIPDialogImplementation(CSIPConnectionImplementation &aConnImplementation,
const MSIPRegistrationContext &aContext
)[private]

Parameters

CSIPConnectionImplementation & aConnImplementation
const MSIPRegistrationContext & aContext

~CSIPDialogImplementation()

~CSIPDialogImplementation()

Destructor

Member Functions Documentation

AddAssocL(CSIPDialogAssocBase &, RStringF)

voidAddAssocL(CSIPDialogAssocBase &aAssoc,
RStringFaType
)
Add a dialog association to this dialog. A dialog can have only one INVITE association at a time.
leave
KErrAlreadyExists If aAssoc is already associated with this dialog or if attempting to add another INVITE dialog association.

Parameters

CSIPDialogAssocBase & aAssocDialog association
RStringF aTypeType of the dialog association

CallIdL()

const CSIPCallIDHeader &CallIdL()const

Gets the Call-ID of the dialog.

ChangeRefreshesToActive()

voidChangeRefreshesToActive()const

Searches if there are dialog related requests, that are being refreshed. If found, those that are in state CSIPRefresh::EInactive are moved into CSIPRefresh::EActive state.

ChangeState(const CDialogState *)

voidChangeState(const CDialogState *aNewState)

Changes the dialog's current state.

Parameters

const CDialogState * aNewStateState which dialog enters

CheckConnectionL()

voidCheckConnectionL()const [private]

Checks that CSIPConnection is available for use (not NULL). If iConnection is NULL, it means user has deleted a resource needed by CSIPDialogImplementation, and this function leaves.

CheckNoTransactionExistsL()

voidCheckNoTransactionExistsL()const

Connection()

CSIPConnection *Connection()

Gets the SIP connection used for this dialog

Connection()

const CSIPConnection *Connection()const

Gets the SIP connection used for this dialog.

ConnectionDeleted()

voidConnectionDeleted()

Informs CSIPDialogImplementation that the associated CSIPConnection has been deleted. After this the CSIPDialogImplementation object can't be used anymore.

ConnectionLost()

voidConnectionLost()

Connection state is no longer available.

ConstructL(CSIPDialog *)

voidConstructL(CSIPDialog *aDialog)[private]

Parameters

CSIPDialog * aDialog

ContactHeader()

const CSIPContactHeader *ContactHeader()const

CopyCallIdL(const CSIPDialogImplementation &)

voidCopyCallIdL(const CSIPDialogImplementation &aDialog)
Copies Call-ID from aDialog.
Pre-condition
iCallID == NULL

Parameters

const CSIPDialogImplementation & aDialogCSIPDialogImplementation where the Call-ID is copied from.

CreateClientTransactionL(RStringF, CSIPDialogAssocImplementation &, CSIPRefresh *)

CSIPClientTransaction *CreateClientTransactionL(RStringFaType,
CSIPDialogAssocImplementation &aAssoc,
CSIPRefresh *aRefresh
)const

Creates a client transaction.

Parameters

RStringF aTypeTransaction type
CSIPDialogAssocImplementation & aAssocDialog association with which the transaction will be associated
CSIPRefresh * aRefreshIf transaction is refreshed, this points to a CSIPRefresh, otherwise this is NULL. Ownership is not transferred.

Dialog()

CSIPDialog &Dialog()

DialogId()

TUint32 DialogId()const

Obtains the dialog id.

DoesNotifyConfirmDialog()

TBool DoesNotifyConfirmDialog()const

Determine if an incoming NOTIFY causes dialog to enter confirmed state.

ErrorOccured(TInt, TUint32, CConnectionCallback &)

TBool ErrorOccured(TIntaError,
TUint32aRequestId,
CConnectionCallback &aCallback
)

Parameters

TInt aError
TUint32 aRequestId
CConnectionCallback & aCallback

ErrorOccured(TInt, TUint32, TUint32, CConnectionCallback &)

TBool ErrorOccured(TIntaError,
TUint32aRefreshId,
TUint32aRequestId,
CConnectionCallback &aCallback
)

Parameters

TInt aError
TUint32 aRefreshId
TUint32 aRequestId
CConnectionCallback & aCallback

FillLocalTagL(TBool)

voidFillLocalTagL(TBoolaClientInitiatedDialog)const

If the local tag is not yet known, obtain it from the SIP server via an ITC operation.

Parameters

TBool aClientInitiatedDialogETrue if the dialog creating request was sent by the local endpoint EFalse otherwise

FillRemoteTagL(const CSIPToHeader &)

voidFillRemoteTagL(const CSIPToHeader &aToHeader)const

If aToHeader has a tag parameter, the tag is stored as a remote-tag in the To-header of the dialog.

Parameters

const CSIPToHeader & aToHeaderTo-header of a response from remote endpoint.

FindAssocAndRefresh(TUint32, CSIPDialogAssocBase **, CSIPRefresh **)

TBool FindAssocAndRefresh(TUint32aRefreshId,
CSIPDialogAssocBase **aAssoc,
CSIPRefresh **aRefresh
)const

Searches for the dialog association and refresh by the aRefreshId.

Parameters

TUint32 aRefreshIdRefreshId
CSIPDialogAssocBase ** aAssoc
CSIPRefresh ** aRefresh

FindAssocAndRefreshL(TUint32, TUint32, CSIPDialogAssocBase **, CSIPRefresh **, CSIPTransactionBase **)

TBool FindAssocAndRefreshL(TUint32aRequestId,
TUint32aRefreshId,
CSIPDialogAssocBase **aAssoc,
CSIPRefresh **aRefresh,
CSIPTransactionBase **aTransaction
)const

Searches for the dialog association, refresh and transaction. Both aRequestId and aRefreshId are used for search, because either of them might not yet be stored in the SIP API.

Parameters

TUint32 aRequestIdRequestId
TUint32 aRefreshIdRefreshId
CSIPDialogAssocBase ** aAssocOUT: Dialog association, if found
CSIPRefresh ** aRefreshOUT: CSIPRefresh, if found
CSIPTransactionBase ** aTransactionOUT: Transaction, if found

FindRefresh(TUint32, TUint32)

CSIPRefresh *FindRefresh(TUint32aRequestId,
TUint32aRefreshId
)const

Finds a refresh by first the given request ID and the the refresh ID. All dialog associations are searched through.

Parameters

TUint32 aRequestIdRequestId associated with the refresh instance
TUint32 aRefreshIdRefreshId associated with the refresh instance

FindTransaction(TUint32)

CSIPTransactionBase *FindTransaction(TUint32aRequestId)const

Searches for a transaction having the specified id.

Parameters

TUint32 aRequestIdIdentifier used for searching the transaction.

FindTransactionAndAssoc(TUint32, CSIPTransactionBase **, CSIPDialogAssocBase **)

TBool FindTransactionAndAssoc(TUint32aRequestId,
CSIPTransactionBase **aTransaction,
CSIPDialogAssocBase **aAssoc
)const

Searches for a transaction having the specified id.

Parameters

TUint32 aRequestIdIdentifier used for searching the transaction
CSIPTransactionBase ** aTransactionOUT: pointer is set to the found transaction
CSIPDialogAssocBase ** aAssocOUT: pointer is set to the dialog association related to the found transaction

FromHeader()

const CSIPFromHeader &FromHeader()const

Gets originator's address

GetConnection()

CSIPConnection *GetConnection()const [private]

GetUriFromContactL(const CSIPMessageElements &)

CUri8 *GetUriFromContactL(const CSIPMessageElements &aElements)const

Creates a copy of the URI in Contact-header, if aElements contains exactly one Contact-header.

Parameters

const CSIPMessageElements & aElementsMessage elements

HasInviteAssoc()

TBool HasInviteAssoc()const [private]

Checks whether the dialog has an INVITE assocation.

IncomingRequestL(CSIPServerTransaction *, CConnectionCallback &)

TBool IncomingRequestL(CSIPServerTransaction *aTransaction,
CConnectionCallback &aCallback
)

Handle an incoming SIP request.

Parameters

CSIPServerTransaction * aTransactionServer transaction, ownership is transferred.
CConnectionCallback & aCallbackFor selecting a callback function and its parameters

IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &)

TBool IncomingResponseL(CSIPResponseElements *aElements,
TUint32aRequestId,
TUint32aDialogId,
CConnectionCallback &aCallback
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aDialogId
CConnectionCallback & aCallback

IncomingResponseL(CSIPResponseElements *, TUint32, TUint32, TUint32, CConnectionCallback &)

TBool IncomingResponseL(CSIPResponseElements *aElements,
TUint32aRequestId,
TUint32aRefreshId,
TUint32aDialogId,
CConnectionCallback &aCallback
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aRefreshId
TUint32 aDialogId
CConnectionCallback & aCallback

InitialTransactionReceivedL(CSIPServerTransaction &)

voidInitialTransactionReceivedL(CSIPServerTransaction &aTransaction)

Stores the To and From headers of the server transaction and marks the transaction to affect the dialog state.

Pre-condition

Parameters

CSIPServerTransaction & aTransactionServer transaction which causes a dialog to be created.

InitialTransactionStarted(TUint32)

voidInitialTransactionStarted(TUint32aRequestId)

The dialog creating transaction has been initiated.

Pre-condition
aRequestId != 0
iInitialRequestId == 0
Post-condition
iInitialRequestId == aRequestId

Parameters

TUint32 aRequestIdRequestId of the transaction that creates the dialog

InitialTransactionStarted(CSIPTransactionBase &)

voidInitialTransactionStarted(CSIPTransactionBase &aTransaction)[private]

The dialog creating transaction has been created. The SIP responses to aTransaction will affect the state of dialog.

Pre-condition
iInitialRequestId == 0

Parameters

CSIPTransactionBase & aTransactionTransaction that creates the dialog.

IsAssociated(const CSIPDialogAssocBase &)

TBool IsAssociated(const CSIPDialogAssocBase &aAssoc)const

Checks if the dialog association belongs to this dialog

Parameters

const CSIPDialogAssocBase & aAssoca dialog association

NewL(CSIPDialog *, CSIPConnectionImplementation &)

CSIPDialogImplementation *NewL(CSIPDialog *aDialog,
CSIPConnectionImplementation &aConnImplementation
)[static]

Two-phased constructor. This constructor should be used if the user has received SIP request that creates a SIP dialog association.

Parameters

CSIPDialog * aDialogDialog which creates this CSIPDialogImplementation. Ownership is transferred.
CSIPConnectionImplementation & aConnImplementationImplementation of the used SIP connection

NewL(CSIPDialog *, CSIPConnectionImplementation &, const MSIPRegistrationContext &)

CSIPDialogImplementation *NewL(CSIPDialog *aDialog,
CSIPConnectionImplementation &aConnImplementation,
const MSIPRegistrationContext &aContext
)[static]

Two-phased constructor This constructor should be used if the user has received SIP request that creates a SIP dialog association.

Parameters

CSIPDialog * aDialogDialog which creates this CSIPDialogImplementation. Ownership is transferred.
CSIPConnectionImplementation & aConnImplementationImplementation of the used SIP connection
const MSIPRegistrationContext & aContextRegistration context whose outbound proxy and other parameters are to be used.

NewLC(CSIPConnectionImplementation &, const MSIPRegistrationContext *)

CSIPDialogImplementation *NewLC(CSIPConnectionImplementation &aConnImplementation,
const MSIPRegistrationContext *aContext = 0
)[static]

Creates a new CSIPDialogImplementation, and pushes it to cleanupstack.

Parameters

CSIPConnectionImplementation & aConnImplementationConnection implementation to use with the new dialog.
const MSIPRegistrationContext * aContext = 0Registration context whose outbound proxy and other parameters are to be used. If NULL, context isn't used. Ownership is not transferred.

RegistrationContext()

const MSIPRegistrationContext *RegistrationContext()const

Gets used registration context for this dialog

RegistrationId()

TUint32 RegistrationId()const

RemoteURI()

const CUri8 &RemoteURI()const

Gets remote-uri used during dialog creation

RemoveAssoc(const CSIPDialogAssocBase &)

voidRemoveAssoc(const CSIPDialogAssocBase &aAssoc)

Remove a dialog association from this dialog. When there are no associations left, the dialog is deleted.

Parameters

const CSIPDialogAssocBase & aAssocDialog association

ResponseToRefreshL(CSIPResponseElements *, TUint32, TUint32, CConnectionCallback &, const CDialogState &, const CDialogState &, const CDialogState &, TBool)

TBool ResponseToRefreshL(CSIPResponseElements *aElements,
TUint32aRequestId,
TUint32aRefreshId,
CConnectionCallback &aCallback,
const CDialogState &aEarly,
const CDialogState &aConfirmed,
const CDialogState &aTerminated,
TBoolaIsConfirmed = EFalse
)

Parameters

CSIPResponseElements * aElements
TUint32 aRequestId
TUint32 aRefreshId
CConnectionCallback & aCallback
const CDialogState & aEarly
const CDialogState & aConfirmed
const CDialogState & aTerminated
TBool aIsConfirmed = EFalse

ReuseInitialRequestData()

TInt ReuseInitialRequestData()

SIPDialogAssociations()

const RPointerArray< CSIPDialogAssocBase > &SIPDialogAssociations()const

Gets all dialog associations.

SendAckL(CSIPInviteDialogAssoc &, const CSIPClientTransaction &, CSIPMessageElements *)

voidSendAckL(CSIPInviteDialogAssoc &aAssoc,
const CSIPClientTransaction &aTransaction,
CSIPMessageElements *aElements
)const

Parameters

CSIPInviteDialogAssoc & aAssoc
const CSIPClientTransaction & aTransaction
CSIPMessageElements * aElements

SendByeL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendByeL(CSIPInviteDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendCancelL(TUint32)

CSIPClientTransaction *SendCancelL(TUint32aRequestId)const

Parameters

TUint32 aRequestId

SendDialogCreatingRequestL(CSIPDialogAssocImplementation &, CSIPMessageElements *, CSIPRefresh *)

CSIPClientTransaction *SendDialogCreatingRequestL(CSIPDialogAssocImplementation &aAssoc,
CSIPMessageElements *aElements,
CSIPRefresh *aRefresh = 0
)

Send a request that creates the dialog.

Parameters

CSIPDialogAssocImplementation & aAssocDialog association which sends the request.
CSIPMessageElements * aElementsMessage elements, can be NULL. Ownership is transferred.
CSIPRefresh * aRefresh = 0Refresh object, if the request is to be refreshed. Ownership isn't transferred.

SendInviteL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendInviteL(CSIPInviteDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendNonTargetRefreshRequestL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)

CSIPClientTransaction *SendNonTargetRefreshRequestL(CSIPDialogAssocImplementation &aAssoc,
RStringFaMethod,
CSIPMessageElements *aElements
)const

Parameters

CSIPDialogAssocImplementation & aAssoc
RStringF aMethod
CSIPMessageElements * aElements

SendNotifyL(CSIPNotifyDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendNotifyL(CSIPNotifyDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPNotifyDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendPrackL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendPrackL(CSIPInviteDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendReferL(CSIPReferDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendReferL(CSIPReferDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPReferDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendRequestInDialogL(CSIPDialogAssocImplementation &, RStringF, CSIPMessageElements *)

CSIPClientTransaction *SendRequestInDialogL(CSIPDialogAssocImplementation &aAssoc,
RStringFaMethod,
CSIPMessageElements *aElements
)const

Sends a SIP request described by aElements withing dialog and creates a client transaction representing the request.

Pre-condition
aMethod.Length() > 0

Parameters

CSIPDialogAssocImplementation & aAssocDialog association with which the transaction will be associated
RStringF aMethodSIP request method
CSIPMessageElements * aElementsOptional SIP message headers and body, can be NULL. Ownership is transferred.

SendResponseL(const CSIPResponseElements &, TUint32, TBool, TBool)

voidSendResponseL(const CSIPResponseElements &aElements,
TUint32aRequestId,
TBoolaAffectsDialogState,
TBoolaTargetRefresh = EFalse
)

Send a SIP response to network. Application can't send a 100 response. That has already been checked by CSIPResponseElements.

Parameters

const CSIPResponseElements & aElementsResponse elements
TUint32 aRequestIdIdentifies the request to which this response is for
TBool aAffectsDialogStateTells if the response can cause dialog to enter another state.
TBool aTargetRefresh = EFalseTells if this is a response to a target refresh request.

SendSubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *, CSIPRefresh *)

CSIPClientTransaction *SendSubscribeL(CSIPSubscribeDialogAssoc &aAssoc,
CSIPMessageElements *aElements,
CSIPRefresh *aRefresh
)const

Parameters

CSIPSubscribeDialogAssoc & aAssoc
CSIPMessageElements * aElements
CSIPRefresh * aRefresh

SendUnsubscribeL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendUnsubscribeL(CSIPSubscribeDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPSubscribeDialogAssoc & aAssoc
CSIPMessageElements * aElements

SendUpdateL(CSIPInviteDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *SendUpdateL(CSIPInviteDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPInviteDialogAssoc & aAssoc
CSIPMessageElements * aElements

SetDialogId(TUint32)

voidSetDialogId(TUint32aDialogId)

Set the dialog id.

Parameters

TUint32 aDialogIdDialog id

SetHeadersL(CSIPFromHeader *, CSIPToHeader *, CUri8 *, CSIPContactHeader *)

voidSetHeadersL(CSIPFromHeader *aFrom,
CSIPToHeader *aTo,
CUri8 *aRemoteUri,
CSIPContactHeader *aContact
)

Sets the dialog related headers when a SIP request that creates a SIP dialog association, is sent. Headers can be set only once. If aTo is NULL, aRemoteUri is used as To-header.

Pre-condition
aRemoteUri != NULL && iRemoteUri == NULL && iFrom == NULL && iTo == NULL && iContact == NULL

Parameters

CSIPFromHeader * aFromOriginator's address, can be NULL. Ownership is transferred.
CSIPToHeader * aToRecipient's address, can be NULL. Ownership is transferred
CUri8 * aRemoteUri
CSIPContactHeader * aContactContact to be used in dialog creation, can be NULL. Must be given only if user intends to re-direct future requests. Ownership is transferred.

State()

CSIPDialog::TState State()const

Gets dialog state

StateL()

const CDialogState &StateL()const [private]

Returns the current dialog state. If state handler is not available, meaning user has deleted a resource needed by CSIPDialogImplementation, this function leaves.

StoreCallIdL()

voidStoreCallIdL()

Get the Call-ID from SIP Client and store it.

ToHeader()

const CSIPToHeader &ToHeader()const

Gets recipient's address

UNIT_TEST(CSIP_Test)

UNIT_TEST(CSIP_Test)const [private]

Parameters

CSIP_Test

UpdateL(CSIPSubscribeDialogAssoc &, CSIPMessageElements *)

CSIPClientTransaction *UpdateL(CSIPSubscribeDialogAssoc &aAssoc,
CSIPMessageElements *aElements
)const

Parameters

CSIPSubscribeDialogAssoc & aAssoc
CSIPMessageElements * aElements

UpdateRemoteTargetL(RStringF, const CSIPMessageElements &)

voidUpdateRemoteTargetL(RStringFaMethod,
const CSIPMessageElements &aElements
)

If aMethod is a target refresh request, and aElements contains a Contact-header, the remote target URI of the dialog is updated.

Parameters

RStringF aMethodSIP request method
const CSIPMessageElements & aElementsMessage elements

UpdateState(const CSIPClientTransaction &, const CDialogState &, const CDialogState &, const CDialogState &)

voidUpdateState(const CSIPClientTransaction &aTransaction,
const CDialogState &aEarly,
const CDialogState &aConfirmed,
const CDialogState &aTerminated
)

Based on the received response, dialog may enter another state. A 100 response should not have a To-tag, so dialog won't enter Early-state when a 100 is received.

Parameters

const CSIPClientTransaction & aTransactionClient transaction carrying the received response
const CDialogState & aEarlyEarly-state of the dialog state machine
const CDialogState & aConfirmedConfirmed-state of the dialog state machine
const CDialogState & aTerminatedTerminated-state of the dialog state machine

operator==(const CSIPDialogImplementation &)

TBool operator==(const CSIPDialogImplementation &aDialog)const

Compares this object to another object

Parameters

const CSIPDialogImplementation & aDialogCSIPDialogImplementation object to compare

Member Data Documentation

CSIPCallIDHeader * iCallID

CSIPCallIDHeader *iCallID[private]

CSIPConnectionImplementation * iConnection

CSIPConnectionImplementation *iConnection[private]

CSIPContactHeader * iContact

CSIPContactHeader *iContact[private]

CSIPDialog * iDialog

CSIPDialog *iDialog[private]

RPointerArray< CSIPDialogAssocBase > iDialogAssocs

RPointerArray< CSIPDialogAssocBase >iDialogAssocs[private]

TUint32 iDialogId

TUint32 iDialogId[private]

CSIPFromHeader * iFrom

CSIPFromHeader *iFrom[private]

TUint32 iInitialRequestId

TUint32 iInitialRequestId[private]

const MSIPRegistrationContext * iRegistration

const MSIPRegistrationContext *iRegistration[private]

CUri8 * iRemoteUri

CUri8 *iRemoteUri[private]

const CDialogState * iState

const CDialogState *iState[private]

TBool iStringPoolOpened

TBool iStringPoolOpened[private]

CSIPToHeader * iTo

CSIPToHeader *iTo[private]