| 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 |
| |
| For HAProxy developers who need to verify that their changes didn't accidentally |
| break the WURFL code, it is possible to build a dummy library provided in the |
| addons/wurfl/dummy 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 addons/wurfl/dummy |
| $ make TARGET=<target> USE_WURFL=1 WURFL_INC=$PWD/addons/wurfl/dummy WURFL_LIB=$PWD/addons/wurfl/dummy |
| |
| 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 |
| wurfl-data-file /usr/share/wurfl/wurfl.zip |
| |
| 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 |