Latest revision |
Your text |
Line 4: |
Line 4: |
| == Use cases == | | == Use cases == |
| | | |
- | * Auto-login at free, local FON/BTWiFi or similar hotspots | + | * Auto-login at free, local and national FON/BTWiFi or similar hotspots |
| * True 'wireless ISP roaming' i.e. auto-login via FON / iPass / WeRoam partner networks | | * True 'wireless ISP roaming' i.e. auto-login via FON / iPass / WeRoam partner networks |
| * Multi-network, multi-credential auto-login with multiple WISPr networks | | * Multi-network, multi-credential auto-login with multiple WISPr networks |
Line 51: |
Line 51: |
| * get involved in whether we connect to the SSID or not (we should just do auth) | | * get involved in whether we connect to the SSID or not (we should just do auth) |
| | | |
- | === Design challenges on N900 ===
| + | == Design challenges == |
| | | |
| '''* Our WISPr client needs to speak XML, HTTP and HTTPS from CLI | | '''* Our WISPr client needs to speak XML, HTTP and HTTPS from CLI |
Line 59: |
Line 59: |
| '''Option 1''': keep python client as it is, using httplib + ssl. Users will just have to install ssl. | | '''Option 1''': keep python client as it is, using httplib + ssl. Users will just have to install ssl. |
| | | |
- | '''Option 2''': update python client to use urllib2 and openssl | + | '''Option 2''': update python client to use [https://pypi.python.org/pypi/ndg-httpsclient ndg-httpsclient] if it works under python 2.5 |
| | | |
- | '''Option 3''': update python client to use [https://pypi.python.org/pypi/ndg-httpsclient ndg-httpsclient] if it works under python 2.5 | + | '''Option 3''': update python client to use [https://pypi.python.org/pypi/pycurl pycurl], let libcurl do the fetching & carrying |
| | | |
- | '''Option 4''': update python client to use [https://pypi.python.org/pypi/pycurl pycurl], let libcurl do the fetching & carrying | + | '''Option 4''': find an alternative to python |
| | | |
| | | |
Line 73: |
Line 73: |
| | | |
| | | |
- | '''* One captive portal can serve multiple hotspots'''
| |
| | | |
- | * The density of BTWiFi hotspots means that one can sometimes reach two or three possible routers, all connected to the same captive portal. This can sometimes (rarely) lead to unexpected effects, if disconnected from one network and connected to another one that shares the same portal; the portal views us as logged in, but our traffic remains blocked.
| |
- |
| |
- | * In particular, this has been noted when switching from BtWiFi to BTWiFi-with-Fon, and it is imagined that they share a web portal but not a DHCP server. This caused problems for the perl client (which presumes by the absence of a redirect that we are connected) but not for the python client, which tests whether it is connected by verifying the content of an HTTP GET request. Of course, it creates a dependency on the availability of a remote server and I don't much like the script's default of fetching "www.yahoo.co.jp"; we don't need an entire HTML page to confirm that we are online, but we do need to keep the check in some form.
| |
- |
| |
- | == N900 PyWISPr client ==
| |
| | | |
| See also http://talk.maemo.org/showthread.php?t=90777 | | See also http://talk.maemo.org/showthread.php?t=90777 |
- |
| |
- | === Changelog & sources ===
| |
- |
| |
- | * Began life as an N900 fork of https://bitbucket.org/tamias/pywispr
| |
- | * Run from sh as per http://softwareswirl.blogspot.co.uk/2011/06/starting-python-script-intelligently.html
| |
- | * Exit automatically on successful login, don't wait for user input (exit @ line 266)
| |
- | * Replaced the slow online check (a Yahoo web scrape) with Google's generate_204 check
| |
- | ** logic http://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection
| |
- | ** code from https://github.com/cdown/wifilogin/blob/master/wifilogin/connection.py
| |
- | ** used for Chromium OS and Android; backend shouldn't go away any time soon
| |
- | ** reduces unnecessary bandwidth use, somewhat faster, works better internationally
| |
- |
| |
- | ==== Still to do ====
| |
- |
| |
- | * consider whether we really need to check first for a captive portal and then make the same request again to obtain the same redirect and look for credentials? Why can we not combine the two, make a single request that serves both as online check and invitation for a WISPr redirect, and act on the response we receive? This might speed things up.
| |
- |
| |
- | * consider whether we can replace the dependency on httplib + SSL with something that is readily available through apt, such as pycurl
| |
- |
| |
- | * add (limited) user notifications
| |
- | ** notify on captive portal without WISPr support? browser option?
| |
- | ** notify on captive portal with WISPr support but no valid credentials?
| |
- | ** notify on access granted (or refused)
| |
- | ** do not notify the user about doing nothing (i.e. already online)
| |
- |
| |
- | * provide a usable CLI mode as well as automation
| |
- | ** ability to override username and password
| |
- | ** ability to logout from last used LogoutURL, mainly for testing
| |
| | | |
| == WISPr Networks == | | == WISPr Networks == |
- |
| |
- | === HELP WANTED ===
| |
- |
| |
- | I know very little about how FON or iPass works in other countries, if you can add any information about public access WiFi hotspots in your country, or accessing them via WISPr, then please do.
| |
| | | |
| === America === | | === America === |
Line 134: |
Line 97: |
| * United Kingdom | | * United Kingdom |
| ** WISPr hotspot networks | | ** WISPr hotspot networks |
- | *** BTWiFi with FON | + | *** BTWiFi + FON |
| **** accepts BT Broadband customers | | **** accepts BT Broadband customers |
| **** accepts FON customers | | **** accepts FON customers |
Line 149: |
Line 112: |
| *** Virgin Media WiFi | | *** Virgin Media WiFi |
| * Belgium | | * Belgium |
- | ** Belgacom with FON | + | ** Belgacom / FON |
| * Brazil | | * Brazil |
- | ** Oi with FON | + | ** Oi / FON |
| * Croatia | | * Croatia |
- | ** HT with FON | + | ** HT / FON |
| * France | | * France |
- | ** SFR with FON | + | ** SFR / FON |
| * Germany | | * Germany |
- | ** DT with FON | + | ** DT / FON |
- | * The Netherlands
| + | |
- | ** KPN with FON
| + | |
| * Poland | | * Poland |
- | ** Netia with FON | + | ** Netia / FON |
| * Portugal | | * Portugal |
- | ** Zon with FON | + | ** Zon / FON |