epoc32/include/sipinvitedialogassoc.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000 (2010-03-16)
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:
williamr@2
    15
* Name        : sipinvitedialogassoc.h
williamr@2
    16
* Part of     : SIP Client
williamr@2
    17
* Interface   : SDK API, SIP Client API
williamr@2
    18
* Version     : 1.0
williamr@2
    19
*
williamr@2
    20
*/
williamr@2
    21
williamr@2
    22
williamr@2
    23
williamr@2
    24
williamr@2
    25
#ifndef CSIPINVITEDIALOGASSOC_H
williamr@2
    26
#define CSIPINVITEDIALOGASSOC_H
williamr@2
    27
williamr@2
    28
// INCLUDES
williamr@2
    29
#include "sipdialogassocbase.h"
williamr@2
    30
williamr@2
    31
// CONSTANTS
williamr@2
    32
williamr@2
    33
// FORWARD DECLARATIONS
williamr@2
    34
class CUri8;
williamr@2
    35
class CSIPConnection;
williamr@2
    36
class CSIPServerTransaction;
williamr@2
    37
class CSIPFromHeader;
williamr@2
    38
class CSIPToHeader;
williamr@2
    39
class CSIPContactHeader;
williamr@2
    40
class MSIPRegistrationContext;
williamr@2
    41
williamr@2
    42
// CLASS DECLARATION
williamr@2
    43
williamr@2
    44
/**
williamr@2
    45
*  @publishedAll
williamr@2
    46
*  @released
williamr@2
    47
*
williamr@2
    48
*  Class for managing SIP dialog association created with INVITE.
williamr@2
    49
*  It provides services for creating, using and
williamr@2
    50
*  terminating SIP INVITE dialog association.
williamr@2
    51
*
williamr@2
    52
*  The user can have only one INVITE dialog association per dialog.
williamr@2
    53
* 
williamr@2
    54
*  @lib sipclient.lib
williamr@2
    55
*/
williamr@2
    56
