CSIPReferDialogAssoc Class Reference

#include <mw/sipreferdialogassoc.h>

Link against: sipclient.lib

class CSIPReferDialogAssoc : public CSIPDialogAssocBase

Inherits from

Public Member Functions
~CSIPReferDialogAssoc()
CSIPClientTransaction *DoSendReferL(CSIPMessageElements *, TBool)
IMPORT_C CSIPReferDialogAssoc *NewL(CSIPDialog &, CSIPReferToHeader *)
IMPORT_C CSIPReferDialogAssoc *NewL(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc *NewL(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPDialog &, CSIPReferToHeader *)
IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPConnection &, CSIPFromHeader *, CUri8 *, CSIPReferToHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPConnection &, CUri8 *, const MSIPRegistrationContext &, CSIPReferToHeader *, CSIPFromHeader *, CSIPToHeader *, CSIPContactHeader *)
IMPORT_C const CSIPReferToHeader &ReferTo()
IMPORT_C CSIPClientTransaction *SendReferL(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 REFER dialog associations. It provides services for creating, using and terminating SIP REFER dialog associations. User can have multiple REFER 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 "Refer-to" header semantics.

Constructor & Destructor Documentation

~CSIPReferDialogAssoc ( )

IMPORT_C~CSIPReferDialogAssoc()

Destructor

Member Function Documentation

DoSendReferL ( CSIPMessageElements *, TBool )

CSIPClientTransaction *DoSendReferL(CSIPMessageElements *aElements,
TBoolaWithinDialog
)

Sends a REFER request.

Pre-condition
Dialog().Connection().State()==EActive
Parameters
aElementsoptional SIP message headers and body. Ownership is transferred.
aWithinDialogETrue if REFER is sent within dialog, EFalse if REFER creates the dialog.
Return Value
REFER SIP transaction. Ownership is transferred.

NewL ( CSIPDialog &, CSIPReferToHeader * )

IMPORT_C CSIPReferDialogAssoc *NewL(CSIPDialog &aDialog,
CSIPReferToHeader *aReferTo
)[static]
Two-phased constructor. Should be used if response to the SIP request to be sent will create a SIP dialog association.
Pre-condition
aReferTo != 0
Parameters
aDialoga dialog to be associated with
aReferToreferred-to resource; Ownership is transferred
Return Value
New object; the ownership is transferred
Leave Codes
KErrArgumentif aReferTo == 0

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

IMPORT_C CSIPReferDialogAssoc *NewL(CSIPConnection &aConnection,
CSIPFromHeader *aFrom,
CUri8 *aRemoteUri,
CSIPReferToHeader *aReferTo,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aFrom != 0

aReferTo != 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.
aReferToreferred-to resource; 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; the ownership is transferred.
Leave Codes
KErrArgumentif aFrom == 0 or aRemoteuri == 0 or aReferTo == 0

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

IMPORT_C CSIPReferDialogAssoc *NewL(CSIPConnection &aConnection,
CUri8 *aRemoteUri,
const MSIPRegistrationContext &aContext,
CSIPReferToHeader *aReferTo,
CSIPFromHeader *aFrom = 0,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aReferTo != 0

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.
aContextused for selecting outbound proxy and originator's address (AOR) and contact
aReferToreferred-to resource; Ownership is transferred
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: the ownership is transferred.
Leave Codes
KErrArgumentif aRemoteuri == 0 or aReferTo == 0
KErrSIPInvalidRegistrationStateif aContext.IsContextActive() == EFalse

NewLC ( CSIPDialog &, CSIPReferToHeader * )

IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPDialog &aDialog,
CSIPReferToHeader *aReferTo
)[static]
Two-phased constructor. Must be used if response to the SIP request to be sent will create a SIP dialog association.
Pre-condition
aReferTo != 0
Parameters
aDialoga dialog to be associated with
aReferToreferred-to resource; Ownership is transferred
Return Value
New object; the ownership is transferred
Leave Codes
KErrArgumentif aReferTo == 0

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

IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPConnection &aConnection,
CSIPFromHeader *aFrom,
CUri8 *aRemoteUri,
CSIPReferToHeader *aReferTo,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aFrom != 0

aReferTo != 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.
aReferToreferred-to resource; 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; the ownership is transferred.
Leave Codes
KErrArgumentif aFrom == 0 or aRemoteuri == 0 or aReferTo == 0

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

IMPORT_C CSIPReferDialogAssoc *NewLC(CSIPConnection &aConnection,
CUri8 *aRemoteUri,
const MSIPRegistrationContext &aContext,
CSIPReferToHeader *aReferTo,
CSIPFromHeader *aFrom = 0,
CSIPToHeader *aTo = 0,
CSIPContactHeader *aContact = 0
)[static]
Two-phased constructor
Pre-condition
aReferTo != 0

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.
aContextused for selecting outbound proxy and originator's address (AOR) and contact
aReferToreferred-to resource; Ownership is transferred
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; the ownership is transferred.
Leave Codes
KErrArgumentif aRemoteuri == 0 or aReferTo == 0
KErrSIPInvalidRegistrationStateif aContext.IsContextActive() == EFalse

ReferTo ( )

IMPORT_C const CSIPReferToHeader &ReferTo()const

Gets referred-to resouce

Return Value
referred-to resource

SendReferL ( CSIPMessageElements * )

IMPORT_C CSIPClientTransaction *SendReferL(CSIPMessageElements *aElements = 0)
Creates REFER and sends it to the remote target. leaves on failure. 101-199 or 2xx response will create REFER dialog association in case of first REFER request within this dialog association.
Pre-condition
Dialog().Connection().State()==EActive

Dialog().State()==CSIPDialog::EInit || Dialog().State()==CSIPDialog::EConfirmed

Parameters
aElementsoptional SIP message headers and body. Ownership is transferred.
Return Value
REFER SIP transaction. Ownership is transferred.
Leave Codes
KErrSIPInvalidDialogStateif dialog is in wrong state
KErrSIPResourceNotAvailableif a required SIP Client API object has been deleted.
Capability
NetworkServices