Palringo: Battery Life, AIM Connection - Touch Diamond, MDA Compact IV Themes and Apps

Hi all,
I've been in search of an instant messaging program for the Diamond that won't drain the battery too quickly. I realize that due to their need to be constantly connected to the server the battery won't last a whole day, but certainly some clients perform better than others. The latest I've tried is Palringo. With Palringo connected, my battery would probably be completely drained in 4 hours. Can others who have used this share their battery life experience?
Others I've tried:
Beejive - very refined for a beta program, no future support for winmo
IM+ - feels very fast, but it's expensive!
Connection to AIM
(inspired by various Blackberry tipsters)
Out of all the IM programs, Palringo has the most trouble staying connected to AIM. Fortunately, there is a work around if you use GoogleTalk/Jabber. It's possible to have all your AIM buddies show in your Gtalk buddy list. Palringo is able to maintain a very good connection to the Gtalk server so you won't have to worry about the AIM connection (reconnect pending, disconnect too often) anymore.
Step 1: Download Psi , it's a Jabber client.
Step 2: Sign into your GoogleTalk account with Psi
Step 3: In Psi, go to "Service Discovery". Where it says address, use one of these or any other jabber server that supports AIM. You will probably have to try a bunch until you find the AIM protocol.
Step 4: Right click on AIM protocol and "register", sign in to AIM.
Step 5: Your Gtalk buddy list will populate with your AIM buddies. You now have to authorize each and every single one of your buddies (took me about 5 full minutes of clicking, very repetitive). You only have to do this once.
Step 6: Uninstall PSI (optional). Sign in to Google Talk on your phone to test.
It might seem like a hassle, but keep in mind that Palringo is FREE and their team is still working on the project so it will have future support.
!!Warning!! The transport server you ended up using choosing will be handling your AIM conversations. Instant Messages aren't very secure to begin with, but less secure now so be careful when sending secret info. !!!Warning!!!

Related

Useful Utility for PocketPC - Comments please....

I connect to 4 or 5 different wireless lans in the various places I work and also to GPRS.
For each one the connection to the internet will be with a different provider and therefore the SMTP server I need to use for sending mail will be different, or may even be a POP service running on a local Exchange server.
This is a pain. I have written a utility that solves this problem by allowing you to switch smtp server for all your mail acccounts in any mail client quickly on the fly.
Basically you configure any mail clients to use an smtp server called virtualsmtp and then you set up all the different smtp servers you use by IP address in the utility.
The utility sets a host record in the registry for virtualsmtp pointing to whichever smtp server you want to run.
It's called SMTPSwitcher (very imaginatively) and runs from a notification icon in the system tray.
It's a bit flaky at the moment (mainly windowing problems and issues with the NotifyIcon) and I also can't delete the server entries because RegDeleteKey always returns error 5 : Access Denied.
If anyone wants to test it or has any ideas or comments please post here.
I'd be happy to test it for you
nice software. I was wishing for it last thursday when I had to send mails from the wifi access point of a friend.
I would be glad to test it (qtek 2020, windows mobile 2003), once my phone decide to work (it did a quick 3 seconds journey in my wc today. oops)
OK. I can post the app here.
1) There is no install program at the moment, just an exe file.
The best way to install is to just copy to your PPC.
You can run by clicking on exe or create a shortcut in your startup folder.
2) It is written in c# for the .NET compact framework so you must have the .net CF installed which you probably have anyway.
3) The biggest problem at the moment is that the Remove button does not work properly.
If you need to delete entries from the list you will need to use a registry editor. The entries are stored in HKEY_LOCAL_MACHINE\Software\SMTPSwitcher.
4) Sometimes the app stops responding and wont display its form when you click on the icon. If this happens you can try to terminate it using the Settings->System->Memory->RunningPrograms option or do a soft reset.
I will be trying to fix the Remove button and unless I can find a fix for some of the problems that cause the app to stop responding I will probably remove the feature that lets you run it as an icon.
I had this problem ages ago where i would go to a friends house or a wifi hot spot but of corse could not send email.
To get round this i purchased a domain name and email account with easyspace. this works well for me, as it done not matter how i am connected either GPRS, or WiFi i can still send emails from just the one account.
The only problem just noticed the other day is if i use orange UK it works fine on GPRS connection but not if its a 3g connection, Orange are looking into this.
Please dont take this as critisisum your program is a excellent idea, I just like the idea of not having to take any notice of how i am connected and email working
John
Subscribing to a roaming smtp service is another way round the problem as is using webmail.
My problem is that I have 5 or 6 mail accounts in different domains and a lot of roaming smtp services will not relay for any domains other than the ones you have with them.
I have uploaded a new version which has a DNS resolver built in.
Instead of typing in the IP address of any smtp server you want tp use you can enter the name and it will look up the ip address assuming you are connected to a network.