class CSIPInviteDialogAssoc : public CSIPDialogAssocBase
williamr@2
    57
	{
williamr@2
    58
	public: // Constructors and destructor
williamr@2
    59
williamr@2
    60
		/**
williamr@2
    61
		* Two-phased constructor.
williamr@2
    62
		* @param aDialog a dialog to be associated with
williamr@2
    63
        * @return New object, ownership is transferred.
williamr@2
    64
		*/
williamr@2
    65
		IMPORT_C static CSIPInviteDialogAssoc* NewL(CSIPDialog& aDialog);
williamr@2
    66
williamr@2
    67
        /**
williamr@2
    68
		* Two-phased constructor.
williamr@2
    69
		* @param aDialog a dialog to be associated with
williamr@2
    70
        * @return New object, ownership is transferred.
williamr@2
    71
		*/
williamr@2
    72
		IMPORT_C static CSIPInviteDialogAssoc* NewLC(CSIPDialog& aDialog);
williamr@2
    73
williamr@2
    74
        /**
williamr@2
    75
        * Two-phased constructor.
williamr@2
    76
        * Should be used if response to the received SIP request will create
williamr@2
    77
        * a SIP dialog association.
williamr@2
    78
        * The server transaction must be a INVITE transaction.
williamr@2
    79
        * If SIP server transaction was received within an existing SIP dialog
williamr@2
    80
        * the created SIP dialog association will be correlated to that SIP
williamr@2
    81
        * dialog. Otherwise a new SIP dialog is created.
williamr@2
    82
        * @pre aTransaction.State() == CSIPTransactionBase::EProceeding
williamr@2
    83
        * @pre aTransaction.Type() == SipStrConsts::EInvite
williamr@2
    84
        * @param aTransaction a SIP server transaction 
williamr@2
    85
        * @return New object, ownership is transferred.
williamr@2
    86
        * @leave KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
williamr@2
    87
        * @leave KErrSIPInvalidTransactionState if aTransaction.State() !=
williamr@2
    88
        *	CSIPTransactionBase::EProceeding
williamr@2
    89
        * @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
    90
		*	object has been deleted
williamr@2
    91
        */
williamr@2
    92
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
    93
            NewL(CSIPServerTransaction& aTransaction);
williamr@2
    94
williamr@2
    95
        /**
williamr@2
    96
        * Two-phased constructor.
williamr@2
    97
        * Should be used if response to the received SIP request will create a
williamr@2
    98
        * SIP dialog association.
williamr@2
    99
        * The server transaction must be a INVITE transaction.
williamr@2
   100
        * If SIP server transaction was received within the existing SIP dialog
williamr@2
   101
        * the created SIP dialog association will be correlated to that
williamr@2
   102
        * SIP dialog.  Otherwise a new SIP dialog is created.
williamr@2
   103
		* @pre aTransaction.State() == CSIPTransactionBase::EProceeding
williamr@2
   104
		* @pre aTransaction.Type() == SipStrConsts::EInvite
williamr@2
   105
        * @param aTransaction a SIP server transaction
williamr@2
   106
        * @return New object, ownership is transferred.
williamr@2
   107
        * @leave KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
williamr@2
   108
        * @leave KErrSIPInvalidTransactionState if aTransaction.State() !=
williamr@2
   109
        *	CSIPTransactionBase::EProceeding
williamr@2
   110
        * @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   111
		*	object has been deleted
williamr@2
   112
        */
williamr@2
   113
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   114
            NewLC(CSIPServerTransaction& aTransaction);
williamr@2
   115
williamr@2
   116
        /**
williamr@2
   117
        * Two-phased constructor.
williamr@2
   118
        * Should be used if response to the received SIP request will create
williamr@2
   119
        * a SIP dialog association.
williamr@2
   120
        * The server transaction must be a INVITE transaction.
williamr@2
   121
        * If SIP server transaction was received within an existing SIP dialog
williamr@2
   122
        * the created SIP dialog association will be correlated to that SIP
williamr@2
   123
        * dialog. Otherwise a new SIP dialog is created.
williamr@2
   124
        * @pre aTransaction.State() == CSIPTransactionBase::EProceeding
williamr@2
   125
        * @pre aTransaction.Type() == SipStrConsts::EInvite
williamr@2
   126
		* @pre aContext.IsContextActive() == ETrue        
williamr@2
   127
        * @param aTransaction a SIP server transaction 
williamr@2
   128
        * @param aContext that will be used for populating 
williamr@2
   129
        *        the Contact-header of the response to aTransaction
williamr@2
   130
        * @return New object, ownership is transferred.
williamr@2
   131
        * @leave KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
williamr@2
   132
        * @leave KErrSIPInvalidTransactionState if aTransaction.State() !=
williamr@2
   133
        *	CSIPTransactionBase::EProceeding
williamr@2
   134
        * @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   135
		*	object has been deleted
williamr@2
   136
        */
williamr@2
   137
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   138
            NewL(CSIPServerTransaction& aTransaction,
williamr@2
   139
                 const MSIPRegistrationContext& aContext);
williamr@2
   140
williamr@2
   141
        /**
williamr@2
   142
        * Two-phased constructor.
williamr@2
   143
        * Should be used if response to the received SIP request will create a
williamr@2
   144
        * SIP dialog association.
williamr@2
   145
        * The server transaction must be a INVITE transaction.
williamr@2
   146
        * If SIP server transaction was received within the existing SIP dialog
williamr@2
   147
        * the created SIP dialog association will be correlated to that
williamr@2
   148
        * SIP dialog.  Otherwise a new SIP dialog is created.
williamr@2
   149
		* @pre aTransaction.State() == CSIPTransactionBase::EProceeding
williamr@2
   150
		* @pre aTransaction.Type() == SipStrConsts::EInvite
williamr@2
   151
		* @pre aContext.IsContextActive() == ETrue 
williamr@2
   152
        * @param aTransaction a SIP server transaction
williamr@2
   153
        * @param aContext that will be used for populating 
williamr@2
   154
        *        the Contact-header of the response to aTransaction        
williamr@2
   155
        * @return New object, ownership is transferred.
williamr@2
   156
        * @leave KErrArgument if aTransaction.Type() != SipStrConsts::EInvite
williamr@2
   157
        * @leave KErrSIPInvalidTransactionState if aTransaction.State() !=
williamr@2
   158
        *	CSIPTransactionBase::EProceeding
williamr@2
   159
        * @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   160
		*	object has been deleted
williamr@2
   161
        */
williamr@2
   162
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   163
            NewLC(CSIPServerTransaction& aTransaction,
williamr@2
   164
                  const MSIPRegistrationContext& aContext);
williamr@2
   165
williamr@2
   166
        /**
williamr@2
   167
        * Two-phased constructor
williamr@2
   168
        * @pre aFrom != 0
williamr@2
   169
        * @pre aRemoteUri != 0
williamr@2
   170
		* The user of the class must not define tags in From-header
williamr@2
   171
		* and To-header.        
williamr@2
   172
        * @param aConnection a SIP connection to be used with
williamr@2
   173
        *        dialog association
williamr@2
   174
        * @param aFrom originator's address; the ownership is transfered
williamr@2
   175
        * @param aRemoteUri a remote target URI that identifies a resource that
williamr@2
   176
        *		 the request is addressed to. The ownership is transferred.
williamr@2
   177
        * @param aTo logical recipient's address; if not defined
williamr@2
   178
        *        the remote target uri will be used for To-header
williamr@2
   179
        *        construction; the ownership is transfered
williamr@2
   180
        * @param aContact a contact to be used in dialog creation. Must be
williamr@2
   181
        *        given only if user intends to re-direct future requests; 
williamr@2
   182
        *        the ownership is transfered        
williamr@2
   183
        * @return New object, ownership is transferred.
williamr@2
   184
        * @leave KErrArgument if aFrom == 0 or aRemoteUri == 0
williamr@2
   185
        */
williamr@2
   186
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   187
            NewL(CSIPConnection& aConnection,
williamr@2
   188
                 CSIPFromHeader* aFrom,
williamr@2
   189
                 CUri8* aRemoteUri,
williamr@2
   190
                 CSIPToHeader* aTo=0,
williamr@2
   191
                 CSIPContactHeader* aContact=0);
williamr@2
   192
williamr@2
   193
        /**
williamr@2
   194
        * Two-phased constructor
williamr@2
   195
        * @pre aFrom != 0
williamr@2
   196
        * @pre aRemoteUri != 0
williamr@2
   197
		* The user of the class must not define tags in From-header
williamr@2
   198
		* and To-header.
williamr@2
   199
        * @param aSIPConnection a SIP connection to be used with
williamr@2
   200
        *        dialog association
williamr@2
   201
        * @param aFrom originator's address; the ownership is transfered
williamr@2
   202
        * @param aRemoteUri a remote target URI that identifies a resource that
williamr@2
   203
        *		 the request is addressed to. The ownership is transferred.
williamr@2
   204
        * @param aTo logical recipient's address; if not defined
williamr@2
   205
        *        the remote target uri will be used for To-header
williamr@2
   206
        *        construction; the ownership is transfered
williamr@2
   207
        * @param aContact a contact to be used in dialog creation. Must be
williamr@2
   208
        *        given only if user intends to re-direct future requests; 
williamr@2
   209
        *        the ownership is transfered
williamr@2
   210
        * @return New object, ownership is transferred.
williamr@2
   211
        * @leave KErrArgument if aFrom == 0 or aRemoteUri == 0
williamr@2
   212
        */
williamr@2
   213
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   214
            NewLC(CSIPConnection& aConnection,
williamr@2
   215
                  CSIPFromHeader* aFrom,
williamr@2
   216
                  CUri8* aRemoteUri,
williamr@2
   217
                  CSIPToHeader* aTo=0,
williamr@2
   218
                  CSIPContactHeader* aContact=0);
williamr@2
   219
williamr@2
   220
        /**
williamr@2
   221
        * Two-phased constructor
williamr@2
   222
		* @pre aRemoteUri != 0
williamr@2
   223
		* The user of the class must not define tags in From-header
williamr@2
   224
		* and To-header.
williamr@2
   225
        * @pre aContext.IsContextActive() == ETrue
williamr@2
   226
        * @param aConnection a SIP connection to be used with
williamr@2
   227
        *        dialog association        
williamr@2
   228
        * @param aRemoteUri a remote target URI that identifies a resource
williamr@2
   229
        *		 that the request is targeted to. The ownership is transferred.
williamr@2
   230
        * @param aContext used for selecting outbound 
williamr@2
   231
        *        proxy and originator's address (AOR) and contact
williamr@2
   232
        * @param aFrom originator's address. If not defined it will
williamr@2
   233
        *        constructed using registration context (User's AOR);
williamr@2
   234
        *        the ownership is transfered
williamr@2
   235
        * @param aTo logical recipient's address; if not defined
williamr@2
   236
        *        the remote target uri will be used for To-header
williamr@2
   237
        *        construction; the ownership is transfered
williamr@2
   238
        * @param aContact a contact to be used in dialog creation. Must be
williamr@2
   239
        *        given only if user intends to re-direct future requests; 
williamr@2
   240
        *        the ownership is transfered
williamr@2
   241
        * @return New object, ownership is transferred.
williamr@2
   242
        * @leave KErrArgument if aRemoteUri == 0
williamr@2
   243
        * @leave KErrSIPInvalidRegistrationState
williamr@2
   244
        *		 if aContext.IsContextActive() == EFalse
williamr@2
   245
        */
williamr@2
   246
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   247
            NewL(CSIPConnection& aConnection,                                    
williamr@2
   248
                 CUri8* aRemoteUri,
williamr@2
   249
                 const MSIPRegistrationContext& aContext,
williamr@2
   250
                 CSIPFromHeader* aFrom=0,
williamr@2
   251
	             CSIPToHeader* aTo=0,
williamr@2
   252
	             CSIPContactHeader* aContact=0);
williamr@2
   253
williamr@2
   254
        /**
williamr@2
   255
		* Two-phased constructor		
williamr@2
   256
		* @pre aRemoteUri != 0
williamr@2
   257
		* The user of the class must not define tags in From-header
williamr@2
   258
		* and To-header.
williamr@2
   259
		* @pre aContext.IsContextActive() == ETrue
williamr@2
   260
		* @param aConnection a SIP connection to be used with
williamr@2
   261
		*        dialog association		
williamr@2
   262
		* @param aRemoteUri a remote target URI that identifies a resource
williamr@2
   263
		*		 that the request is targeted to. The ownership is transferred.
williamr@2
   264
        * @param aContext used for selecting outbound 
williamr@2
   265
        *        proxy and originator's address (AOR) and contact
williamr@2
   266
        * @param aFrom originator's address. If not defined it will
williamr@2
   267
        *        constructed using registration context (User's AOR);
williamr@2
   268
        *        the ownership is transfered
williamr@2
   269
        * @param aTo logical recipient's address; if not defined
williamr@2
   270
        *        the remote target uri will be used for To-header
williamr@2
   271
        *        construction; the ownership is transfered
williamr@2
   272
        * @param aContact a contact to be used in dialog creation. Must be
williamr@2
   273
        *        given only if user intends to re-direct future requests; 
williamr@2
   274
        *        the ownership is transfered
williamr@2
   275
        * @return New object, ownership is transferred.
williamr@2
   276
        * @leave KErrArgument if aRemoteUri == 0
williamr@2
   277
        * @leave KErrSIPInvalidRegistrationState
williamr@2
   278
        *		 if aContext.IsContextActive() == EFalse
williamr@2
   279
		*/
williamr@2
   280
        IMPORT_C static CSIPInviteDialogAssoc*
williamr@2
   281
            NewLC(CSIPConnection& aConnection,			                        
williamr@2
   282
			      CUri8* aRemoteUri,
williamr@2
   283
                  const MSIPRegistrationContext& aContext,
williamr@2
   284
                  CSIPFromHeader* aFrom=0,
williamr@2
   285
	              CSIPToHeader* aTo=0,
williamr@2
   286
	              CSIPContactHeader* aContact=0);
williamr@2
   287
williamr@2
   288
		/**
williamr@2
   289
		* Destructor
williamr@2
   290
		*/
williamr@2
   291
		IMPORT_C ~CSIPInviteDialogAssoc();
williamr@2
   292
			                                  
williamr@2
   293
	public: // New functions
williamr@2
   294
williamr@2
   295
		/**
williamr@2
   296
		* Creates INVITE and sends it to the remote target.
williamr@2
   297
		* 101-199 or 2xx response will create INVITE dialog association in case
williamr@2
   298
		* of first INVITE within this dialog association. Subsequent INVITE
williamr@2
   299
		* requests are re-INVITEs.
williamr@2
   300
		* @pre Dialog().Connection().State()==EActive
williamr@2
   301
		* @pre Dialog().State()==CSIPDialog::EInit ||
williamr@2
   302
		*      Dialog().State()==CSIPDialog::EConfirmed
williamr@2
   303
		* @param aElements contains user SIP headers and content. Ownership is
williamr@2
   304
        *   transferred.
williamr@2
   305
		* @return INVITE SIP transaction. Ownership is transferred.
williamr@2
   306
		* @leave KErrSIPInvalidDialogState if dialog is not in a correct state
williamr@2
   307
		* @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   308
		*	object has been deleted
williamr@2
   309
		* @capability NetworkServices
williamr@2
   310
		*/
williamr@2
   311
		IMPORT_C CSIPClientTransaction*
williamr@2
   312
            SendInviteL(CSIPMessageElements* aElements=0);
williamr@2
   313
williamr@2
   314
        /**
williamr@2
   315
		* Creates PRACK and sends it to the remote target.		
williamr@2
   316
		* @pre Dialog().Connection().State()==EActive
williamr@2
   317
		* @pre Dialog().State()==CSIPDialog::EEarly || 
williamr@2
   318
		*      Dialog().State()==CSIPDialog::EConfirmed
williamr@2
   319
        * @pre aElements must not contain Contact headers
williamr@2
   320
		* @param aElements contains user SIP headers and content. Ownership is
williamr@2
   321
        *   transferred.
williamr@2
   322
		* @return PRACK SIP transaction. Ownership is transferred.
williamr@2
   323
		* @leave KErrSIPInvalidDialogState if dialog is not in a correct state
williamr@2
   324
		* @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   325
		*	object has been deleted
williamr@2
   326
		* @capability NetworkServices
williamr@2
   327
		*/
williamr@2
   328
		IMPORT_C CSIPClientTransaction*
williamr@2
   329
            SendPrackL(CSIPMessageElements* aElements=0);
williamr@2
   330
williamr@2
   331
	    /**
williamr@2
   332
		* Creates UPDATE and sends it to the remote target.
williamr@2
   333
		* @pre Dialog().Connection().State()==EActive
williamr@2
   334
		* @pre Dialog().State()==CSIPDialog::EEarly || 
williamr@2
   335
		*      Dialog().State()==CSIPDialog::EConfirmed
williamr@2
   336
		* @param aElements contains user SIP headers and content. Ownership is
williamr@2
   337
        *   transferred.
williamr@2
   338
		* @return UPDATE SIP transaction. Ownership is transferred.
williamr@2
   339
		* @leave KErrSIPInvalidDialogState if dialog is not in a correct state
williamr@2
   340
		* @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   341
		*	object has been deleted
williamr@2
   342
		* @capability NetworkServices
williamr@2
   343
		*/
williamr@2
   344
		IMPORT_C CSIPClientTransaction*
williamr@2
   345
            SendUpdateL(CSIPMessageElements* aElements=0);
williamr@2
   346
williamr@2
   347
		/**
williamr@2
   348
		* Creates SIP ACK request and sends it to the remote target.
williamr@2
   349
		* The client transaction must be an INVITE transaction.
williamr@2
   350
		* @pre Dialog().Connection().State()==EActive
williamr@2
   351
		* @pre Dialog().State()==CSIPDialog::EConfirmed
williamr@2
   352
		* @param aTransaction a SIP INVITE client transaction to acknowledge
williamr@2
   353
		* @param aElements optional SIP message headers and body. Ownership is
williamr@2
   354
        *   transferred.
williamr@2
   355
        * @leave KErrArgument if aTransaction is not an INVITE transaction.
williamr@2
   356
        * @leave KErrSIPInvalidDialogState if ACK can't be sent in the current
williamr@2
   357
		*	dialog state
williamr@2
   358
        * @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   359
		*	object has been deleted
williamr@2
   360
		* @capability NetworkServices
williamr@2
   361
		*/
williamr@2
   362
		IMPORT_C void SendAckL(const CSIPClientTransaction& aTransaction,
williamr@2
   363
			                   CSIPMessageElements* aElements=0);
williamr@2
   364
williamr@2
   365
	    /**
williamr@2
   366
		* Creates SIP BYE request and sends it to the remote target.		
williamr@2
   367
		* @pre Dialog().Connection().State()==EActive
williamr@2
   368
		* @pre Dialog().State()==CSIPDialog::EEarly || 
williamr@2
   369
		*      Dialog().State()==CSIPDialog::EConfirmed
williamr@2
   370
		* @param aElements contains user SIP headers and content. Ownership is
williamr@2
   371
        *   transferred.
williamr@2
   372
		* @return SIP BYE transaction. Ownership is transferred.
williamr@2
   373
		* @leave KErrSIPInvalidDialogState if BYE can't be sent in the current
williamr@2
   374
		*	dialog state
williamr@2
   375
		* @leave KErrSIPResourceNotAvailable if a required SIP Client API
williamr@2
   376
		*	object has been deleted
williamr@2
   377
		* @capability NetworkServices
williamr@2
   378
		*/		
williamr@2
   379
		IMPORT_C CSIPClientTransaction*
williamr@2
   380
            SendByeL(CSIPMessageElements* aElements=0);
williamr@2
   381
williamr@2
   382
	public: // New functions, for internal use
williamr@2
   383
	
williamr@2
   384
        /**
williamr@2
   385
		* Sends initial INVITE creating a dialog and creates a transaction for
williamr@2
   386
        * it.
williamr@2
   387
		* @param aElements contains user SIP headers and content. Ownership is
williamr@2
   388
        *   transferred.
williamr@2
   389
		* @return INVITE SIP transaction. Ownership is transferred.
williamr@2
   390
		*/
williamr@2
   391
        CSIPClientTransaction* DoSendInviteL(CSIPMessageElements* aElements);
williamr@2
   392
williamr@2
   393
        /**
williamr@2
   394
		* Sends ACK		
williamr@2
   395
		* @param aTransaction a SIP INVITE client transaction to acknowledge
williamr@2
   396
		* @param aElements optional SIP message headers and body. Ownership is
williamr@2
   397
        *   transferred.
williamr@2
   398
		*/
williamr@2
   399
        void DoSendAckL(const CSIPClientTransaction& aTransaction,
williamr@2
   400
                        CSIPMessageElements* aElements);
williamr@2
   401
williamr@2
   402
		CSIPClientTransaction*
williamr@2
   403
			DoSendRequestWithinDialogL(RStringF aMethod,
williamr@2
   404
									   CSIPMessageElements* aElements);
williamr@2
   405
williamr@2
   406
        CSIPClientTransaction* DoSendCancelL(TUint32 aRequestId);
williamr@2
   407
williamr@2
   408
   	private: // Constructors
williamr@2
   409
   	   	
williamr@2
   410
		static CSIPInviteDialogAssoc* NewLC(CSIPConnection& aConnection,
williamr@2
   411
								 CUri8* aRemoteUri,
williamr@2
   412
	                             CSIPFromHeader* aFrom,
williamr@2
   413
	                             CSIPToHeader* aTo,
williamr@2
   414
		                         CSIPContactHeader* aContact,
williamr@2
   415
		                         const MSIPRegistrationContext* aContext);
williamr@2
   416
williamr@2
   417
		CSIPInviteDialogAssoc();
williamr@2
   418
		
williamr@2
   419
		void ConstructL(CSIPServerTransaction& aTransaction,
williamr@2
   420
                        const MSIPRegistrationContext* aContext);
williamr@2
   421
	};
williamr@2
   422
williamr@2
   423
#endif