Email Push Service :) smtp+dnotify+Asterisk+... :)

Elliot F. elliotf-openmoko-discuss at grat.net
Thu Feb 1 01:14:28 CET 2007


Redvers Davies wrote:
> On Tue, 2007-01-30 at 23:49 -0800, Elliot F. wrote:
>> Google talk has a persistent connection between the client and the 
>> server.   With a persistent connection, pushing data is pretty easy.
> 
> We have to use a persistant connection as most GSM networks use private
> address space and NAT.  This means we can't just throw a UDP packet at
> the phone.

I realize we can't make unsolicited connections to the phone, but I 
would disagree with the "we have to use a persistent connection" 
statement.  The best point that Robert made in his original post was 
that there are out of band methods of alerting the phone that a new 
message is available (call from known number or SMS message.)  As far as 
I know, this is how current "push" email systems work.

> IMAP is an asyncronous protocol.  The purpose of the IDLE command is
> JUST to spot the IMAP server tearing down the connection.  IDLE is not a
> poll, if configured correctly the IMAP server will just spit out
> notifications on the existing TCP stream as and when mails come in.

I'm not sure what you mean by "IMAP is an asynchronous protocol", but I 
never said that IDLE was a poll.  It's also not there "JUST to spot the 
IMAP server tearing down the connection."  IMAP IDLE is 'true' push 
email (at least the earliest I know of.)  IMAP maintains a persistent 
connection to a server (see my comment above re: "pushing data is easy 
with a persistent connection.)  The server can then push messages via 
the established connection.  For those interested: 
http://www.faqs.org/rfcs/rfc2177.html

Another good summary of the whole topic is here: 
http://www.isode.com/whitepapers/imap-idle.html

My whole point is that maintaining a persistent connection between the 
mobile phone is (in my opinion) not efficient, not as easy, and more 
prone to error than using some sort of out-of-band notification.

I'd be happy to see all implementations, though.  There's not reason why 
it needs to be done just one way.  Depending on the user, it may make 
more sense to do it one way over the other.  If anyone wanted to 
implement the openmoko stack as a hardwired application (using VOIP for 
making/taking phone calls, for example), then the persistent connection 
would make much more sense.

I think I'll leave this thread now, as it doesn't seem to be bearing 
much fruit.  I look forward to the SDK and the phone, though, as this is 
a very promising feature (as anyone who is a blackberry addict can attest.)




More information about the community mailing list