00001 /* 00002 * ============================================================================== 00003 * Name : sipinvitedialogassoc.h 00004 * Part of : SIP Client 00005 * Interface : SDK API, SIP Client API 00006 * Description : 00007 * Version : 1.0 00008 * 00009 * Copyright (c) 2005 Nokia Corporation. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia Corporation. All rights are reserved. Copying, 00013 * including reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia Corporation. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia Corporation. 00018 * ============================================================================== 00019 */ 00020 00021 00022 #ifndef CSIPINVITEDIALOGASSOC_H 00023 #define CSIPINVITEDIALOGASSOC_H 00024 00025 // INCLUDES 00026 #include "sipdialogassocbase.h" 00027 00028 // CONSTANTS 00029 00030 // FORWARD DECLARATIONS 00031 class CUri8; 00032 class CSIPConnection; 00033 class CSIPServerTransaction; 00034 class CSIPFromHeader; 00035 class CSIPToHeader; 00036 class CSIPContactHeader; 00037 class MSIPRegistrationContext; 00038 00039 // CLASS DECLARATION 00040 00053 class CSIPInviteDialogAssoc : public CSIPDialogAssocBase 00054 { 00055 public: // Constructors and destructor 00056 00062 IMPORT_C static CSIPInviteDialogAssoc* NewL(CSIPDialog& aDialog); 00063 00069 IMPORT_C static CSIPInviteDialogAssoc* NewLC(CSIPDialog& aDialog); 00070 00088 IMPORT_C static CSIPInviteDialogAssoc* 00089 NewL(CSIPServerTransaction& aTransaction); 00090 00108 IMPORT_C static CSIPInviteDialogAssoc* 00109 NewLC(CSIPServerTransaction& aTransaction); 00110 00131 IMPORT_C static CSIPInviteDialogAssoc* 00132 NewL(CSIPConnection& aConnection, 00133 CSIPFromHeader* aFrom, 00134 CUri8* aRemoteUri, 00135 CSIPToHeader* aTo=0, 00136 CSIPContactHeader* aContact=0); 00137 00158 IMPORT_C static CSIPInviteDialogAssoc* 00159 NewLC(CSIPConnection& aConnection, 00160 CSIPFromHeader* aFrom, 00161 CUri8* aRemoteUri, 00162 CSIPToHeader* aTo=0, 00163 CSIPContactHeader* aContact=0); 00164 00191 IMPORT_C static CSIPInviteDialogAssoc* 00192 NewL(CSIPConnection& aConnection, 00193 CUri8* aRemoteUri, 00194 const MSIPRegistrationContext& aContext, 00195 CSIPFromHeader* aFrom=0, 00196 CSIPToHeader* aTo=0, 00197 CSIPContactHeader* aContact=0); 00198 00225 IMPORT_C static CSIPInviteDialogAssoc* 00226 NewLC(CSIPConnection& aConnection, 00227 CUri8* aRemoteUri, 00228 const MSIPRegistrationContext& aContext, 00229 CSIPFromHeader* aFrom=0, 00230 CSIPToHeader* aTo=0, 00231 CSIPContactHeader* aContact=0); 00232 00236 IMPORT_C ~CSIPInviteDialogAssoc(); 00237 00238 public: // New functions 00239 00256 IMPORT_C CSIPClientTransaction* 00257 SendInviteL(CSIPMessageElements* aElements=0); 00258 00273 IMPORT_C CSIPClientTransaction* 00274 SendPrackL(CSIPMessageElements* aElements=0); 00275 00289 IMPORT_C CSIPClientTransaction* 00290 SendUpdateL(CSIPMessageElements* aElements=0); 00291 00307 IMPORT_C void SendAckL(const CSIPClientTransaction& aTransaction, 00308 CSIPMessageElements* aElements=0); 00309 00324 IMPORT_C CSIPClientTransaction* 00325 SendByeL(CSIPMessageElements* aElements=0); 00326 00327 public: // New functions, for internal use 00328 00336 CSIPClientTransaction* DoSendInviteL(CSIPMessageElements* aElements); 00337 00344 void DoSendAckL(const CSIPClientTransaction& aTransaction, 00345 CSIPMessageElements* aElements); 00346 00347 CSIPClientTransaction* 00348 DoSendRequestWithinDialogL(RStringF aMethod, 00349 CSIPMessageElements* aElements); 00350 00351 CSIPClientTransaction* DoSendCancelL(TUint32 aRequestId); 00352 00353 private: // Constructors 00354 00355 static CSIPInviteDialogAssoc* NewLC(CSIPConnection& aConnection, 00356 CUri8* aRemoteUri, 00357 CSIPFromHeader* aFrom, 00358 CSIPToHeader* aTo, 00359 CSIPContactHeader* aContact, 00360 const MSIPRegistrationContext* aContext); 00361 00362 CSIPInviteDialogAssoc(); 00363 }; 00364 00365 #endif