voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/inc/voipxmlnatfwhandler.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/inc/voipxmlnatfwhandler.h Tue Feb 02 00:05:57 2010 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NAT/Firewall handler for VoIP XML processor
+*
+*/
+
+
+#ifndef VOIPXMLNATFWHANDLER_H
+#define VOIPXMLNATFWHANDLER_H
+
+#include "voipxmlprocessordefaults.h"
+
+struct TAdditionalStun
+ {
+//public:
+
+ /**
+ * STUN server address.
+ */
+ TBuf8<KMaxNodeValueLength> iStunSrvAddr;
+
+ /**
+ * STUN server port.
+ */
+ TInt iStunSrvPort;
+
+ /**
+ * STUN server username.
+ */
+ TBuf8<KMaxNodeValueLength> iStunSrvUsername;
+
+ /**
+ * STUN server password.
+ */
+ TBuf8<KMaxNodeValueLength> iStunSrvPassword;
+ };
+
+/**
+* VoipXmlNatFwHandler
+* NAT/Framwrork handler class.
+*
+* @lib voipxmlprocessor.lib
+* @since S60 v5.0
+*/
+class CVoipXmlNatFwHandler : public CBase
+ {
+#ifdef _DEBUG
+ friend class UT_CVoipXmlNatFwHandler;
+ friend class UT_CVoipXmlParamHandler;
+#endif
+
+public:
+
+ static CVoipXmlNatFwHandler* NewL();
+ ~CVoipXmlNatFwHandler();
+
+public:
+
+ /**
+ * Sets NAT/Firewall setting.
+ *
+ * @since S60 v5.0
+ * @param aParam Parameter to be set.
+ * @param aValue Value of the setting.
+ */
+ void SetSetting( TInt aType, TInt aParam, const TDesC8& aValue );
+
+ /**
+ * Stores settings to Central Repository (actually calls StoreSettingsL).
+ *
+ * @since S60 v5.0
+ * @return KErrNone if successful,
+ * KErrNotSupported if no settings to be stored,
+ * KErrCompletion if settings could not be stored.
+ */
+ TInt StoreSettings();
+
+ /**
+ * Method to inform the handler that currently deployed settings
+ * have ended. This way we will know when iCurrentAdditionalStunServer
+ * server should be appended to iAdditionalStunServers array.
+ *
+ * @since S60 v5.0
+ * @param aType Type of settings.
+ */
+ void SettingsEnd( TInt aType );
+
+private:
+
+ /**
+ * Commits actual Central Repository storage.
+ *
+ * @since S60 v5.0
+ */
+ void StoreSettingsL();
+
+private:
+
+ CVoipXmlNatFwHandler();
+ void ConstructL();
+
+private:
+
+ /**
+ * Tells if any settings have been set to internal members.
+ */
+ TBool iSettingsSet;
+
+ /**
+ * Domain name.
+ * Own.
+ */
+ HBufC8* iDomain;
+
+ /**
+ * STUN server address.
+ * Own.
+ */
+ HBufC8* iStunSrvAddr;
+
+ /**
+ * STUN server port.
+ */
+ TInt iStunSrvPort;
+
+ /**
+ * TCP refresh interval.
+ */
+ TInt iTcpRefreshInterval;
+
+ /**
+ * UDP refresh interval.
+ */
+ TInt iUdpRefreshInterval;
+
+ /**
+ * CRLF refresh.
+ */
+ TInt iCrlfRefresh;
+
+ /**
+ * STUN server username.
+ * Own.
+ */
+ HBufC8* iStunSrvUsername;
+
+ /**
+ * STUN server password.
+ * Own.
+ */
+ HBufC8* iStunSrvPassword;
+
+ /**
+ * STUN shared secret.
+ */
+ TInt iStunSharedSecret;
+
+ /**
+ * Start port of STUN port range.
+ */
+ TInt iStartPortRange;
+
+ /**
+ * End port of STUN port range.
+ */
+ TInt iEndPortRange;
+
+ /**
+ * NAT protocol
+ * Own.
+ */
+ HBufC8* iNatProtocol;
+
+ /**
+ * Additional STUN server data that is being currently modified.
+ * After modifications are done, it is appended to iAdditionalStunServers.
+ */
+ TAdditionalStun iCurrentAdditionalStunServer;
+
+ /**
+ * Array for holding additional STUN server data.
+ */
+ RPointerArray<TAdditionalStun> iAdditionalStunServers;
+ };
+
+#endif // VOIPXMLNATFWHANDLER_H
+
+// End of file.