2016-11-04 09:55:08 +00:00
|
|
|
Scientiamobile WURFL Device Detection
|
2016-11-08 13:57:29 +00:00
|
|
|
-------------------------------------
|
2016-11-04 09:55:08 +00:00
|
|
|
|
|
|
|
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
|