

The Sad State of Mobile XMPP in 2014 - ge0rg
http://op-co.de/blog/posts/mobile_xmpp_in_2014/

======
morsch
The state of instant messaging is sad overall. There was a steady evolution to
my own IM usage: from a proprietary, walled-garden IM solution (ICQ) via a
reverse engineered multi-network client (a la Trillian) to a federated, free
protocol, XMPP. I figured everybody would be using XMPP of some sorts and we'd
be on our merry way to solve more interesting problems on that basis.

Instead, everybody is back to walled gardens that can't interoperate, and I'm
using 5 or more services to talk to acquaintances -- SMS, Jabber, Google Talk,
Skype, the list goes on -- and fall back to good old email for people where I
don't have access to their IM of choice (such as Facebook chat or Whatsapp).
It's such a pain in the ass.

It's 2014, I expect it to be matter of course to be able to chat with everyone
I know with all the bells and whistles -- OTR-support, offline messages,
synced history where desired, file transfer. It's an odd twist of technical
history that we're not there yet.

~~~
MichaelGG
What is he benefit or point in Facebook or Google doing interop with other IM
systems? Interop seems like a desperate last-chance measure when you realise
you're losing users.

I don't think there's anything technical involved. Unless spam is considered a
technical problem, but denying federation seems to solve that problem
considerably,

~~~
Argorak
This is a purely business perspective, completely dropping the interests of
the user.

All older communication companies (providing e.g. phone calls, fax, SMS) have
working, interoperable systems that work on a global scale for _any customer
of one company to any customer of another company_. By using a globally unique
number.

It is, quite frankly, a disgrace that we now run around and find excuses for
companies to re-introduce closed networks on a medium that provides working
low-level routing on a global scale for almost all connected parties already.
We're talking short messages here. I went back to SMS because of all this bull
__ __. Not even iMessage. It works. With everyone. Everywhere. Without
installing something.

From a users perspective, the current situation is horrible and a huge step
back.

I couldn't care less about what the benefit for Google or Facebook is.

~~~
MichaelGG
>This is a purely business perspective

Yep, pretty much. Do you expect multi-billion dollar companies to do something
just because it sounded nice? Acting like that only works if they can get
enough users onboard to commoditize the service. IM is far from that point
(see the rise of new messenger apps/networks, decades after the first ones).
These companies want their users inside their apps as much as possible.

Not to mention, allowing federation doesn't help the vast majority of their
users, who are on other closed networks. So for it to be relevant, two
networks need to interconnect. Without any solid reason or threat, why would
they do that?

SMS BTW is a rather crappy example; I don't think I've ever used any other
service that was so unreliable, slow, and expensive. And the only reason you
have competition in many companies is due to the government coming in and
breaking things up or allowing competition. Even today on phones, various
companies are still doing their best to create lock-in or jam users, by, say,
charging ridiculously high prices to call into their networks.

~~~
Argorak
If SMS is crappy for you, just take phone calls. There is still jam-in, yes,
but you can mostly find a cheap phone connection from any place in the world
to any other. I regularly call cross-continent and with some googling, you get
a decent rate.

The point being: the system is there and there is competition that drives the
prices down.

Also, I don't believe that for a "vast majority of users", federation doesn't
matter. Everyone I know uses multiple messenger apps on their phone _or just
use SMS_. SMS is the base line.

This is a failure of a model. Sure, Google has no interest of federating with
Facebook. What this leads to is the aforementioned silos of peoples
communications. "How do I contact this person? WhatsApp, Facebook, Twitter DM,
Jabber, Google Talk, jadajadajada?

The only thing that comes close is email.

No, I don't expect multi-billion dollar companies to do something that sounds
nice. Which still makes the model as a whole a failure. Obviously, multi-
billion dollar companies cannot be trusted with providing reliable and easy
reach-ability on a global scale.

~~~
MichaelGG
>The point being: the system is there and there is competition that drives the
prices down.

Eh, not really. Many countries still use the state-run monopoly. Connecting to
them has a specific price. The demand for calls into their country is more-or-
less fixed, and will remain so no matter the price. If you're seeing a price
much below the actual price, then it's due to someone doing some illegal
maneuver, such as sticking their cell phone on a VoIP system. (Despite it
being illegal, I applaud such efforts.) Even for countries that aren't run
like that (Europe?), prices can be well in excess of $0.20 a minute. The price
to the receiver of the call is $0.00 so perhaps that limits competition. Some
places even put an international tax on all calls, so that calls from outside
the area are forced to pay more. Some places do the inverse.