Battery Usage (push mail vs sms)

Can someone explain how sms works, compared to push email? Most of the so called push email solutions are really polling applications running every so often and consuming considerable battery life. What is it about sms that allows it to accomplish almost the same thing with so little battery usage?
My experience of push applications are Intellisync and Onebridge (ianywhere).
They work by making a connection to the internet, obtaining an IP address and then registering this IP address with the push server. Then, whenver the push server recieves an email is simply sends it to that IP address. so the device NEEDS to always be connected to teh web, this can seriously drain any battery be it wifi or GPRS.
The other method they offer is powersave mode, this is basically pull email. The device isnt always connected and the installed application will connect to the server and sync either on request or at a specified interval. I currently have mine set to poll every 4 hours.
Intellisync is great but all push services are designed for the business, the few which are for the single user often lack a large number of features.
I think the SMS option is where the device is sent an sms which the application reads and is instructed to perform a sync. Never used it as I can expect it to be a bit pants.

directpush protocol questions (exchange replacement possible?)

I am using mail2web free service to have my mail pushed to my WM5 device, but I don't like the idea of forwarding my private email to a company I don't know and I don't trust.
Normally I have my email at a home mail server running linux, and I was wondering if there's any open/free solution compatible with directpush technology to replace the need for an exchange 2003 server.
If it does not exist (i have been searching and couldn't find it), what is preventing someone of writing a free replacement? patent issues? authentication issues? I haven't sniffed the protocol yet, but I think it's impossible that no one has thought about it before... wouldn't you like to have your home imap server pushing your inbox to your PocketPC phone? If the protocol is not very obscure it should be easy to write a daemon that does it...
any thoughts or experiences?
Kerio Mail Server has the push compatibility.
Not free though, but it is an alternative to Exchange.
Their latest beta supports it. I reported a bug to them re: contacts getting corrupted but they say they fixed that in the latest build.
Can't retest now since that server is at another site I won't be visiting for a while.
Hmm the directpush "protocol" is pretty trivial it shouldn't be impossible to implement an open alternative.
I installed the latest Kerio MailServer yesterday. It works great!
Especially nice is that it runs on XP as well as Linux. Too bad about the price!
pof, have you had the chance to sniff the protocol?
not yet ivorh, been too busy with many other things, but this is still on the queue
sniffed
Heh, got bored so I setup an exchange account and sniffed the packets.
I'll go through them and post some details when I get a chance.
great ivorh!
Can you attach a capture in pcap format?
update and thoughts
Pof,
Hmm, ok a bit more thinking and digging and I'm not sure implementing an open alternative directly is that useful. Let me explain why:
The direct push only works with the outlook exchange active sync. When the device gets a "direct push" byte, it triggers a sync with exchange - the functionality is tightly bound together, and as far as I can tell you cant dip in and get it to do something else. So to get it working you would need a server providing the exchange http interface. This wouldn't be impossible but would need a lot of effort for little benefit.
I took a look at the open-exchange but that doesn't seem like an ideal solution since it would require a completely different server installed rather than IMAP or POP and as far as I can tell the Outlook connector isn't one of the open-source components anyway.
Now what I'm currently thinking would be a neat workaround would be to implement a custom "direct-push" to basically do exactly the same, have a client app on the device open an http connection to a server running, er, "OpenPush" if you like... use exactly the same technique of a keep-alive connection and occasional heartbeats, but on a message notification on the client get the client to trigger an IMAP pull.
Now this is where I need some advice.... I haven't done any Windows Mobile development yet, so can anyone tell me what sort of API is available to the messaging app? Can you/how do you trigger a mail pull? (oh someone please tell me it's not the same horrible old MAPI interface??).
PS I've just been capturing the data using a simple http proxy actually, I'll make some samples and upload them with descriptions.
Cheers,
Ivor.
http://www.ivor.it
Hi pof,
try funambol. It was formerly known as Sync4j. I once found it when I searched a complete sync solution that I could implement in the mailserver of my company. We are using kolab so I only tried the old Sync4j cause there is a kolab connector available for v2.3.
v3.0 implements (real) Push-Mail. Microsoft Active Push works with a http connection that is opened by the client. Funambol Push-Mail connects to a port the client opens. I didn't want to test any further cause I'm using a Wapflat and thus only get an internal IP and have to use a proxy.
http://www.funambol.com/opensource/
Perhaps this is what you are searching for
What I forgot to say: For funambol you install a java program on your phone wich will insert the received mails in your Pocket Outlook
Yay!
Pof,
Ha! Ok I've whipped up a version 0.0.0 of OpenPush. and it works rather nicely!
Basically it consists of two parts one is an app that runs on the mobile and operates in the same manner as DirectPush. It opens up a socket connection to the server and waits for a notification byte. If it recieves a byte it kicks off a mail retrieval.
The other is a daemon that runs on the server and watches for a change in the users mailbox if it changes (i.e. a mail has arrived) then it pops a byte down the socket.
It just needs finishing now...
Currently the daemon is just an app that listens on a dedicated socket. I plan on turning it into a mod_perl module and using http keep-alive in the same fashion as directpush.
Regards,
Ivor
ivorh, that sounds cool!!
I had a look at funambol but seems too 'bloated' for my needs, I think your OpenPush will be more tight to what I was looking for, so if you want a beta tester just send a link to it
Is there any specific server configuration? I am running a Gentoo server with courier-imap, sendmail and apache2.
Any chance you could extend the daemon so other programs can tie into your new-item notification? It would be cool to write a program that can keep files synchronized over-the-air with a desktop machine using push sychronization.
Pof,
Yeah it's just a prototype at the moment. So I need to write it properly next. At the moment the requirements are simply "perl". It's independent of mail system, it simply monitors a directory/file you give it for changes.
I'm going to write it to be a mod_perl module for various reasons, so the requirements will be just apache and mod_perl.
I'll hack some more tonight and try and get a 0.0.1 ready.
aatreya,
Well I'll keep it simple for now and just doing one job well.
Sound interesting to me.
I am new to this. Pardon me for some questions.
Do I need to buy a server at home?
This server can be any OS?
I am really happy to see some people trying to do just about the same I intended to. Today I started experimenting with Open-Xchange. I also have a Gentoo server that provides an ebuild for Open-Xchange, but after a bit of browsing it just seems like the thing MS Exchange and OX have in common is the similarity of their names. So installing OX and doing all the Exchange stuff with it does not seem to be an option.
So I looked into Funambol - sort of again. About a year ago I already tried to get Sync4J running to sync my SyncML phone. I did not succeed, but that just makes me eager to try it harder this time.
I also have to use a Proxy-Server for my GPRS connection but I want to have it working via WLAN, too, hence without proxy and the whole tunneling disco.
PS: Ivor, I am glad to meet You once again. When our roads crossed the last time, You just figured out how to get the CLE266 MPEG2 stuff working, respect!
A very rough pre-alpha version should be ready this weekend. I can only apologise in advance for the quality of my WM5 app!
But it's "working for me".
CWKJ,
At the moment the "server" is a simply perl app that watches for changes to a directory or file so its pretty portable. I run it on linux since that's what my mailserver is on.
As for needing a server at home... well its entirely up to you, really you want the server running wherever your mail is retrieved from.
If the app/system gets a bit more polished and advanced you might even find independent ISP's willing to add it as a service.
rabinath,
Heh! Small world.
I'd also like to be considered for Beta testing when available,
I run Ubuntu 5.10 Server at home, hosting 5 domains for myself, and would Love to not have to forward them through mail2web anymore as I don't like to reply because it will go through Mail2Web. I know I can create a separate "account" in Pocket Outlook but you can only have 5. I need more than that...
with direct push over the o2 wap proxy all https conections are closed after 2 min. this is becausse all 2 minutes a new sync is needed. This eats much battery. So why is it nnot possible to mak e a ppc client that just sends the current ip adsress to the client on the server. and the server just push the email to the known ip adress. The client on ppc just has to send a new ip in case it changes. this wouldt be much better for battery life.
Thats the reason Exchange-Activesync works the way that it does. The server sends out a text message that is handled at the system level on the PPC, and this is basically an instruction to sync with the server. No unneeded traffic just to check if there is anything new.
Most Celllar service providers are using NAT technology so reporting your IP address to a server and telling it to make a connection to that IP, would just be telling the server to connect to the "gateway" back into the Cellular network. A text message sent to what is called the "SMTP Gateway" for each service provider will get to the phone no matter if the phones IP changes.

