Kannel: Open-Source WAP and SMS Gateway
60 points
6 hours ago
| 9 comments
| kannel.org
| HN
pavlov
4 hours ago
[-]
> “HTTP is also too inefficient for wireless use. By using a semantically equivalent, but binary and compressed format it is possible to reduce the protocol overhead to a few bytes per request, instead of up to hundreds of bytes.”

Around the turn of the millennium, there were numerous international committees and hundreds of millions of dollars spent by companies on this idea that we simply can’t use the existing internet on mobile phones, so there needs to be something else.

Of course for the companies it was mostly a plot to capture the web, which was uncomfortably open and uncontrolled. The mobile operators were used to charging 20 cents for sending a 140-character message and 1 euro for delivering a monophonic ringtone. They wanted to be the gatekeepers and content curators of the mobile web, taking a cut on every bit of content that flows to devices. (I remember vision PowerPoints where operators imagined that one day when video can be watched on mobile phones, they’d be making more money from each watch than the studios.)

“We must save 200 bytes on HTTP headers or the network will melt!” was just a convenient excuse to build a stack they could own end-to-end.

reply
diggan
4 hours ago
[-]
I don't know if you tried to use the web via 3G or even GPRS, but I remember I did, and it was terribly slow. Opera Mini/Mobile ran some sort of proxy service that made things faster (not sure how or what that was, I was too young to understand anything) and helped a little bit, but the best thing you could come across was dedicated WAP websites that basically were "website lite" versions some websites ran concurrently with their real websites.

And even so, loading a 0.1MB WAP website still took time. The pipes were really slow back then, and the devices not being like the pocket computers we have today.

> The mobile operators were used to charging 20 cents for sending a 140-character message.

In Sweden when I was young, it was pretty common for us to have monthly plans with unlimited text messages included (but not surfing, no one did that on the phone anyways). Even with that, WAP seemed to have served some sort of purpose, at least for me personally.

reply
pavlov
4 hours ago
[-]
Both are true: WAP was technically a well-intentioned (if poorly designed) solution to a real problem, while also being a cynical power grab by the operators.

The problem turned out to be more short-lived than anyone imagined in 1999, and fortunately the power grab failed too. Steve Jobs hammered the definitive last nails onto that coffin. Mobile operators became the dumb pipes that was always their worst nightmare.

reply
usr1106
4 hours ago
[-]
> Opera Mini/Mobile ran some sort of proxy service that made things faster (not sure how or what that was, I was too young to understand anything)

That is still running. The SymbianOS version of the Opera Mini browser still works.

From my Web server log:

    88.88.88.88 [20/Dec/2024:18:55:10 "GET /redacted HTTP/1.1" 200 75 r:- "Opera/9.80 (Series 60; Opera Mini/7.1.32444/191.361; U; de) Presto/2.12.423 Version/12.16"
reply
diggan
4 hours ago
[-]
I don't think their proxy server would use Opera Mini as the user-agent. What I seem to remember, was that they run this proxy which did the fetching for you, did some ridiculous compression or similar, and then sent you the compressed reply.

If I remember this correctly, I'd expect the user-agent to be something like "Opera Proxy" or "Opera Compressor", not the user agent of the browser itself. But again, I might remember this all incorrectly, was a long time ago and I was just a kid.

reply
lxgr
2 hours ago
[-]
> I don't think their proxy server would use Opera Mini as the user-agent.

It does, I just checked:

> Opera/9.80 (Android; Opera Mini/87.0.2254/191.361; U; en) Presto/2.12.423 Version/12.16

> What I seem to remember, was that they run this proxy which did the fetching for you, did some ridiculous compression or similar, and then sent you the compressed reply.

That's Opera Turbo, a feature of Opera Mobile (which is a full browser, HTML, JavaScript and all), which indeed compressed images and other media in a lossy way (and text losslessly, if it wasn't already at the HTTP level, I assume).

Opera Mini actually renders HTML (and executes JavaScript for a couple of seconds) server-side and then sends a binary version of that pre-render to the phone. I imagine it to be closer to SVG or PDF than to HTML and CSS.

reply
usr1106
4 hours ago
[-]
I know the user causing those log entries personally. They use Opera Mini on an ancient SymbianOS phone.

Yes, it works like you describe. They use a compressed protocol between the client and the proxy. The DOM might not even be based on HTML, not sure about that.

