Related
Does anyone know of an app that allows your phone to become a web proxy?
Let me explain my situation... I work for a corporation that filters all their internet connections through a web proxy, which sucks cuz I can't visit any of the fun sites... one way around this I've found was to use ICS on my phone but that interferes with the default gateway on the current network.
All traffic on the network by default goes to an internal gateway on the local intranet and it really needs to stay this way because there are too many work ip's and ports to be able to statically route all of them through a specific destination and leave the default gateway as the ICS 192.168.1.1.
I have been able to create static routes to specific ip addresses (like my home computer) which override the default gateway and use ICS instead.. this is great but obviously not that great for web browsing and masking my use on the internet... what I would like to be able to do is set the HTTP proxy to my phone and have it handle all of the redirection... that would allow me to have a single route in the routing tables but span out to wherever I want on the web...
Oh, and yes, I have thought of just setting up a proxy on my home comp and routing through the phone -> home comp -> back through phone but that obviously limits me to the upstream bandwidth of my home network... which isn't TERRIBLE, and is feasible but obviously if I could eliminate the extra jump it would be much much better.
I can handle the routing tables np, they're easy to add from command-line.. problem is I need some kind of a proxy application on the phone that will handle all of the HTTP calls... anyone know of an application such as this?
Thanks
Hm can't say I know of an app that does this... it is planned for one of the upcoming releases of WMWifiRouter but that's still a while away and may give you the gateway issue again.
Chainfire said:
Hm can't say I know of an app that does this... it is planned for one of the upcoming releases of WMWifiRouter but that's still a while away and may give you the gateway issue again.
Click to expand...
Click to collapse
Ya I did more googling and still can't find anything... I just setup dante server on my linux vm at home and got a good socks proxy going.. seems to be working very well.. my upstream on cable is 80k/sec so that's not too bad I guess.
I'll keep an eye on wmwifirouter release notes though thanks
I'm an IT guy and I just got into smartphone PPCs for the first time after a long-time hiatus from PDAs when I used to be a Palm owner. After my last palm, a LifeDrive, got stolen I moved to a Moto Q wich was a big dissapointment OS wise, and I never really got into modding it or anything, just set my POP3 e-mail server and used it like that for 2 years (draw back was that I didn't have contact sync nore internal e-mail sync that got handled by my exchange server). My contract with that Q expired and I made the move to a Sprint Mogul with WM 6.1 Pro and I'm NEVER LOOKING BACK!!!
Anyways, enough about me, this is my first contribution so I wanted to do the little intro.
I had searched around a bit about how to get ActiveSync to sync my company's Exchange server through PPTP VPN (we don't have it published with a certificate for an actual push config) but all I found was info on how to setup the VPN itself, being an IT guy that was like pointing out the obvious to me as I had already got that running and connecting but couldn't get anything but the OWA site opening in IE and Opera.
Basically what I figured out was that I had to program a work URL exception in the Connections control panel under the Advanced tab. There I added my exchange server's IP address as a URL and used that IP to program the server under ActiveSync with all the usual credentials. I can't configure it to receive as items arrive, instead I had to let the configuration run on a 10 minute schedule. Every time the schedule is up I see the VPN connecting pop up and it syncs PERFECTLY and disconnects the VPN. (It doesn't turn on my screen each time, it just pops up if I'm using it; but that pop up can be turned off if it gets to annoying).
I don't know if anyone else knew about this but I though I'd share this info as I searched for a few days and found nothing, ended up figuring this out myself. If this is new info I'll post more detailed configuration information for those who desire it.
BTW, this is working over the Data Plan and WiFi as well.
Wow. your a god...
I been trying to figure why it kept disconnecting the vpn when it synced up.
Adding the work url exception works perfect...
(Im using WM6.1 on a Samsung Omnia)
Many Many thanks!
No problem dude! I'm surprised no one else has really found this helpful. Glad I could help!
BTW, those exceptions work very well for internal web sites as well. I use it to log in to web-based management consoles such as Symantec's Mail Security for Exchange, Symantec Endpoint, basically if you got an internal website of some sort you can access it through VPN using a Work URL Exception.
I was looking for this info too, i would like more detailed configuration information about this.
Thanx in advance...
Roland hendriks
What part of the configuration are you having trouble with? Configuring the VPN, the Exchange Server or the URL Exception?
Thanks
I personally am thankful for your information. Even if none of the other 1000s of readers out there say anything...
Thank you for sharing your knowledge.
Tim
Glad I could help! I know I broke my head over this one during the first week of me having a WM phone. I figured it out thanks to the Fdc Soft Task Manager using the Netstat utility. It let me know exactly what the network stack of the phone was trying to do and the URL exclussion I just stumbled upon and reading what the page said it lead me to believe that it might be a routing table for configured "WORK" connections. And it worked.
During the past month or two of using my exchange like this and switching around ROMs and cooking my own ones now I've noticed that having TCP Data Reconnect and Transmission Retry settings in your registry set to high will cause Active Sync to take a long ass time for it to actually route communications through the VPN connection. I noticed this after using custom ROMs wich some have these settings increased to ensure communications go through but they raise connection timeouts way to much. On my own custom ROM I've set these to defaults (2 and 4 respectively) and Active Sync only takes about 1 minute to start syncing onces you hit sync while you wait for it to dial the cellular line and the VPN.
you talk about the vpn..
i think you are in the very small percentage of ppl who can get that to work.
i have the activesync set to manual and have tried the vpn type to both IPSec/L2TP and PPTP
w/o success..i always get a UN PW error which i know cant be so..
i set the host ip to what was shown from "whatsmyip"..
searching for quite awhile, i see thousands of ppl who cant get it to work and have
never found a reliable method that works for anyone but the person who posted it.
if you could back track a little and post how to do it, there are probly
thousands of ppl who would find it very useful and really appreciate it.
thanx
Well one thing is how to setup a WM device's VPN client to connect to your VPN server and another is actually configuring your VPN server. Do you have a working VPN setup in your corporate network already? This usually is setup by having a static IP assigned to your corporate internet connection and a firewall configured to allow VPN access with all the necessary traffic and authentication routes.
If you don't have a static IP in your office and use a lower cost DSL or Cable connection you aren't SOL, for these types of connections you can use a service like dyndns.org to dynamically upadate your dynamic IP into a static dns name like: mycompany.dyndns.org for example. This requires you to setup your firewall or ISP modem to communicate with dyndns.org to report the changes. Most firewalls come with this funcionality already built-in, but most of them also call them by different names so you'd have to look up your equipment's documentation on how to report a dynamic dns service.
I would be happy to help you setup your VPN correctly but its more practicall for me to help you setup a checklist on which type of VPN you want to setup (IPSec or PPTP) and what your corporate network's infrastructure looks like and let you know what to look for in google; there is PLENTY of very helpful information on the web on how to setup VPN but first you have to know what you need and how you are going to achieve it and then you'll know what to look for.
Each setup is very particular to the customer's needs and the network infrastructure that is setup and how much security you want to use (IPSec is a naturally secured VPN tunnel protocol while PPTP is not secured by nature but can be secured with a Radius server in your DMZ validating authentication in an encruypted manner to your Active Directory service).
What I posted above will work for an already existing and working PPTP VPN connection wich I already had running for years in my office and I regularly use with my laptop to connect to my exchange server while on the road or at home. What I posted above is what is need to get your WM device to connect to an already functioning PPTP VPN server.
Hope this helps. And if I'm to help you make a checklist I need a lot of information:
Type of ISP (static IP or dynamic IP)
Type/Brand of firewall device
How the devices are connected together (dumb modem or internet router from your ISP to your firewall's WAN port or a full blown router provided by your ISP wich is patched into your firewall's WAN port)
Internal network configuration (both AD and Exchange on same server (SBS) or separated)
What amount of security you are looking for.
Send me some PMs and maybe I could at least point you in the right direction.
nttdemented: I'm doing the PPTP shuffle at the moment, and wanted to pick your brains..
The basic connection is running fine - e.g. when I add 192.168.0.1 as an Exception and go to http://192.168.0.1 in Pocket IE the VPN fires up and I see the page just fine.
I've also added '10.6.1.8' as an exception, but if I go to that address in PIE, I don't see any network activity (using ethereal/tcpdump) on the 'ppp0' server interface (I use Ubuntu server's pptpd) ...
Can I assume that your Exchange server is hosted on the same machine as your PPTP server? Some MS SBS or similar?
Even if I configure an http proxy (on the 192.168.0.1 IP) I see no activity when I try the 10.6.1.8 address. :/
thanks so much!!
that i didn't find/read about the "exceptions" option in WM before...
Somehow, when i got my phone, i got it to work without this workaround, it just worked, out of the box, no exception setting required. (VPN settings + exchange server location were enough)
But yesterday, from the one moment to the next, it suddenly stopped working.
In my efforts to get it to work again i deleted the exchange settings, but doing that, I deleted all my contacts and my agenda! I was in big trouble because I really needed those , but after reading your post, i got it working again! my phone is synching "as we speak" and i'm very happy!
don't know how it worked before, don't know why it stopped working, all I know is, it's working now!
you made my day
Good to know!
Cheers!
I've since stopped using this method as we got around to publishing our Exchange server with an SSL certificate so I'm actually using SSL enabled ActiveSync push on my phone now.
Excuse me but perhaps you can help me too.
My problem is that I can get/sync my mails using WIFI.
If I connect thru GPRS, y go to send/receive and I get all the mails. If I'm on my office and connect thru WIFI to the work net I also get all the mails from the exchange server.
The problem is when I'm outside my office and connect to other wifi net and try to sync my mails. I have an HTC TOUCH CRUISE with WM 6.1 original from HTC without any flash.
Thanks in advance.
VPN connection doesn't always connect for ActiveSync synchronization?
I have had ActiveSync working with an Exchange server over a PPTP VPN connection for years now, but there has been one nagging issue I can't figure out. For the most part it works, but sometimes when ActiveSync tries to sync it will not make the VPN connection. There is only one connection listed when I tap on the icon on the notification bar - the phone's data connection. So in activesync, the icon with the arrows spins for a while but nothing synchronizes. I think it ends up saying "waiting for network" or something like that. It seems to always work when I manually hit "sync", but sometimes it fails on scheduled synchronizations.
Any idea why this happens sometimes?
oh...cheers...got my brain back...
The exceptions rule has almost fixed mine now. I'm getting mail but not through Activesync (just sits waiting for network).
Hello,
If I connect via wap.cingular (my account cannot connect on isp.cingular) I am having major issues using outlook web access, rapidshare, and a few other web apps. this is apparently due to ATT rolling my IP address every few seconds.
If I go on my phone (HTC FUZE/RAPHAEL) to http://whatismyip.com/ and refresh the page a few times, I get a different IP almost every time. it is always in the same subnet, so far (only the last numbers change ie, aaa.bbb.ccc.xxx, where xxx changes all the time, and a, b, and c, don't).
I use a huge load of data. Have they put me on some blacklist because I stream media all the time? This actually doesn't affect streaming media, but it screws up legitimate work usage.
Is there some keepalive utility I could use that would fix this as a countermeasure? Is anyone else running into this, or am I just special?
Thanks in advance for your help
wwwes said:
Hello,
If I connect via wap.cingular (my account cannot connect on isp.cingular) I am having major issues using outlook web access, rapidshare, and a few other web apps. this is apparently due to ATT rolling my IP address every few seconds.
If I go on my phone (HTC FUZE/RAPHAEL) to http://whatismyip.com/ and refresh the page a few times, I get a different IP almost every time. it is always in the same subnet, so far (only the last numbers change ie, aaa.bbb.ccc.xxx, where xxx changes all the time, and a, b, and c, don't).
I use a huge load of data. Have they put me on some blacklist because I stream media all the time? This actually doesn't affect streaming media, but it screws up legitimate work usage.
Is there some keepalive utility I could use that would fix this as a countermeasure? Is anyone else running into this, or am I just special?
Thanks in advance for your help
Click to expand...
Click to collapse
I'll plead ignorance on this, but I always switch off the proxy for the media net and get great usage for doing that. I don't know if you have tried it yet, but here is what I do.
Start/settings/connections/connections
Once it brings up the page, click advanced on the bottom.
Select networks
I use media net for both drop down. Click on edit. Select Proxy Settings on the bottom. Uncheck this network uses a proxy server to connect to the internet.
If you cannot get to the edit because it is not available, all you need to do is install the HTC Connection Setup and run it. Soft reset and the settings are available. It just rewrites the information but undoes what AT&T did to the phone.
Hope this helps.
Thanks for the reply.
I also use media net without the proxy. I only have issues with timeouts on my outlook web access server, and sites like rapidshare that make you wait 30 seconds to download a file and then complain of session timeouts.
With the proxy I get an IP address range in the 162.xxx.xxx.xxx family, which interestingly enough whois reports to be a verizon dsl modem address.
Without the proxy I get an IP address range in the 32.xxx.xxx.xxx family, which is ATT.
Either way, the address rolls every few seconds.
one workaround I have found is that Opera mini apparently uses an opera-run proxy server to access the internet, and opera mini does not have this logout issue on my outlook web access server even when the IP address rolls, since the proxy is not changing.
I believe the ISP.cingular APN would also fix this issue, but I have yet to find anyone at ATT willing to add it to my account so I can try it out, since they sell it with a tethering plan as an extra feature. I would have to convince my employer to add this to my plan, which is not likely.
I'd like to save everyone the trouble of figuring out how to get this done by sharing my setup with you. The VOIP itself works great over 3G/4G and Wifi, but to use the VPN you'll need to be on Wifi, 3g VPN doesn't seem to work.
Requirements:
SipDroid app in the market
A free account at pbxes.org
A paid account at callcentric.com (~$.019 a minute to call anywhere in the US)
A paid account at SuperVPN.net ($4 /mo if you pay for the whole year)
First set up a pbxes.org account, and connect to it with the SipDroid app, I recommend using this guide to walk you through the process.
http://guardianproject.info/2010/05...e-mobile-phone-system-for-android-and-beyond/
Once you have that working there is one crucial adjustment to be made within SipDroid. For some reason it comes default with all sorts of audio codecs, but only ONE of them seemed to work on the EVO, the Speex codec. So go into audio codecs and switch everything but speex to "never".
After that you should have a working VOIP system but you'll still need some kind of trunk if you want to make outgoing calls to land lines or cell phones. There are many solutions for this but I recommend callcentric.com, they seem to be the most recommended for this type of setup, and they worked great for me. You can pay $20 a month for unlimited US calling, this means you can be anywhere in the world and call the US for just $20 a month. Or you can prepay (this is what I did), then you pay a flat rate of about $.019 a minute to call the US from anywhere, and if you reach you pre paid limit, it just cuts off until you recharge it.
Once you have your callcentric account purchased, just go into your pbxes.org admin area and under trunks add one for call centric, use your callcentric # as the username, and callcentric.com as the sip server. Then go under Outbound routing, add a new one, name it whatever and choose your callcentric trunk from the pulldown menu, submit the changes and you're done.
Now you should be able to successfully make outbound calls to anywhere using SipDroid.
Lastly, this was the most challenging for me, the VPN. Apparently android, including 2.2, has some major issues with maintaining vpn connections, especially when you try and use them for VOIP. There is a huge issue queue in the android google groups forum where the problem is openly discussed without a real solution. BUT, while it appears the majority of VPN connections will fail, they CAN work if you get it set up just right. Setting up VPN's, specifically VPN's tailored for mobile devices, is not something I know how to do. In the android group thread someone mentioned SuperVPN.net as a working solution, I checked it out and sure enough they work great, I had zero problems with them the whole time I was out of the country.
So create a supervpn.net account, and then on your phone go into Menu -> Wireless & Networks -> VPN -> Add VPN -> Add PPTP VPN, create the connection and you are good to go.
*I didn't set up an inbound call # with callcentric as I didn't need one, I assume after you upgrade your callcentric account, adding the inbound trunk is similar to the outbound. Be sure and look into getting a free inbound number from sipgate.com before you go and pay for one, you'll be locked to a California area code, but free is free.
An alternative I use is having an Asterisk server at home and use IAXAgent from the market. IAX does not have the problems that SIP does when going over NAT. I can make calls over 3G or wifi. A lot of SIP providers also provide IAX accounts. IAX is just a better way to go for making calls over the Internet. SIP is excellent for the LAN.
ChrisDos said:
An alternative I use is having an Asterisk server at home and use IAXAgent from the market. IAX does not have the problems that SIP does when going over NAT. I can make calls over 3G or wifi. A lot of SIP providers also provide IAX accounts. IAX is just a better way to go for making calls over the Internet. SIP is excellent for the LAN.
Click to expand...
Click to collapse
Oops.. the method I posted actually works on 3g and 4g also, it's only the VPN that requires Wifi, I had worded it incorrectly, now it's fixed. (thank you)
I looked into setting up an asterisk server, but I didn't want to have to depend on my own server or home connection being available whenever I needed it, especially when I was traveling for more than a week.
Is IAX the same as a trunk, does it cost anything to connect to land lines or cellphones?
True, you method does make SIP work because you are using a VPN. IAX is an alternative to SIP. It is NAT friendly, and as long as the port is not blocked, it just works. Though, there are a fewer choices for clients compared to SIP. IAX was created by the Asterisk team. I do not know of any VOIP systems that support IAX, bug that does not mean they dont exist. I am a heavy Astersk guy, so IAX was my cup of tea.
What advantages does this have over google voice?
I'm curious cause i'll be going to england soon and would be nice to make calls over wifi.
ShoxV said:
What advantages does this have over google voice?
I'm curious cause i'll be going to england soon and would be nice to make calls over wifi.
Click to expand...
Click to collapse
None, in fact, it his disadvantages (See below). Also, most businesses, schools, etc. will block just about every VPN method. OpenVPN is the most flexible one I have found, which might be able to sneak around by using alternate sub-1000 ports (which most places won't block, since they require root access on whatever server they're running from).
OP: Might wanna take a look at this...
http://www.mywot.com/en/scorecard/supervpn.net
drmacinyasha said:
None, in fact, it his disadvantages (See below). Also, most businesses, schools, etc. will block just about every VPN method. OpenVPN is the most flexible one I have found, which might be able to sneak around by using alternate sub-1000 ports (which most places won't block, since they require root access on whatever server they're running from).
OP: Might wanna take a look at this...
http://www.mywot.com/en/scorecard/supervpn.net
Click to expand...
Click to collapse
Not sure what you're talking about, it saved me hundreds of dollars in roaming minutes while I was in Belize. Some places do block vpns I'm sure but I never had any issues, but you don't need the vpn itself unless you're in a country that blocks voip altogether, at which point occasional vpn is greater than no vpn.
Also supervpn was the only method I found that actually works on android, I think the risks referenced in that link you posted really only apply to desktop vpn use, not phones. Openvpn is great for somewhat advanced users and if you have a computer you can depend on as a server while you're out of the country for days or weeks, this guide isn't meant for someone capable of managing that.
As for Google voice, it just initiates an inbound call to your actual cell number, which does zero good when you're trying to avoid roaming. Now the new gmail implementation of voice shows promise as an actual voip solution, but currently that version is desktop only from what I can tell.
These apps allow you to remotely access your phone from a web browser. However, they all run a web server on the phone, and I cannot connect to any of the over 3g (Verizon).
LazyDroid Web Desktop
Remote Desktop
Remote Web Desktop
I want to move the web server off phone, and (hopefully) onto private sites.google.com site. App Engine might be necessary, but I'm hoping this could be done solely in JS.
The hosting site would provide the UI, and interact with the phone using C2DM (the magic that powers Chrome2Phone, GMail, and installing apps from the web Market).
The UI is pretty obvious. It just needs a whiz to create HTML, Javascript, etc.
The C2DM backend is a still a bit mystifying to me... and searching for c2dm and javascript does not yield any obvious working implementations. But it seems plausible. Push a command to the phone, phone returns/uploads data to website, and UI updates.
Then there is the Android end. Well, there are the 3 projects above, Tasker for a quasi-hackish approach, and RPC (promising, but it seems like a WIP).
Thoughts? Volunteers? Geniuses?
Ooo... 2 birds with one stone!
This would also kill 2 birds with one stone.
No more typing in dynamic IP addresses! You get to use DNS to handle the connections. Bookmark your site in your desktop browser (it is always the same!). And set a preference in the Android app.
On lazydroid i've in planning some kind of trick that will let you connect behind firewall ... similar to a vpn...
CloudsITA said:
On lazydroid i've in planning some kind of trick that will let you connect behind firewall ... similar to a vpn...
Click to expand...
Click to collapse
I tried it again last week, and it is still unsuccessful. Webkey is currently the only application that I can successfully use to reach my phone.
Now, I could be wrong, but I believe all of these apps run a web server on the phone. I get a lovely, private 10.x.x.x IP address, which I can't reverse the route to. I have tried and failed to get DynDNS to work.
I have been looking into a solution since my original post. I have not had any time to do code squat, but I have loosely figured out all of the parts.
The big architectural difference I have been seeking is removing the server from the phone. I am not an Android expert, but I don't believe it even requires a running service. (Thank you, C2DM.)
With the app-webservice separation, you can work a "protocol" that reduces the overall bandwidth used... and thus improve battery life. Put all the "hard work" on a webserver, and (things get fuzzy here) possibly push it off onto the client browser (JS).
C2DM Browser Links
I could probably make something like WebKey but with C2DM and some more features. If you want you can give suggestions and I'll start making on saturday (after my exams). It would probably be possible in javascript for the actual sending from server and php just for logging in to your google account. The phone would just be registered on the server and no services (just as you wanted )
nebkat said:
I could probably make something like WebKey but with C2DM and some more features. If you want you can give suggestions and I'll start making on saturday (after my exams). It would probably be possible in javascript for the actual sending from server and php just for logging in to your google account. The phone would just be registered on the server and no services (just as you wanted )
Click to expand...
Click to collapse
I am not sure "more features" is necessarily the direction I'm headed. I am focused on making a "seamless" experience (i.e. less separation of phone and computer).
I was headed to App Engine (Python bias + easy Google integration). I have a project created. I haven't pulled together the various examples to make the core, but it seems <naive>simple</naive>. Stir in some templates, CSS, a sprinkling of JS, and voila!
The big "tricky" part that I can't convert from f***ing magic to a clear approach is the data link in the server. I want to avoid any storage to a Google disk, or otherwise, even temporarily. No stored data = easy privacy policy.
nebkat, if you're really chomping at the bit to code, here's my Android client concept.
- C2DM is a wake-up call. (cheat an borrow ChromeToPhone's ID to begin with)
- Connect to web server, send "I'm here," and wait for further instructions (Channels API/Comet/AJAX/.........)
- make the command set extensible
- each command is blockable in the client. (Permission control is set on the phone, not remotely.)
- After N minutes of no activity, send a "good bye," disconnect from the server, and fade into the background.
Don't worry, I'm very experienced with the server side stuff and I know exactly what you want. The only information stored on the sever side would be google account, the device c2dm registration id and some logging features just for statistics. A password could be set on the phone that would be sha512 hashed on the ajax request and would be sent to the phone. Even if a hacker found the hash, it would be useless without being logged in to the persons google account or knowing the server side auth token.
For now i'll just make the reciever, processor and command output and later on the extra security and ui stuff. It will work exactly the same way as Chrome2Phone except it will have server side php and the different commands. The connection from pc to phone will be something like this.
user command -> ajax request -> php c2dm request -> phone
phone -> php server http request -> controller page status
BTW I'm saving up for a Nexus S, how much would people pay for this type of app? There would definitely be a free version, but I just need to get the Nexus S because I have a Galaxy Spica now and it isn't the best for app development. I'm new to how stuff at xda works, would a donate version get me enoguh for the Nexus?
nebkat said:
Don't worry, ... <snip> ... auth token.
Click to expand...
Click to collapse
Alrighty then. I'm feeling like I can stop contemplating implementing this.
BTW I'm saving up for a Nexus S, how much would people pay for this type of app? There would definitely be a free version, but I just need to get the Nexus S because I have a Galaxy Spica now and it isn't the best for app development. I'm new to how stuff at xda works, would a donate version get me enoguh for the Nexus?
Click to expand...
Click to collapse
Since I was learning the ins and outs of App Engine, I read their quota rules and realized if this were popular it would require funding. I don't know where you are going to your web server, but I assume you'll have to pay someone to keep it running. But I had thought about $$$ already.
"Give away the razor, and sell them the blades."
Make the app free, no feature restrictions.
You get your money through various "membership" levels on the server. (See the account levels at fastmail.fm for an example.) So, you can use the app for free, but you only get, say, 2-3 MB of traffic per day, and only X sessions per day. Need more? See the pricing chart.
user command -> ajax request -> php c2dm request -> phone
phone -> php server http request -> controller page status
Click to expand...
Click to collapse
user command -> php server http request -> phone
phone -> php server http request -> controller page status
user command -> php server http request -> phone
lather, rinse, repeat.
C2DM is not deterministic, and acts up in low signal conditions. So, I made a decision to only use C2DM to initiate a session. Once both ends are connected to the server, everything goes over HTTP.
Oh.... and not that we need another Lookout/Phone Finder, but a shared-secret SMS code for the case where "they" have shut down the data connection.
I have my own server nebkat.com and there is nothing on it anyway.
The only other way to make "push" requests to the phone is with WebSockets. It would probably be better than c2dm because we have full control over what gets sent (google limits some requests). The advantage of WebSockets is that they send no header information which means that we could send our messages in 20 to 30 bytes.
I'll look into more detail on friday.
With web sockets won't you need to ensure the phone has a routable, external IP address? I know, for one, t-mobile does not expose an external IP address for their phones. Unless, of course, if the phone is connected over WiFi. C2DM works great for me (I have used a couple of apps with it and it is really useful).
MrGibbage said:
With web sockets won't you need to ensure the phone has a routable, external IP address? I know, for one, t-mobile does not expose an external IP address for their phones. Unless, of course, if the phone is connected over WiFi. C2DM works great for me (I have used a couple of apps with it and it is really useful).
Click to expand...
Click to collapse
No, WS is server initiated and the ip address' shouldn't make a difference.
MrGibbage said:
With web sockets won't you need to ensure the phone has a routable, external IP address? I know, for one, t-mobile does not expose an external IP address for their phones. Unless, of course, if the phone is connected over WiFi. C2DM works great for me (I have used a couple of apps with it and it is really useful).
Click to expand...
Click to collapse
You need an valid external IP address if you are attempting to initiate contact with your phone, which is why the 4-5 apps I've mentioned do not work on carriers like t-mo and verizon.
But the phone can establish a connection, and the carrier NATs (or whatever) will handle the routing for outgoing and incoming data.
I think the right questions are: Will Verizon/T-Mo allow the ports and protocol for WebSockets? Do Android and desktop browsers implement the draft API correctly and consistently?
I like C2DM. I works well when you have a good connection. But there are 3 issues with it.
1) The message size limit is 1024 bytes. Not ideal for file transfers.
2) In a poor signal areas, since the service retries sending messages, you will get delayed and/or duplicate messages. I work in a large "concrete" building, so I get this behavior often enough that I don't want to rely on it.
3) I believe there is a limit on the number of messages you can send. So, hunting around the filesystem could hit this limit (but unlikely in reality... I hope.)
It would be interesting to see exactly how those apps handle all of the data. Do they only use C2DM, or do they hand over to another protocol?
Ok my exams are over and I am starting with it. I'll give updates on this thread