blob: c9686151324b79c1ed69e8f470faa60ace55c66d [file] [log] [blame]
Scientiamobile WURFL Device Detection
-------------------------------------
You can also include WURFL for inbuilt device detection enabling attributes.
WURFL is a high-performance and low-memory footprint mobile device detection
software component that can quickly and accurately detect over 500 capabilities
of visiting devices. It can differentiate between portable mobile devices, desktop devices,
SmartTVs and any other types of devices on which a web browser can be installed.
In order to add WURFL device detection support, you would need to download Scientiamobile
InFuze C API and install it on your system. Refer to www.scientiamobile.com to obtain a valid
InFuze license.
Compile haproxy as shown :
$ make TARGET=<target> USE_WURFL=1
Optionally WURFL_DEBUG=1 may be set to increase logs verbosity
These are the supported WURFL directives (see doc/configuration.txt) :
- wurfl-data-file <path to WURFL data file>
- wurfl-information-list [<string>] (list of WURFL capabilities,
virtual capabilities, property names we plan to use in injected headers)
- wurfl-information-list-separator <char> (character that will be
used to separate values in a response header, ',' by default).
- wurfl-engine-mode <string> (Sets the WURFL engine target. You can choose
between "accuracy" and "performance","performance" by default)
- wurfl-cache-size <string> (Sets the WURFL caching strategy)
- wurfl-patch-file [<file path>] (Sets the paths to custom WURFL patch files)
Sample configuration :
global
wurfl-data-file /usr/share/wurfl/wurfl-eval.xml
wurfl-information-list wurfl_id model_name
#wurfl-information-list-separator |
wurfl-engine-mode performance
#wurfl-engine-mode accuracy
## double LRU cache
wurfl-cache-size 100000,30000
## single LRU cache
#wurfl-cache-size 100000
## no cache
#wurfl-cache-size 0
#wurfl-patch-file <paths to custom patch files>
...
frontend
bind *:8888
default_backend servers
There are two distinct methods available to transmit the WURFL data downstream
to the target application:
All data listed in wurfl-information-list
http-request set-header X-WURFL-All %[wurfl-get-all()]
A subset of data listed in wurfl-information-list
http-request set-header X-WURFL-Properties %[wurfl-get(wurfl_id,is_tablet)]
Please find more information about WURFL and the detection methods at https://www.scientiamobile.com