NAME

Config::Apple::Profile::Payload::Wi-Fi - Class for the Wi-Fi payload type.

DESCRIPTION

This class implements the Wi-Fi payload.

INSTANCE METHODS

The following instance methods are provided by this class.

validate_key($key, $value)

Performs additional validation for certain payload keys in this class:

  • EncryptionType

    Only WEP, WPA, Any, and None are accepted as values.

  • MCCAndMNCs

    Only six-digit numbers are accepted.

  • ProxyPort

    This must be a number within the range 1 to 65,535, inclusive.

This is done in addition to the validation performed by the parent class.

See also the documentation in Config::Apple::Profile::Payload::Common.

PAYLOAD KEYS

All of the payload keys defined in Config::Apple::Profile::Payload::Common are used by this payload.

This payload has the following additional keys:

General Configuration

SSID_STR

A string, this is the SSID (the name) of the Wi-Fi network.

HIDDEN_NETWORK

Optional

If true, this Wi-Fi network does not broadcast itself, meaning that the SSID and encryption information must be specified in this configuration.

Defaults to false.

AutoJoin

Optional

If true, the device will automatically join the Wi-Fi network if it is detected. If the device sees multiple Wi-Fi networks that have auto-join enabled, only one Wi-Fi network will be joined.

Defaults to true.

EncryptionType

A string. The type of encryption to support. Valid values are Any, None, WEP, and WPA. WPA includes WPA and WPA2, the -Personal and -Enterprise versions.

The encryption type specified must exactly match what is configured on the access point. For maximum flexibility, with the higher possibility of connecting to an unexpected access point, use the value Any.

Encryption Configuration

EAPClientConfiguration

Optional, for use with WPA- and WPA2-Enterprise encryption.

An object of the class Config::Apple::Profile::Payload::WiFi::EAPClientConfiguration. This object becomes a dict containing the list of supported EAP types and all other EAP-related configuration, except for a password or identity certificate.

See Config::Apple::Profile::Payload::WiFi::EAPClientConfiguration.

Password

Optional

A string. If password-based authentication is used (such as WEP, WPA-Personal, WPA2-Personal, or -Enterprise with a password-based EAP), this is the password to use. If no other authentication methods are available, the user may be prompted for a password.

PayloadCertificateUUID

Optional, for use with WPA- and WPA2-Enterprise encryption and EAP-TLS.

A UUID. This is the UUID of an identity certificate that has already been loaded onto the device, using a payload class of type Config::Apple::Profile::Payload::Certificate::PKCS12. The identity certificate may be included in the same configuration profile, or in a previously-installed profile.

See Config::Apple::Profile::Payload::Certificate::PKCS12.

Hotspot Configuration

The payload keys in this section refer to Hotspot 2.0, also known as Wi-Fi CERTIFIED Passpoint. More information on Hotspot 2.0 is available here:

http://www.wi-fi.org/discover-wi-fi/wi-fi-certified-passpoint
http://en.wikipedia.org/wiki/Hotspot_(Wi-Fi)#Hotspot_2.0

IsHotspot

Optional. Available in iOS starting with iOS 7.0.

A boolean. If true, this Wi-Fi network is treated as a hotspot.

Default is false.

DomainName

Optional. Available in iOS starting with iOS 7.0.

A string. The domain name used in Hotspot 2.0 negotiation.

If this payload key is present, the SSID_STR payload key may be omitted.

ServiceProviderRoamingEnabled

Optional. Available in iOS starting with iOS 7.0.

A boolean. Used in Hotspot 2.0 negotation. If true, connection is allowed to roaming service providers.

The default value is not specified in the documentation (see issue #13).

RoamingConsortiumOIs

Optional. Available in iOS starting with iOS 7.0.

An array of strings. Used in Hotspot 2.0 negotation, this is a list of Roaming Consortium Organization Identifiers.

NAIRealmNames

Optional. Available in iOS starting with iOS 7.0.

An array of strings. Used in Hotspot 2.0 negotiation, this is a list of Network Access Identifier Realm names.

MCCAndMNCs

Optional. Available in iOS starting with iOS 7.0.

An array of strings, where each string must be a six-digit number. Used in Hotspot 2.0 negotiation, the first three digits of the string are the Mobile Country Code (MCC) and the last three digits of the string are the Mobile Network Code (MNC).

NOTE: This is not an array of numbers, this is an array of strings. That being said, thanks to the way Perl handles scalars, and how the pushed values are validated, you can provide a six-digit number and it may be accepted. If your MCC has any leading zeroes, though, treating it as a number will cause a validation failure.

DisplayedOperatorName

Presumed Optional. Available in iOS starting with iOS 7.0.

A string. No description is available (see issue #11).

Proxy Configuration

ProxyType

Optional.

A string. Valid values are None, Manual, and Auto.

ProxyServer

A string. The proxy server's network address.

ProxyPort

A number. The proxy server's port.

ProxyUsername

Optional.

A string. The username to use when authenticating to the proxy server.

ProxyPassword

Optional.

A string. The password to use when authenticating to the proxy server.

ProxyPACURL

Optional.

A string. The URL of the PAC file containing the proxy configuration.

ProxyPACFallbackAllowed

Optional.

A boolean. If the PAC file can not be loaded, and this payload key is false, then this Wi-Fi connection will not be used. If true, the device will attempt to connect directly to the destination.

Defaults to true.

ACKNOWLEDGEMENTS

Refer to Config::Apple::Profile for acknowledgements.

AUTHOR

A. Karl Kornel, <karl at kornel.us>

COPYRIGHT AND LICENSE

Copyright © 2014 A. Karl Kornel.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.