Sure to cause wrath: Reverse Engineering ActiveSync with Exchange server

Hello everyone!
As you can see by my profile, I'm a rather new member of the XDA-Dev community, and also a new owner of an HTC Tytn. I love it.
I also love open sourced or at least free software.
My problem is: I'd love to have push based e-mail feeding off of my plain old IMAP and/or POP account hosted wherever.
Of the two IMAP IDLE capable clients on WM6 (I'm using LVSW) both feel like a piece of **** along with an attached price tag. One of them was also last updated in early 2006.
I've been looking at WM Outlook and Exchange syncing. I'm thinking about implementing some sort of an interface that would provide Outlook style ActiveSync front end (hey, it's just WebDAV) to a simple IMAP/POP3 account in the background.
I'll probably start working on this just for the kicks anyway, but... would anyone else be interested in seeing/using something like this?
ivanstojic said:
Hello everyone!
As you can see by my profile, I'm a rather new member of the XDA-Dev community, and also a new owner of an HTC Tytn. I love it.
............
I'll probably start working on this just for the kicks anyway, but... would anyone else be interested in seeing/using something like this?
Click to expand...
Click to collapse
There is software called emoze. This relies on your desktop & outlook downloading the email then Emoze sends the data to you PDA over the cell network.
The way i think that would be good is you would need a software client running on your desktop that polls your POP3 server for new headers. When it gets one it sends your PDA a token telling it to go and d/l its pop.
Im thinking of writing one cause i want it to detect if its cradled. I only want my e-mails forwarded to my phone when its not cradeled.
Just some thoughts. But if its in c# ill be happy to try help where i can.
Shaun33 said:
There is software called emoze. This relies on your desktop & outlook downloading the email then Emoze sends the data to you PDA over the cell network.
Click to expand...
Click to collapse
First off, I'd like to avoid the whole using-the-desktop thing. The mails are accessible on the server, and can stay there until your desktop client picks them up. Ideally, you would use IMAP and just leave the mail on the server as long as you need it, thus having it both accessible from your desktop and your mobile client.
The approach I'm thinking of would emulate an Exchange server. You would configure this server the same way you configure outlook syncing with a real Exchange server on your phone - thus eliminating any need for development or hacking on the client side. Everyone would just be using their default messaging client installed on WM.
ivanstojic said:
First off, I'd like to avoid the whole using-the-desktop thing. The mails are accessible on the server, and can stay there until your desktop client picks them up. Ideally, you would use IMAP and just leave the mail on the server as long as you need it, thus having it both accessible from your desktop and your mobile client.
The approach I'm thinking of would emulate an Exchange server. You would configure this server the same way you configure outlook syncing with a real Exchange server on your phone - thus eliminating any need for development or hacking on the client side. Everyone would just be using their default messaging client installed on WM.
Click to expand...
Click to collapse
So from My understanding this is what we got.
Code:
~ Project ~
CLIENT | HACK'D | <-----> IMAP
A/Sync <---> | Server |
WM6 | APP We Write | <-----> POP3
That should be possible but the reason that your able to recieve it in two places is because the exchnage server is the mailbox essintally. And your desktop account is also attached to the exchange server(someone jump in if im wrong) this means that it knows when something is deleted on your desktop.
So we would have to emulate both the Device and Desktop exchange server functions.
Other way is to just put a wrapper around a popserver. So it will only send the emails to the desktop once, then keep the e-mails for the device.
eg
Code:
****Check POP3/IMAP server every x mins
New Email
D/L and Store
Ping PPC Client
PPC Downloads
Flaged as PPC received
Desktop POP3 checks pop wrapper
Because the exchange server has the builtin pop client you will never be able to get true e-mail unless you create a pop3/imap server that has the PPC ping functionality built into it, you will always have the **** step.
Just some thoughts ...
ivanstojic said:
First off, I'd like to avoid the whole using-the-desktop thing. The mails are accessible on the server, and can stay there until your desktop client picks them up. Ideally, you would use IMAP and just leave the mail on the server as long as you need it, thus having it both accessible from your desktop and your mobile client.
The approach I'm thinking of would emulate an Exchange server. You would configure this server the same way you configure outlook syncing with a real Exchange server on your phone - thus eliminating any need for development or hacking on the client side. Everyone would just be using their default messaging client installed on WM.
Click to expand...
Click to collapse
you dont need to 'hack' anything... is you look at the Microsoft Exchange 2007 SDK you can write your own libraries that get called on incoming mail etc... no hacking required... how do you think Blackberry Enterirpse Server and Goodlink Server work??
The whole idea is that I want nothing to do with Exchange in the software, except to emulate it's ActiveSync features and push e-mail. No SDK, no libraries, nada.
I don't have any problems polling the POP3 server every few minutes. With IMAP it's much easier considering that a lot of IMAP servers support IDLE.
Basically, the architecture would be exactly what Shaun33 described/drew in his post.
ivanstojic said:
The whole idea is that I want nothing to do with Exchange in the software, except to emulate it's ActiveSync features and push e-mail. No SDK, no libraries, nada.
I don't have any problems polling the POP3 server every few minutes. With IMAP it's much easier considering that a lot of IMAP servers support IDLE.
Basically, the architecture would be exactly what Shaun33 described/drew in his post.
Click to expand...
Click to collapse
Ok best idea is if you have the time.
1. Install Exxhange server and pair your PPC to it.
2. User packet monitoring software such as ethereal to monitor the data going back between the server and the client the best fun is going to be the fact that is SSL. But there is an option to disable the SSL then you monitor port 80.
If you post a capture file i would be willing to look into helping you develop it.
Shaun33 said:
Ok best idea is if you have the time.
1. Install Exxhange server and pair your PPC to it.
2. User packet monitoring software such as ethereal to monitor the data going back between the server and the client the best fun is going to be the fact that is SSL. But there is an option to disable the SSL then you monitor port 80.
If you post a capture file i would be willing to look into helping you develop it.
Click to expand...
Click to collapse
Ethereal isn't called Ethereal any more, you do know that? It's been known as Wireshark for a while now. Anyway, the protocol is (almost) standard WebDAV protocol with some strange extensions.
I'm working on getting clean dumps of various bits of functionality. Will report soon!
hi guys,
i got to know about one website which is provide push mail for pop3 account for free, i tested it on JASJAR and its working fine, you can try it here www.consilient.com may be it would be helpfull...
This certainly sounds interesting to me! Do you still think it is doable?
Sounds cool - like you said, it's all webdav oriented, and from IIS logs, getting the content is fairly easy to construct. You won't have to worry about matching up device IDs, etc, so you can ignore that and concentrate on the username with what verbs are being used (foldersync, sync, getestimate, etc)
One thing may get you is the initial connection - after configuring, it will check to see if theres a policy to set on the device after checking the user, not sure how activesync on the device will handle it if it can't get to that.
I always think its funny that MS decided to call this "push" technology, when its just the device constantly polling (probably just an xml change file, i seem to remember something like that)
Anyway, good luck

[IDEA/POLL] Use C2DM app for remote phone access

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

Resources