00001 /* 00002 * ============================================================================== 00003 * Name : sipregistrationbinding.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 #ifndef CSIPREGISTRATIONBINDING_H 00022 #define CSIPREGISTRATIONBINDING_H 00023 00024 // INCLUDES 00025 #include "sipregistrationcontext.h" 00026 #include "_sipcodecdefs.h" 00027 00028 // FORWARD DECLARATIONS 00029 class CUri8; 00030 class CSIPToHeader; 00031 class CSIPFromHeader; 00032 class CSIPContactHeader; 00033 class CSIPRouteHeader; 00034 class CSIPMessageElements; 00035 class CSIPConnection; 00036 class CSIPRefresh; 00037 class CSIPClientTransaction; 00038 class CRegBindingImplementation; 00039 00040 // CLASS DECLARATION 00041 00051 class CSIPRegistrationBinding : 00052 public CBase, 00053 public MSIPRegistrationContext 00054 { 00055 public: // Constructors and destructor 00056 00081 IMPORT_C static CSIPRegistrationBinding* 00082 NewL(CSIPConnection& aConnection, 00083 CSIPToHeader* aAor, 00084 CSIPContactHeader* aContact, 00085 CSIPRefresh* aRefresh=0, 00086 CSIPRouteHeader* aOutboundProxy=0, 00087 CUri8* aRemoteUri=0, 00088 CSIPFromHeader* aFrom=0); 00089 00114 IMPORT_C static CSIPRegistrationBinding* 00115 NewLC(CSIPConnection& aConnection, 00116 CSIPToHeader* aAor, 00117 CSIPContactHeader* aContact, 00118 CSIPRefresh* aRefresh=0, 00119 CSIPRouteHeader* aOutboundProxy=0, 00120 CUri8* aRemoteUri=0, 00121 CSIPFromHeader* aFrom=0); 00122 00126 IMPORT_C ~CSIPRegistrationBinding(); 00127 00128 public: //From MSIPRegistrationContext: 00129 00136 IMPORT_C TBool IsContextActive() const; 00137 00143 IMPORT_C TUint32 ContextId() const; 00144 00145 public: // New functions 00160 IMPORT_C CSIPClientTransaction* 00161 RegisterL(CSIPMessageElements* aElements=0); 00162 00179 IMPORT_C CSIPClientTransaction* 00180 DeregisterL(CSIPMessageElements* aElements=0); 00181 00197 IMPORT_C CSIPClientTransaction* UpdateL(CSIPMessageElements* aElements); 00198 00214 IMPORT_C CSIPClientTransaction* 00215 UpdateL(TUint aExpirationValue, CSIPMessageElements* aElements=0); 00216 00222 IMPORT_C CSIPConnection* Connection(); 00223 00229 IMPORT_C const CSIPConnection* Connection() const; 00230 00238 IMPORT_C void SetOutboundProxyL(CSIPRouteHeader* aOutboundProxy); 00239 00244 IMPORT_C const CSIPToHeader& Aor() const; 00245 00250 IMPORT_C const CSIPContactHeader& ContactHeader() const; 00251 00256 IMPORT_C CSIPContactHeader& ContactHeader(); 00257 00263 IMPORT_C const CSIPRouteHeader* OutboundProxy() const; 00264 00273 IMPORT_C const CSIPRefresh* SIPRefresh() const; 00274 00283 IMPORT_C CSIPRefresh* SIPRefresh(); 00284 00290 IMPORT_C TBool 00291 operator==(const CSIPRegistrationBinding& aRegistration) const; 00292 00293 public: // New functions, for internal use 00299 CRegBindingImplementation& Implementation(); 00300 00301 private: // Constructors 00302 CSIPRegistrationBinding(); 00303 00304 void ConstructL(CSIPConnection& aConnection, 00305 CSIPToHeader* aAor, 00306 CSIPContactHeader* aContacts, 00307 CSIPRefresh* aRefresh, 00308 CSIPRouteHeader* aOutboundProxy, 00309 CUri8* aRemoteUri, 00310 CSIPFromHeader* aFrom); 00311 00312 private: // Data 00313 CRegBindingImplementation* iImplementation; 00314 00315 private: // For testing purposes 00316 00317 UNIT_TEST(CSIP_Test) 00318 UNIT_TEST(CSIPRegistrationBinding_Test) 00319 UNIT_TEST(CSIPInviteDialogAssoc_Test) 00320 UNIT_TEST(CSIPSubscribeDialogAssoc_Test) 00321 UNIT_TEST(CSIPReferDialogAssoc_Test) 00322 00323 __DECLARE_TEST; 00324 }; 00325 00326 #endif