2019-04-19 14:03:32 +00:00
|
|
|
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
|
|
|
|
|
2019-05-24 08:25:45 +00:00
|
|
|
For HAProxy developers who need to verify that their changes didn't accidentally
|
2019-04-18 10:31:25 +00:00
|
|
|
break the WURFL code, it is possible to build a dummy library provided in the
|
|
|
|
contrib/wurfl directory and to use it as an alternative for the full library.
|
|
|
|
This will not provide the full functionalities, it will just allow haproxy to
|
|
|
|
start with a wurfl configuration, which generally is enough to validate API
|
|
|
|
changes :
|
|
|
|
|
|
|
|
$ make -C contrib/wurfl
|
|
|
|
$ make TARGET=<target> USE_WURFL=1 WURFL_INC=$PWD/contrib/wurfl WURFL_LIB=$PWD/contrib/wurfl
|
|
|
|
|
2019-04-19 14:03:32 +00:00
|
|
|
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-cache-size <string> (Sets the WURFL caching strategy)
|
|
|
|
- wurfl-patch-file [<file path>] (Sets the paths to custom WURFL patch files)
|
|
|
|
|
|
|
|
Sample configuration :
|
|
|
|
|
|
|
|
global
|
2019-04-18 09:57:04 +00:00
|
|
|
wurfl-data-file /usr/share/wurfl/wurfl.zip
|
2019-04-19 14:03:32 +00:00
|
|
|
|
|
|
|
wurfl-information-list wurfl_id model_name
|
|
|
|
|
|
|
|
#wurfl-information-list-separator |
|
|
|
|
|
|
|
|
## 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
|