reply
usr1106
3 hours ago
[-]
Actually I would not have needed to redact the IP address. It's not the end user but Opera's proxy:

    82.145.211.80 [20/Dec/2024:18:10:36 "GET /redacted HTTP/1.1" 200 75 r:- "Opera/9.80 (Series 60; Opera Mini/7.1.32444/191.361; U; de) Presto/2.12.423 Version/12.16"
reply
rollcat
2 hours ago
[-]
> Opera Mini/Mobile ran some sort of proxy service that made things faster [...]

In 2017ish, I've overheard from a friend who used to work for Opera, that back in their time they were using Presto (their in-house engine) on the backend to pre-render/optimise/compress pages. Think smart VPN/proxy.

Also, heck yes, Opera on "dumb" phones was an amazing experience - compared to the built-in contemporary browsers.

reply
lxgr
2 hours ago
[-]
This was how I browsed the web on the go for the better part of a decade, before browser became good enough and prices (and download times) per megabyte cheap/fast enough to actually use the full web on mobile devices.

It was absolutely amazing. And it's still around! I have an install on my iPhone; while the app seems to be unpublished in most western countries' App Store, I can still use it just fine. I believe the Android and J2ME versions are still actively installable.

Although I just gave it a try, and the iOS version seems to not be the real deal anymore; it seems to use a media compression proxy and regular WebKit to render on the iOS side. The Android version still does server-side rendering.

reply
usr1106
4 hours ago
[-]
> Of course for the companies it was mostly a plot to capture the web, which was uncomfortably open and uncontrolled. The mobile operators were used to charging 20 cents for sending a 140-character message and 1 euro for delivering a monophonic ringtone. They wanted to be the gatekeepers and content curators of the mobile web,

So how has this changed? Nowadays Google and and Meta are the gatekeepers. The business model has changed from billing the end customer to personal data prostitution. You sell us your private life and we give you "free" services to get even more personal data. Disregarding the ethical aspects: If you look at Google's profits and the money they can happily spend on paying fines to regulators, it's obvious that we have no functioning market economy.

In the old days one could still change between ~3 competing operators and one was typically competing on price. Nowadays you don't really have that option. Maybe every n years when you have to biy a new phone you can choose between Android and Apple, but it's a limited choice.

reply
orev
2 hours ago
[-]
No, this is a completely different scenario. There’s a huge difference between the companies who provide the pipes having full control over everything (the way it was back then) and what we have today which is that some companies have become defacto standard platform providers. It’s the difference between having to pay a toll every time you leave your driveway vs. paying for things at whatever store you decided to drive to.

Google and Apple happen to have devices that most people use, but if you want to you can buy USB adapters to use on a laptop, or some laptops have built-in mobile data.

I think people making this type of comment like “there’s no difference now” just were not around back then and have really no context on just how completely locked down the wireless carriers had things back then.

reply
lxgr
35 minutes ago
[-]
> Google and Apple happen to have devices that most people use, but if you want to you can buy USB adapters to use on a laptop, or some laptops have built-in mobile data.

But if you want a smartphone like most people these days, you’re out of luck.

Things are almost infinitely better on the network side, and I don’t miss operators dictating when I get a firmware update or which app store I can use. But now Apple does that, and Google isn’t a really great alternative either for other reasons.

reply
sabbaticaldev
3 hours ago
[-]
the fact that other companies succeeded doesn’t have much to do with the many that failed with terrible assumptions
reply
cherryteastain
4 hours ago
[-]
We're better off than that scenario, but not much better. Apple and Google ended up owning the phone operating systems so only the things that they deem acceptable are what the vast majority of users are allowed to use.
reply
pavlov
3 hours ago
[-]
Do Apple and Google stop you from opening a web browser and navigating to any web site?

Because that was the trillion-dollar vision for mobile operator owned WAP portals around 1999. They would completely control access to online services on mobile devices. That was how they planned to get a cut on everything you view on a phone.

reply
lxgr
2 hours ago
[-]
> Do Apple and Google stop you from opening a web browser and navigating to any web site?

Apple kind of does, yes. They do let me use exactly one web browser.

On my old Symbian phone, I had the choice of the built-in WebKit browser, Opera Mini, Opera Mobile, all with different rendering engines and their various advantages and downsides.

Now it's all WebKit frontends.

> That was how they planned to get a cut on everything you view on a phone.

Apple does get a cut of every web search I do, and I can't even use the search engine of my choice.

Not that I think the mobile phone operators and manufacturers of the early 2000s would be better custodians of user freedom on their devices, but I don't think it's correct to paint this as an unequivocal change for the better.

There was more design by committee back then (and the committees were as bureaucratic as it gets, just open any 3GPP or OMA specification and you'll never complain about anything W3C again), but there was also more pluralism of device design and UX aesthetics, and more than two implementations of everything, both by US companies sometimes struggling to empathize with users living in other countries and speaking other languages.

reply
cherryteastain
1 hour ago
[-]
No, they are less direct but not less malicious [1]

[1] https://en.m.wikipedia.org/wiki/Web_Environment_Integrity

reply
fulafel
4 hours ago
[-]
Yep, it was obsoleted before it could catch one. Sadly not so with IoT devices. Today's IoT device hardware would run HTTPS, JSON etc just fine, but there are all kinds of constrained weird protocols used, and lots of companies there have incentives to perpetuate it.
reply
lxgr
2 hours ago
[-]
I wouldn't underestimate how verbose JSON over HTTPS is, compared to a binary protocol that maybe only sends a single symmetrically encrypted UDP packet per sensor status report.

Some IoT devices run on CR2032 Lithium cells, and even a single order of magnitude still matters there.

Network data usage can be a consideration too. Some IoT devices use satellites as a backhaul; you definitely don't want to (and in fact can't) run HTTP over something like Iridium SBD, for example.

reply
cyberax
3 hours ago
[-]
> Around the turn of the millennium, there were numerous international committees and hundreds of millions of dollars spent by companies on this idea that we simply can’t use the existing internet on mobile phones, so there needs to be something else.

This was not unreasonable. GPRS started to roll out around 2002. And it was quite spotty initially, to say the least. The phone hardware was also quite underpowered, good old Nokia 3310 had a whopping 2kB of RAM accessible to the software.

I got my first mobile phone in 2000 that had WAP-over-SMS, and it was quite useful. I could check the weather forecast, and my university had a nice WAP site with important notifications (scheduling changes, exam reminders, etc.)

reply
lxgr
2 hours ago
[-]
I vaguely remember seeing a physical boxed software title in my local stationary/book/media store that I am pretty sure in retrospect must have been a WAP gateway you could install on Windows and dial up to your modem from a mobile phone.

The idea was presumably that if you'd have a second line or maybe broadband connection on your computer, you could save on your mobile operator's WAP fees if you had cheaper local calls to your own landline, or possibly access local data on your PC?

reply
userbinator
4 hours ago
[-]
but a reasonably fast PC workstation (400 MHz Pentium II, 128 MB RAM) should serve several concurrent users without problems.

Back when software was actually efficient... and of course when WAP meant something entirely different!

reply
srmarm
2 hours ago
[-]
I know the article sort of touches on it but I only recall WAP as being a sort of mark up language akin to a mobile HTML rather than a network layer protocol. My old site (probably late 90s) had a wap.mysite.com subdomain which I hosted them on and which seemed to work well on my limited testing - I don't recall setting anything special up with the hosting - just the same hosting as the regular site. It worked very well on the contemporary mobiles but did I miss something back then?
reply
lmz
1 hour ago
[-]
Isn't that what the middlebox (e.g. Kannel) was for? To transcode text to binary xml?
reply
lxgr
2 hours ago
[-]
Even though it never really took off (at least in Europe), I find SMS as a bearer medium for the WAP 1.0 stack fascinating.

One of my first PDAs could do something similar for sharing files as a series of concatenated binary SMS over an Infrared connection via a mobile phone.

The only problem was that SMS was paid per message in my country (double-digit cents each). Fortunately the preview dialog showed the estimated number of messages before sending – and it was something like 1000 for a small JPEG…

reply
argulane
5 hours ago
[-]
It's cool to see that they are still going. To any one looking to using this for SMPP connections should skip the releases and build it straight from SVN trunk to get the latest bugfixes.
reply
ForHackernews
3 hours ago
[-]
Wow, this is a blast from the past.

Many years ago, before most phones had mobile internet, I was running a web-to-WAP reverse proxy using https://web.archive.org/web/20080209153558/www.hottproxy.org... to get mobile web access on my LG VX 5400 flip phone.

You could go into the secret admin menu, reconfigure the WAP gateway away from the carrier's captive portal to your own proxy and voila! Unlimited free access to the real web! (at 3G speeds)

reply
2-3-7-43-1807
4 hours ago
[-]
this should have a (2018) in the title.

anyway - is wap still an interesting or relevant technology? "relevant" from the perspective of someone with a hacker mindset. from a modern perspective it is probably just useless.

reply
Kwpolska
3 hours ago
[-]
It is not interesting or relevant in any way, I doubt any mobile network still supports WAP.
reply
lxgr
2 hours ago
[-]
Given that this is a WAP gateway, you don't need your mobile network to support WAP; a TCP connection to the gateway should be enough (either via IP, or via dialup, if you can still find a network that supports circuit-switched data and a low-jitter VoIP or circuit-switched landline that can terminate a data call).

> It is not interesting or relevant in any way

In a technological-historical way it definitely is. I find it pretty interesting to see how things used to be done, and try to see which design decisions were just following the hype, and which actually were ingenious solutions to real constraints of the time.

reply
EVa5I7bHFq9mnYK
5 hours ago
[-]
This is an SMS spamming tool, right?
reply
argulane
5 hours ago
[-]
We use it to send OTP messages through few telco providers who don't have HTTP API.
reply
adriaanmol
1 hour ago
[-]
reply