2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Definition of attributes used by every Connection Methods.
18 #ifndef CMCONNECTIONMETHODDEF_H
19 #define CMCONNECTIONMETHODDEF_H
26 // Beginning of the CMManager enum range (internal use)
27 const TUint KLanBaseSpecificAttributes = 20000;
28 const TUint KLanBaseIfNetworks = 20100;
29 // End of the CMManager enum range (internal use)
30 const TUint KLanBaseRangeMax = 29999;
32 /** ECOM interface UID */
33 const TUint KCMPluginInterfaceUid = 0x10207377;
37 //Enumeration for possible values of seamlessness field
38 //in IAP Metadata table
39 /** Naming method options */
42 ENamingNothing, ///< Do nothing with name set via ECmName
43 ENamingUnique, ///< Make name unique when ECmName is set.
44 ENamingNotAccept ///< Do not accept duplication. It will leave with
48 // Enumeration for IPv6 types
51 EIPv6Unspecified, ///< Unspecified IPv6 type
52 EIPv6WellKnown, ///< Well known IPv6 type
53 EIPv6UserDefined ///< User defined IPv6 type
56 enum TSeamlessnessValue
58 ESeamlessnessNotRoamedTo, // NOT supported
59 ESeamlessnessConfirmFirst, // Confirm first
60 ESeamlessnessShowprogress, // Shows progress
61 ESeamlessnessFullySeamless // NOT supported
65 /// Unspecified IPv4 address
66 _LIT( KUnspecifiedIPv4, "0.0.0.0" );
68 /// Known IPv6 name server 1
69 _LIT( KKnownIp6NameServer1, "fec0:000:0000:ffff::1" );
70 /// Known IPv6 name server 2
71 _LIT( KKnownIp6NameServer2, "fec0:000:0000:ffff::2" );
73 /// Dynamic IPv6 address
74 _LIT( KDynamicIpv6Address, "0:0:0:0:0:0:0:0" );
76 /// Default proxy protocol name
77 _LIT( KDefProxyProtocolName, "http" );
79 /// Default proxy port number
80 _LIT( KDefaultProxyPortNumber, "0" );
82 /// IPv4 network protocol
83 _LIT( KDefIspIfNetworksIPv4, "ip" );
84 /// IPv6 network protocol
85 _LIT( KDefIspIfNetworksIPv6, "ip6" );
86 /// IPv4 and IPv6 network protocols
87 _LIT( KDefIspIfNetworksIPv4IPv6, "ip,ip6" );
88 /// IPv4 and IPv6 network protocols for LAN bearers
89 _LIT( KDefIspIfNetworksIPv4IPv6LAN, "ip" );
91 _LIT( KDaemonManagerName, "NetCfgExtnDhcp" );
92 _LIT( KConfigDaemonName, "!DhcpServ" );
96 * This enum lists all the common attributes of Connection Methods.
98 enum TConnectionMethodCommonAttributes
101 * The following attributes can be queried via both
102 * the manager interface's and connection method interface's ::Get functions.
105 * Checks if there's coverage for this bearer.
106 * (TBool - default: none - read only)
109 ECmDefaultPriority, /**<
110 * Default global priority of the CM's bearer
112 * (TUint32 - default: none - read only)
116 * ETrue if this connection method is
117 * an embedded destination.
118 * (TBool - default: none - read only)
122 * Indicates whether the bearer has any UI.
123 * (TBool - default: none - read only)
126 ECmIPv6Supported, /**<
127 * Returns ETrue if IPv6 is supported.
128 * (TBool - default: none - read only)
131 ECmDefaultUiPriority, /**<
132 * Priority of this bearer type when shown in UI for
133 * configuring a new IAP.
134 * (TUint32 - default: none - read only)
137 ECmBearerIcon = 100, /**<
138 * Return the bearer specific icon. Assumes that
139 * there's an existing EEikEnv in the client.
140 * Type cast return value from TUint32 to
142 * Return value 0 means bearer has no icon.
143 * (TUint32 - default: none - read only)
146 ECmBearerAvailableIcon, /**<
147 * Return the bearer available specific icon.
148 * Assumes that there's an existing EEikEnv
149 * in the client. Type cast return value from
150 * TUint32 to CGuiIcon*.
151 * Return value 0 means bearer has no icon.
152 * (TUint32 - default: none - read only)
155 ECmBearerAvailableName = 200, /**<
156 * Name of the bearer. Can be used in
158 * list_double_large_graphic_popup_menu_pane.
159 * (String - default: none - read only)
162 ECmBearerSupportedName, /**<
163 * Name of the bearer. Can be used in
164 * layout list_single_popup_menu_pane_1.
165 * (String - default: none - read only)
168 ECmBearerAvailableText, /**<
169 * Localized text 'Available'. Can be used in
171 * list_double_large_graphic_popup_menu_pane.
172 * (String - default: none - read only)
175 ECmBearerNamePopupNote, /**<
176 * Localized text of the bearer type name.
177 * Can be used in layout popup note.
178 * (String - default: none - read only)
181 ECmCommsDBBearerType, /**<
182 * For backward compatibility, connection method
183 * can return its CommsDB specific bearer type.
184 * (TUint32 - default: none - read only)
185 * Leaves with KErrUnknown if no associated bearer
186 * type exists in CommsDat.
189 ECmBearerSettingName, /**<
190 * Name of the data bearer used when
191 * accessing external network.
192 * (String - default: none - read only)
196 * Is the given connection method virtual?
197 * (TBool - default: none - read only)
201 * These are not bearer specific, but controling attributes.
203 ECmInvalidAttribute = 400, /**<
204 * Client application can check which attribute
205 * was incorrect in UpdateL().
206 * (TUint32 - default: none - read only)
209 ECmAddToAvailableList, /**<
210 * Bearer type has to be added to the avaialable
212 * (TBool - default: EFalse - read only)
216 * Result of the load process. KErrNone if there
217 * was no error. Otherwise a system wide
219 * (TUint32 - default: KErrNone - read only)
223 * Attributes the can be queried only via
224 * - connection method's GetXXXAttributeL()
225 * - connection manager's function GetConnectionMethodInfoXXXL()
228 ECmBearerType = 500, /**<
229 * Bearer type of the CM
230 * (TUint - default: none - read only)
235 * (String - default: none)
240 * (TUint32 - default: none - read only)
244 * Start page of the connection method
245 * (String - default: empty string)
249 * Connection method is hidden.
250 * (not supported yet)
251 * (TBool - default: EFalse)
255 * This connection method is protected.
256 * Modifying it needs NetworkControl capability.
257 * (TBool - default: EFalse)
260 ECmNamingMethod, /**<
261 * See acceptable values in TNamingControl.
262 * (TUint32 - default: ENamingUnique)
265 ECmSeamlessnessLevel, /**<
266 * Defines whether an IAP can be roamed to.
267 * See details in TSeamlessnessValue.
268 * (TUint32 - default: ESeamlessnessConfirmFirst )
272 * Element id of the connection method in IAP table.
273 * (TUint32 - default: none - read only)
277 * Network id of the connection method.
278 * (TUint32 - default: none - read only)
282 * Is network connection created with connection
284 * (TBool - default: none - read only)
288 * ID to uniquely identify the connection
290 * It is guaranteed that every connection
291 * method has an ECmId
292 * (TUint32 - default: none - read only)
296 * Provided for backwards compatibility only.
297 * The record ID of the connection methods'
298 * corresponding WAP_ACCESS_POINT record, which
299 * use had been deprecated as the main ID
300 * should now be ECmIapId, ECmElementID or ECmId.
301 * (TUint32 - default: none - read only)
305 * Provided for backwards compatibility only.
306 * The record ID of the connection methods'
308 * (TUint32 - default: none - read only)
312 * The following attributes are stored in the connection method's
315 ECmMetaHighlight = 600, /**<
316 * Set to indicate that this connection method is
317 * highlighted in Agent dialog. Only one connection
318 * method can have this flag set.
319 * (TBool - default: EFalse)
322 ECmMetaHiddenAgent, /**<
323 * Set to hide this connection method in Agent
325 * (TBool - default: EFalse)
328 // These attributes can be used with virtual bearer type
329 // connection methods.
330 ECmNextLayerIapId, /**<
331 * Returns the linked connection method's IAP id.
332 * (TUint32 - default: None)
335 ECmNextLayerSNAPId, /**<
336 * Returns the linked connection method's SNAP id.
337 * (TUint32 - default: None)
341 ECmProxyUsageEnabled = 1000, /**<
342 * Set to enable/disable proxy setting
343 * of connection method.
344 * Disabling: record is deleted from proxy
345 * when UpdateL() is called.
346 * Proxy record is deleted on UpdateL()
347 * if ECmProxyServerName is an empty string.
348 * It can be queried only via the
349 * connection method's GetXXXAttributeL()
350 * (TBool: default: EFalse)
353 ECmProxyServerName, /**<
355 * It can be queried only via the
356 * connection method's GetXXXAttributeL()
357 * (String - default: none)
360 ECmProxyProtocolName, /**<
361 * Name of the protocol for which this proxy
363 * It can be queried only via the
364 * connection method's GetXXXAttributeL()
365 * (String - default: none)
368 ECmProxyPortNumber, /**<
370 * It can be queried only via the
371 * connection method's GetXXXAttributeL()
372 * (TUint32 - default: none)
375 ECmProxyExceptions, /**<
376 * ";" separated list of the addresses for
377 * which the proxy server should not be used.
378 * It can be queried only via the
379 * connection method's GetXXXAttributeL()
380 * (String - default: none)
383 ECmProxyRangeMax = 1999, /**<
384 * Marks the end of the proxy range
387 ECmChargeCardUsageEnabled = 2000, /**<
388 * Same as in ECmProxyUsageEnabled but
390 * (TBool - default: EFalse)
393 ECmChargeCardAccountNumber, /**<
395 * (String - default: none)
398 ECmChargeCardPIN, /**<
400 * (String - default: none)
403 ECmChargeCardLocalRule, /**<
404 * Order of dialling account number,
405 * PIN and phone number for local calls.
406 * (String - default: none)
409 ECmChargeCardNatRule, /**<
410 * Order of dialling account number,
411 * PIN and phone number for national
413 * (String - default: none)
416 ECmChargeCardIntlRule, /**<
417 * Order of dialling account number,
418 * PIN and phone number for
419 * international calls.
420 * (String - default: none)
423 ECmChargeCardRangeMax = 2999, /**<
424 * Marks the end of the chargecard range
427 ECmLocationUsageEnabled = 3000, /**<
428 * Same as in ECmProxyUsageEnabled but
430 * (TBool - default: EFalse)
433 ECmLocationIntlPrefixCode, /**<
434 * International prefix code.
435 * (String - default: none)
438 ECmLocationNatPrefixCode, /**<
439 * National prefix code.
440 * (String - default: none)
443 ECmLocationNatCode, /**<
445 * (String - default: none)
448 ECmLocationAreaCode, /**<
450 * (String - default: none)
453 ECmLocationDialOutCode, /**<
454 * Number to dial for an outside line.
455 * (String - default: none)
458 ECmLocationDisableCallWaitingCode, /**<
459 * Code to dial to disable call waiting
461 * (String - default: none)
464 ECmLocationMobile, /**<
466 * (TBool - default: none)
469 ECmLocationUsePulseDial, /**<
470 * Use pulse dialling?
471 * (TBool - default: none)
474 ECmLocationWaitForDialTone, /**<
475 * Wait for the dial tone?
476 * (TBool - default: none)
479 ECmLocationPauseAfterDialOut, /**<
480 * Pause time after dial out.
481 * (TUint32 - default: none)
484 ECmLocationRangeMax = 3999, /**<
485 * Marks the end of the location
489 // WAP specific attributes
490 ECmWapIPGatewayAddress = 4000, /**<
491 * WAP Gateway address, in this case an
493 * (String - default: none)
496 ECmWapIPWSPOption, /**<
497 * Enum value indicating whether
498 * connection-oriented
499 * or connectionless API should be used.
500 * See valid values in TWapWSPOption.
501 * (TUint32 - default:
502 * ECmWapWspOptionConnectionless)
505 ECmWapIPSecurity, /**<
506 * Attempt secure WTLS connection to the gateway
507 * (TBool - default: EFalse)
510 ECmWapIPProxyPort, /**<
511 * Proxy port number. Required for WAP2.0 only.
512 * (TUint32 - default: none)
515 ECmWapIPProxyLoginName, /**<
516 * Proxy login name. Required for WAP2.0 only.
517 * (String - default: none)
520 ECmWapIPProxyLoginPass, /**<
521 * Proxy login password.
522 * Required for WAP2.0 only.
523 * (String - default: none)
526 ECmWapRangeMax = 4099, /**<
527 * Marks the end of the WAP specific range
531 * The following attributes are common for many bearer types.
532 * It's not sure that every IF or IP attribute is supported by
534 * It's not possible to query these attributes via
535 * GetConnectionInfoXXX() functions.
537 ECmCommonAttributesStart = 5000, /**<
538 * Marks the beginning of the common
544 * It can be queried only via the
545 * connection method's GetXXXAttributeL()
546 * (String - default: none)
550 * Interface parameter string
551 * It can be queried only via the
552 * connection method's GetXXXAttributeL()
553 * (String - default: none)
557 * List of network protocols
558 * It can be queried only via the
559 * connection method's GetXXXAttributeL()
560 * (String - default: none)
563 ECmIFPromptForAuth, /**<
564 * Prompt user for authentication
565 * It can be queried only via the
566 * connection method's GetXXXAttributeL()
567 * (TBool - default: none)
571 * Authentication user name used by PPP
572 * It can be queried only via the
573 * connection method's GetXXXAttributeL()
574 * (String - default: none)
578 * Authentication password used by PPP
579 * It can be queried only via the
580 * connection method's GetXXXAttributeL()
581 * (String - default: none)
584 ECmIFAuthRetries, /**<
585 * Number of times for retrying authentication
587 * It can be queried only via the
588 * connection method's GetXXXAttributeL()
589 * (TUint32 - default: none)
592 ECmIPNetmask = 5050, /**<
593 * IP net mask of interface
594 * It can be queried only via the
595 * connection method's GetXXXAttributeL()
596 * (String - default: none)
600 * IP address of gateway
601 * It can be queried only via the
602 * connection method's GetXXXAttributeL()
603 * (String - default: none)
606 ECmIPAddFromServer, /**<
607 * Get IP address from server?
608 * It can be queried only via the
609 * connection method's GetXXXAttributeL()
610 * (TBool - default: none)
614 * IP address of interface
615 * It can be queried only via the
616 * connection method's GetXXXAttributeL()
617 * (String - default: none)
620 ECmIPDNSAddrFromServer, /**<
621 * Get DNS addresses from server?
622 * It can be queried only via the
623 * connection method's GetXXXAttributeL()
624 * (TBool - default: none)
627 ECmIPNameServer1, /**<
628 * IP address of primary name server
629 * It can be queried only via the
630 * connection method's GetXXXAttributeL()
631 * (String - default: none)
634 ECmIPNameServer2, /**<
635 * IP address of secondary name server
636 * It can be queried only via the
637 * connection method's GetXXXAttributeL()
638 * (String - default: none)
641 ECmIP6DNSAddrFromServer, /**<
642 * Get IP6 DNS addresses from server?
643 * It can be queried only via the
644 * connection method's GetXXXAttributeL()
645 * (TBool - default: none)
648 ECmIP6NameServer1, /**<
649 * IP6 address of primary name server
650 * It can be queried only via the
651 * connection method's GetXXXAttributeL()
652 * (String - default: none)
655 ECmIP6NameServer2, /**<
656 * IP6 address of secondary name server
657 * It can be queried only via the
658 * connection method's GetXXXAttributeL()
659 * (String - default: none)
662 ECmIPAddrLeaseValidFrom, /**<
663 * IP address valid from this time, used to
664 * store dynamically assigned address lease
666 * It can be queried only via the
667 * connection method's GetXXXAttributeL()
668 * (String - default: none)
671 ECmIPAddrLeaseValidTo, /**<
672 * IP address valid for use until this time,
673 * used to store dynamically assigned
675 * It can be queried only via the
676 * connection method's GetXXXAttributeL()
677 * (String - default: none)
680 ECmConfigDaemonManagerName = 5100, /**<
681 * Name of the ECom configuration
682 * daemon manager component. This
683 * component interfaces with the
684 * server identified in
685 * ECmConfigDaemonName. If
686 * specified, ECmConfigDaemonName
687 * should also be specified.
688 * It can be queried only via the
689 * connection method's GetXXXAttributeL()
690 * (String - default: none)
693 ECmConfigDaemonName, /**<
694 * Name of the configuration daemon server.
695 * This server is used to provide further
696 * configuration for a connection, e.g.
697 * dynamic IP address assignment. If
698 * specified, ECmConfigDaemonManagerName
699 * should also be specified.
700 * It can be queried only via the
701 * connection method's GetXXXAttributeL()
702 * (String - default: none)
705 ECmEnableLPCExtension = 5110, /**<
706 * Enable LCP extensions?
707 * It can be queried only via the
708 * connection method's GetXXXAttributeL()
709 * (TBool - default: none)
712 ECmDisablePlainTextAuth, /**<
713 * Disable plaintext authentication?
714 * It can be queried only via the
715 * connection method's GetXXXAttributeL()
716 * (TBool - default: none)
719 ECmCommonAttributesEnd = 5999, /**<
720 * Marks the end of common attributes
724 * The following methods can be queried only via
725 * connection method's GetXXXAttributeL()
727 ECmSpecialAttributes = 6000, /**<
728 * Marks the beginning of special
733 * Is connection method linked to any
734 * virtual connection method?
735 * It can be queried only via the
736 * connection method's GetXXXAttributeL()
737 * (TBool - default: none)
740 ECmSpecialAttributesEnd = 8999 /**<
741 * Marks the end of special attributes
745 /** WAP WSP options */
749 * Indicates that connectionless APIs should be used
751 ECmWapWspOptionConnectionless,
754 * Indicates that connection oriented APIs should be used
756 ECmWapWspOptionConnectionOriented
759 } // namespace CMManager
761 #endif // CMCONNECTIONMETHODDEF_H