If you’re taking your laptop, tablet, or phone on an upcoming vacation or business trip, you'll want to connect with friends or complete work on the go. But many hotels don’t have a secure wireless network setup or limit you to using a single device at a time.
Travelmate lets you use a small "travel router" to connect all of your devices at once while having total control over your own personal wireless network.
Travelmate runs on OpenWrt, and provides an "uplink" to the hotel's wireless access point/hotspot. Travelmate then becomes the Access Point (AP) for you and your companions, providing secure access to the internet. See the Installation and Usage section below.
Travelmate manages all the network settings, firewall settings, connections to a hotel network, etc. and automatically (re)connnects to configured APs/hotspots as they become available.
luci-app-travelmate
ensures these packages are present:
Option | Default | Description/Valid Values |
---|---|---|
trm_enabled | 0, disabled | set to 1 to enable the travelmate service (this will be done by the Interface Wizard as well!) |
trm_debug | 0, disabled | set to 1 to get the full debug output (logread -e "trm-") |
trm_iface | -, not set | uplink- and procd trigger network interface, configured by the 'Interface Wizard' |
trm_radio | -, not set | restrict travelmate to a single radio or change the overall scanning order ('radio1 radio0') |
trm_captive | 1, enabled | check the internet availability and handle captive portal redirections |
trm_netcheck | 0, disabled | treat missing internet availability as an error |
trm_proactive | 1, enabled | proactively scan and switch to a higher prioritized uplink, despite of an already existing connection |
trm_autoadd | 0, disabled | automatically add open uplinks like hotel captive portals to your wireless config |
trm_randomize | 0, disabled | generate a random unicast MAC address for each uplink connection |
trm_triggerdelay | 2 | additional trigger delay in seconds before travelmate processing begins |
trm_maxretry | 3 | retry limit to connect to an uplink |
trm_minquality | 35 | minimum signal quality threshold as percent for conditional uplink (dis-) connections |
trm_maxwait | 30 | how long should travelmate wait for a successful wlan uplink connection |
trm_timeout | 60 | overall retry timeout in seconds |
trm_maxautoadd | 5 | limit the max. number of automatically added open uplinks. To disable this limitation set it to '0' |
trm_captiveurl | http://detectportal.firefox.com | pre-configured provider URLs that will be used for connectivity- and captive portal checks |
trm_useragent | Mozilla/5.0 ... | pre-configured user agents that will be used for connectivity- and captive portal checks |
trm_nice | 0, normal priority | change the priority of the travelmate background processing |
trm_mail | 0, disabled | sends notification e-mails after every succesful uplink connect |
trm_mailreceiver | -, not set | e-mail receiver address for travelmate notifications |
trm_mailsender | no-reply@travelmate | e-mail sender address for travelmate notifications |
trm_mailtopic | travelmate connection to '' | topic for travelmate notification E-Mails |
trm_mailprofile | trm_notify | profile used by 'msmtp' for travelmate notification E-Mails |
trm_stdvpnservice | -, not set | standard vpn service which will be automatically added to new STA profiles |
trm_stdvpniface | -, not set | standard vpn interface which will be automatically added to new STA profiles |
Option | Default | Description/Valid Values |
---|---|---|
enabled | 1, enabled | enable or disable the uplink, automatically set if the retry limit or the conn. expiry was reached |
device | -, not set | match the 'device' in the wireless config section |
ssid | -, not set | match the 'ssid' in the wireless config section |
bssid | -, not set | match the 'bssid' in the wireless config section |
con_start | -, not set | connection start (will be automatically set after a successful ntp sync) |
con_end | -, not set | connection end (will be automatically set after a successful ntp sync) |
con_start_expiry | 0, disabled | automatically disable the uplink after n minutes, e.g. for timed connections |
con_end_expiry | 0, disabled | automatically (re-)enable the uplink after n minutes, e.g. after failed login attempts |
script | -, not set | reference to an external auto login script for captive portals |
script_args | -, not set | optional runtime args for the auto login script |
macaddr | -, not set | use a specified MAC address for the uplink |
vpn | 0, disabled | automatically handle VPN (re-) connections |
vpnservice | -, not set | reference the already configured 'wireguard' or 'openvpn' client instance as vpn provider |
vpniface | -, not set | the logical vpn interface, e.g. 'wg0' or 'tun0' |
Please read one of the following guides to get a working vpn client setup on your travel router:
Please note: Make sure to uncheck the "Bring up on boot" option during vpn interface setup, so that netifd doesn't interfere with travelmate.
Also please prevent potential vpn protocol autostarts, e.g. add in newer openvpn uci configs an additional 'globals' section:
Once your vpn client connection setup is correct, you can reference to that config in travelmate to handle VPN (re-) connections automatically.
To use E-Mail notifications you have to setup the package 'msmtp'.
Modify the file '/etc/msmtprc', e.g. for gmail:
Finally enable E-Mail support in Travelmate and add a valid E-Mail receiver address.
For automated captive portal logins you can reference an external shell script per uplink. All login scripts should be executable and located in '/etc/travelmate' with the extension '.login'. The package ships multiple ready to run auto-login scripts:
* 'wifionice.login' for ICE hotspots (DE)
* 'db-bahn.login' for german DB railway hotspots via portal login API (still WIP, only tested at Hannover central station)
* 'chs-hotel.login' for german chs hotels
* 'h-hotels.login' for Telekom hotspots in h+hotels (DE)
* 'julianahoeve.login' for Julianahoeve beach resort (NL)
* 'telekom.login' for telekom hotspots (DE)
* 'vodafone.login' for vodafone hotspots (DE)
* 'generic-user-pass.login' a template to demonstrate the optional parameter handling in login scripts
A typical and successful captive portal login looks like this:
Hopefully more scripts for different captive portals will be provided by the community!
Receive Travelmate runtime information:
To debug travelmate runtime problems, please always enable the 'trm_debug' flag, restart Travelmate and check the system log afterwards (logread -e "trm-")
Please join the Travelmate discussion in this forum thread or contact me by mail
You like this project - is there a way to donate? Generally speaking "No" - I have a well-paying full-time job and my OpenWrt projects are just a hobby of mine in my spare time.
If you still insist to donate some bucks ...
No matter what you decide - thank you very much for your support!
Have fun!
Dirk