Do you have info on people that use SMS across countries? For many countries
I've seen, the price-per-message makes it a true last resort. (Inside the US
or inside EU, this may not be an issue.) This makes WhatsApp so useful.

Do you have a real proposal, or is this a "it'd be nice if our government
helped some companies build and run an IM infrastructure for very low cost for
us"?

------
shmerl
What is the state of power saving related XEPs which are critical for battery
life on mobile? Looks like nothing is moving anywhere. For example XEP-0273 is
still deferred:

[http://xmpp.org/extensions/xep-0273.html](http://xmpp.org/extensions/xep-0273.html)

I'd worry about this even before anything else when it comes to XMPP on
mobile, since otherwise your client can be a hungry monster eating up your
battery in no time.

~~~
ge0rg
The main problem with energy saving are short-living NAT session in the
"carrier grade" NAT systems deployed by mobile ISPs.

You need to ping the server aggressively to prevent a NAT timeout from killing
your connection. On most networks, ping intervals of 15 minutes are
sufficient, but some ISPs seem to be brain-dead enough to kill TCP connections
even earlier, enforcing additional load on their own networks.

However, it is hard to make a proper guessing algorithm to estimate the time
between ping messages, so most apps hard-code it. yaxim is using 15mins and
hoping for the best. Xabber is working with 1min (or 30s, not sure), Google's
cloud connection is using a similarly low interval.

~~~
shmerl
How is IPv6 deployment going in the mobile networks? That could solve all
these NAT problems.

~~~
ge0rg
Zero deployment on the networks I have access to. Also I would not be
surprised if the carriers manage to break permanent connectivity there with
stateful firewalls.

~~~
toomuchtodo
T-Mobile deploys IPv6 exclusively to Android devices with 4.4 (Kitkat):
[http://www.dslreports.com/shownews/TMobile-Goes-IPv6-Only-
on...](http://www.dslreports.com/shownews/TMobile-Goes-IPv6-Only-on-
Android-44-Devices-126506)

------
danielrhodes
Why would anybody want to use XMPP with mobile anyways? The protocol is very
noisy and as a result it will keep turning your radio on/off in the
background, effectively killing your battery.

~~~
josteink
_Why would anybody want to use XMPP with mobile anyways?_

Anyone with an Android-device is already using it. Android's push-notification
depends on XMPP to work, and Gtalk/Hangouts is already piggybacking on that,
making it a free ride.

So, unless you are on the patent-troll side of mobile, you have no reason not
to use it.

~~~
nutjob123
>Android's push-notification depends on XMPP to work

Do you have a source for this info?

~~~
ge0rg
In the early Android versions (pre 1.0), the Android API actually included
XMPP methods. I also remember reading debug messages containing "XMPP" in the
function names related to GCM. These are just hints, and the protocol might
have been changed since then, but the GCM uplink feature also indicates that
it still at least relates to XMPP.

------
ChikkaChiChi
I don't deal in the iOS ecosystem, but the fact that the only way to get data
to the device using push is insecure is just pathetic.

In a perfect world, the public would care. Instead, we scream into our own
echo chamber.

~~~
danudey
iOS 7 supports background wake-up-and-do-things for apps, so this problem is
actually solved now.

~~~
ge0rg
Would you care to elaborate? The only thing I found in the apple docs is that
calling your app callback is a "best effort" service not guaranteed to do
anything if your app is not running already.

------
soapdog
An interesting thing is the Push Notification system used by Firefox OS which
does not maintain a connection with the server like Android or iOS, instead
the carrier has a notification server so that when you send a push
notification, the carrier sends a signal to the phone and awakes the app.

Making IM apps that don't need to keep a connection open is a great way to
reduce battery. This way whenever you receive any message the carrier pings
the phone, the app awakes and open the connection to retrieve the messages.

More info at [https://developer.mozilla.org/en-
US/docs/WebAPI/Simple_Push](https://developer.mozilla.org/en-
US/docs/WebAPI/Simple_Push)

I am sure that this can be used to make a XMPP client that makes good use of
the battery by only keeping the connection open while people are talking and
effectively closing it once the chat goes idle.

~~~
ge0rg
As I wrote, it is hard to keep the conversation private in such an
offline+push context. On the other hand, the additional battery load induced
by a properly implemented XMPP connection is low. Apple's main fear is
probably badly designed apps which really drain the battery.

------
zdw
iOS user here. I have Colloquy Mobile, with a backend of ZNC/Bitlbee, which
bounces IRC and various IM protocols to my phone.

But it's by no means a layman's solution...

~~~
dhimes
Does that require your mac to bounce the messages to you?

~~~
zdw
Nope, ZNC has a colloquy mobile bouncer:
[http://wiki.znc.in/Colloquy](http://wiki.znc.in/Colloquy)

------
msie
I suspect some companies don't implement XMPP because it's too complex for
simple messaging with very little upside. For a startup why worry about
potential future interoperability with Google services(?), which would add
months of engineering to get things right? YAGNI.

------
jgale
Layer ([http://layer.com](http://layer.com)) is building a successor to XMPP
that's optimized for mobile and solves device coordination problems. The
inventor of XMPP, Jeremy Miller, works there.

~~~
ytjohn
This looks interesting. I looked at their site and documentation for
implementing a client (once they are up and running). Do they provide any
other information about their goals? Do you know if they have a goal to let
anyone run a Layer server with interopability like xmpp does?

~~~
ytjohn
Ahh.. found their blog.

[https://layer.com/blog/post/why-I-joined-layer-
jeremie](https://layer.com/blog/post/why-I-joined-layer-jeremie)

------
mbq
For me the worst thing was the way it handles multiple devices -- AFAIK when
there are few clients with the same priority connected, the server delivers
messages completely arbitrarily, usually only to a one of them and based on
some crazy criterion like the last connection time; not to mention that the
context is always lost. I ended up using SSH client and irssi :(

~~~
danudey
My experience has been:

* Google: Delivers incoming messages to whichever client most recently talked; occasionally 'resets' and delivers messages everywhere until a client talks again.

* Facebook: Delivers incoming and outgoing messages to web client; incoming messages only to XMPP clients (i.e. no outgoing message sync); occasionally outgoing XMPP messages are never sent or recorded at Facebook (this seems to happen and then stay a problem forever), resulting in your messages being silently lost.

------
NSAID
Maybe someday I'll be able to use my iMessage-to-XMPP scripts to communicate
with several devices instead of just my Android phone.

And maybe someday I can build a bridge between FaceTime and XMPP once all the
media protocols get sorted out.

It may currently be a sad state, but it's exciting to see the direction things
are/can be going.

------
tehabe
I don't like that most of the XMPP client on Android are presenting the roster
of contacts instead of my conversations I'm currently having. Those are
important to me. That is why I prefer systems like Hangouts or WhatsApp.

So most XMPP clients looks odd for me, they try to look like desktop clients.
Which doesn't work on Android I think.

------
atmosx
As we move to mobile platform, privacy becomes more and more exotic.

------
nasalgoat
When we were developing a messaging system for our app, we looked at XMPP, and
it wasn't a hard choice to not use it.

As it's meant to be a constant-connected protocol, it's a poor choice for
mobile. But beyond that, the various plug-ins are overly complicated,
difficult to configure and most of the existing servers are "black boxes" that
tend to not be easily hackable.

It was easier to make a chat protocol over HTTP from scratch than scale XMPP.
YMMV.

------
johnchristopher
I remember a post mortem for XMPP/jabber from 5 or 7 years ago. The author
described what went wrong and the title was something like "the state of xmpp
and why it's dead" or something.

Does anyone here remember that ? I have been looking over the internet but my
google-fu failed me and I really wished I could read it again.

------
kamobit
"If we can manage that, we can also convince all the users of WhatsApp,
Facebook and Google Hangouts to switch to an open protocol that is ready for
the challenges of 2014."

Not sure if serious. Let's hope not.

~~~
ge0rg
It was tongue-in-cheek, though my agenda is to make mobile xmpp as reliable
and user-friendly as the proprietary apps.

Can you elaborate your reasons for hoping I'm not serious?

