1.1 --- a/epoc32/include/sipprofile.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,374 +0,0 @@
1.4 -/*
1.5 -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
1.6 -* All rights reserved.
1.7 -* This component and the accompanying materials are made available
1.8 -* 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
1.9 -* which accompanies this distribution, and is available
1.10 -* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 -*
1.12 -* Initial Contributors:
1.13 -* Nokia Corporation - initial contribution.
1.14 -*
1.15 -* Contributors:
1.16 -*
1.17 -* Description:
1.18 -* Name : sipprofile.h
1.19 -* Part of : SIP Profile Client
1.20 -* Interface : SDK API, SIP Profile API
1.21 -* The class providing profile data of SIP service provider
1.22 -* Version : 1.0
1.23 -*
1.24 -*/
1.25 -
1.26 -
1.27 -
1.28 -#ifndef CSIPPROFILE_H
1.29 -#define CSIPPROFILE_H
1.30 -
1.31 -// INCLUDES
1.32 -#include <e32base.h>
1.33 -#include <e32std.h>
1.34 -#include <badesca.h>
1.35 -#include "sipregistrationcontext.h"
1.36 -#include "sipprofiletypeinfo.h"
1.37 -
1.38 -// FORWARD DECLARATIONS
1.39 -class CSIPConcreteProfile;
1.40 -class CSIPProfileRegistry;
1.41 -class CSIPProfileRegistryBase;
1.42 -
1.43 -/**
1.44 -* SIP Profile ID which value is type of TUint32
1.45 -*/
1.46 -const TUint32 KSIPProfileId = 1;
1.47 -
1.48 -/**
1.49 -* SIP Provider Name which value is type of TDesC8
1.50 -*/
1.51 -const TUint32 KSIPProviderName = 2;
1.52 -
1.53 -/**
1.54 -* Access Point ID which value is type of TUint32
1.55 -*/
1.56 -const TUint32 KSIPAccessPointId = 3;
1.57 -
1.58 -/**
1.59 -* Signaling compression (SigComp) which value is type of TBool.
1.60 -* ETrue indicates that SigComp is enabled
1.61 -*/
1.62 -const TUint32 KSIPSigComp = 4;
1.63 -
1.64 -/**
1.65 -* Security Negotiation which value is type of TBool. ETrue indicates that
1.66 -* Security Negotiation is enabled
1.67 -*/
1.68 -const TUint32 KSIPSecurityNegotiation = 5;
1.69 -
1.70 -/**
1.71 -* Auto Registration which value is type of TBool. ETrue indicates that
1.72 -* profile is enabled for auto registration
1.73 -*/
1.74 -const TUint32 KSIPAutoRegistration = 6;
1.75 -
1.76 -/**
1.77 -* Defined user's address-of-record which value is type of TDesC8
1.78 -*/
1.79 -const TUint32 KSIPUserAor = 7;
1.80 -
1.81 -/**
1.82 -* Registration which value is type of TBool. ETrue indicates that
1.83 -* profile is registered
1.84 -*/
1.85 -const TUint32 KSIPProfileRegistered = 8;
1.86 -
1.87 -/**
1.88 -* Users's registered address-of-records which value is of type MDesC8Array.
1.89 -* Note that array will contain AORs only in case the profile is registered.
1.90 -*/
1.91 -const TUint32 KSIPRegisteredAors = 9;
1.92 -
1.93 -/**
1.94 -* Negotiated security mechanism during registration procedure which value
1.95 -* is of type TDesC8.
1.96 -* Note that descriptor will contain value only in case the profile is
1.97 -* registered.
1.98 -*/
1.99 -const TUint32 KSIPNegotiatedSecurityMechanism = 10;
1.100 -
1.101 -/**
1.102 -* Default profile which value is type of TBool.
1.103 -* ETrue indicates that profile is default
1.104 -*/
1.105 -const TUint32 KSIPDefaultProfile = 11;
1.106 -
1.107 -/**
1.108 -* "Contact" header parameters used during registration which value
1.109 -* is of type MDesC8Array. Each array element contains one "Contact"-header
1.110 -* parameter.
1.111 -*/
1.112 -const TUint32 KSIPContactHeaderParams = 12;
1.113 -
1.114 -/**
1.115 -* The user's registered "Contact"-header including the whole value of the header
1.116 -* except for the header's name ("Contact:").
1.117 -* The value is of type TDesC8.
1.118 -* Note that the value is available only in case the profile is registered.
1.119 -*/
1.120 -const TUint32 KSIPRegisteredContact = 13;
1.121 -
1.122 -/**
1.123 -* SNAP (Service Network Access Point) ID which value is type of TUint32.
1.124 -* This is an optional parameter. When this parameter is configured,
1.125 -* KSIPAccessPointId has a meaningful value only when the profile is registered.
1.126 -* The value of KSIPSnapId must be greater than zero.
1.127 -*/
1.128 -const TUint32 KSIPSnapId = 14;
1.129 -
1.130 -/**
1.131 -* A unique Contact-header's user-part
1.132 -* generated automatically by the SIP implementation.
1.133 -* The value is of type TDesC8.
1.134 -* This parameter is read-only and
1.135 -* trying to set it will fail with KErrAccessDenied.
1.136 -*/
1.137 -const TUint32 KSIPContactHeaderUser = 15;
1.138 -
1.139 -/**
1.140 -* Sets the KSoIpTOS socket option (see in_sock.h) for
1.141 -* all SIP signalling related to this profile.
1.142 -* The value is of type TUint32.
1.143 -*/
1.144 -const TUint32 KSIPSoIpTOS = 16;
1.145 -
1.146 -/**
1.147 -* Sets the Access Point Name.
1.148 -* This is an Optional Parameter.
1.149 -* Access Point Name which value is type of TDesC8,
1.150 -*/
1.151 -const TUint32 KSIPAccessPointName = 17;
1.152 -
1.153 -/**
1.154 - * Sets the SNAP Name.
1.155 - * This is an Optional Parameter.
1.156 - * SNAP Name which value is type of TDesC8,
1.157 -*/
1.158 -const TUint32 KSIPSnapName = 18;
1.159 -
1.160 -/**
1.161 -* SIP Registrar
1.162 -*/
1.163 -const TUint32 KSIPRegistrar = 130;
1.164 -
1.165 -/**
1.166 -* SIP Outbound Proxy
1.167 -*/
1.168 -const TUint32 KSIPOutboundProxy = 131;
1.169 -
1.170 -/**
1.171 -* HTTP Digest user name which value is type of TDesC8
1.172 -*/
1.173 -const TUint32 KSIPDigestUserName = 150;
1.174 -
1.175 -/**
1.176 -* HTTP Digest realm which value is type of TDesC8
1.177 -*/
1.178 -const TUint32 KSIPDigestRealm = 151;
1.179 -
1.180 -/**
1.181 -* SIP server's address which value is of type TDesC8
1.182 -*/
1.183 -const TUint32 KSIPServerAddress = 152;
1.184 -
1.185 -// CLASS DECLARATION
1.186 -/**
1.187 -* @publishedAll
1.188 -* @released
1.189 -*
1.190 -* Class contains profile information of particular SIP service
1.191 -* provider. Class provides functions for quering profile parameter
1.192 -* values.
1.193 -* @lib sipprofilecli.lib
1.194 -*/
1.195 -class CSIPProfile: public CBase, public MSIPRegistrationContext
1.196 - {
1.197 - public: // Constructors and destructor
1.198 - /**
1.199 - * Destructor.
1.200 - * @capability NetworkServices
1.201 - */
1.202 - IMPORT_C ~CSIPProfile();
1.203 -
1.204 - public: // New functions
1.205 - /**
1.206 - * Gets profile type information
1.207 - * @return profile type information
1.208 - */
1.209 - IMPORT_C const TSIPProfileTypeInfo& Type() const;
1.210 -
1.211 - /**
1.212 - * Gets profile parameter
1.213 - * @param aParam a parameter to get
1.214 - * @param aVal on return will contain parameter value
1.215 - * @return KErrNotFound if parameter was not found, KErrNone otherwise
1.216 - */
1.217 - IMPORT_C TInt GetParameter(TUint32 aParam, TDesC8 const *& aVal) const;
1.218 -
1.219 - /**
1.220 - * Gets profile parameter
1.221 - * @param aParam a parameter to get
1.222 - * @param aVal on return will contain parameter value
1.223 - * @return KErrNotFound if parameter was not found, KErrNone otherwise
1.224 - */
1.225 - IMPORT_C TInt GetParameter(TUint32 aParam, TUint32& aVal) const;
1.226 -
1.227 - /**
1.228 - * Gets profile parameter
1.229 - * @param aParam a parameter to get
1.230 - * @param aVal on return will contain parameter value
1.231 - * @return KErrNotFound if parameter was not found, KErrNone otherwise
1.232 - */
1.233 - IMPORT_C TInt GetParameter(TUint32 aParam, TBool& aVal) const;
1.234 -
1.235 - /**
1.236 - * Gets profile parameter
1.237 - * @param aParam a parameter to get
1.238 - * @param aVal on return will contain parameter value
1.239 - * @return KErrNotFound if parameter was not found, KErrNone otherwise
1.240 - */
1.241 - IMPORT_C TInt GetParameter(TUint32 aParam, MDesC8Array const *& aVal) const;
1.242 -
1.243 - /**
1.244 - * Gets profile parameter that is defined for a particular SIP server
1.245 - * @param aServer a SIP server type
1.246 - * @param aParam a parameter to get
1.247 - * @param aVal on return will contain parameter value
1.248 - * @return KErrNotFound if parameter was not found, KErrNone otherwise
1.249 - */
1.250 - IMPORT_C TInt GetParameter(TUint32 aServerType, TUint32 aParam, TDesC8 const *& aVal) const;
1.251 -
1.252 - public: //Functions from base class
1.253 - /**
1.254 - * Tests if the registration context can be
1.255 - * used for creating SIP messages/dialogs
1.256 - * Profile can be used, when CSIPProfileRegistry::IsEnabled() == ETrue
1.257 - * and Status() == ERegistered.
1.258 - * @return ETrue if can be used, EFalse otherwise
1.259 - * @internalComponent
1.260 - */
1.261 - TBool IsContextActive() const;
1.262 -
1.263 - /**
1.264 - *
1.265 - * For internal use only
1.266 - * @return context id
1.267 - * @internalComponent
1.268 - */
1.269 - TUint32 ContextId() const;
1.270 -
1.271 -
1.272 - public: //New functions
1.273 -
1.274 - /**
1.275 - * Two-phased constructor.
1.276 - * @param aSIPRegistry a SIP profile client providing connection to SIP
1.277 - * profile server.
1.278 - */
1.279 -
1.280 - static CSIPProfile* NewL(CSIPProfileRegistry* aSIPRegistry);
1.281 -
1.282 - /**
1.283 - * Two-phased constructor.
1.284 - * @param aSIPRegistry a SIP profile client providing connection to SIP
1.285 - * profile server.
1.286 - * Constructs an object and adds the pointer to the cleanup stack;
1.287 - */
1.288 -
1.289 - static CSIPProfile* NewLC(CSIPProfileRegistry* aSIPRegistry);
1.290 -
1.291 - /**
1.292 - * Sets profiles enabled state
1.293 - * @param aEnabled ETrue if enabled
1.294 - */
1.295 -
1.296 - void SetEnabled(TBool aEnabled);
1.297 -
1.298 - /**
1.299 - * Sets concrete profile that holds actual data
1.300 - * @param aProfile profile instance containing data
1.301 - */
1.302 -
1.303 - void SetConcreteProfile(CSIPConcreteProfile* aProfile);
1.304 -
1.305 - /**
1.306 - * Clears concrete profile that holds actual data
1.307 - */
1.308 -
1.309 - void ClearConcreteProfile();
1.310 -
1.311 - /**
1.312 - * Gets concrete profile that holds actual data
1.313 - * @return concrete profile holding data
1.314 - */
1.315 -
1.316 - CSIPConcreteProfile& ConcreteProfile();
1.317 -
1.318 - /**
1.319 - * Gets concrete profile that holds actual data
1.320 - * @return concrete profile holding data
1.321 - */
1.322 -
1.323 - const CSIPConcreteProfile& ConcreteProfile() const;
1.324 -
1.325 - /**
1.326 - * Checks if the profile is enabled
1.327 - * @return ETrue if enabled, EFalse otherwise
1.328 - */
1.329 -
1.330 - TBool IsEnabled() const;
1.331 -
1.332 - /**
1.333 - * Gets last occurred error during registration
1.334 - * @return last occurred error code, KErrNone if no error
1.335 - */
1.336 - TInt LastRegistrationError() const;
1.337 -
1.338 - /**
1.339 - * sets pointer to registry for profile
1.340 - */
1.341 - void SetRegistry(CSIPProfileRegistryBase* aRegistry);
1.342 -
1.343 - /**
1.344 - * Clears pointer to registry from profile
1.345 - */
1.346 - void ClearRegistry();
1.347 -
1.348 - protected:
1.349 -
1.350 - /**
1.351 - * Constructor.
1.352 - */
1.353 - CSIPProfile(CSIPProfileRegistryBase* aRegistry);
1.354 -
1.355 - /**
1.356 - * 2nd phase constructor.
1.357 - */
1.358 - void ConstructL();
1.359 -
1.360 - protected:
1.361 -
1.362 - /**
1.363 - * @internalComponent
1.364 - */
1.365 - CSIPConcreteProfile* iSIPProfile;
1.366 -
1.367 - /**
1.368 - * @internalComponent
1.369 - */
1.370 - CSIPProfileRegistryBase* iSIPProfileRegistry;
1.371 -
1.372 - private:
1.373 -
1.374 - TBool iEnabled;
1.375 - };
1.376 -
1.377 -#endif // CSIPPROFILE_H