When abstraction goes wrong: ISP-hobbled firmware prevents using VoIP with a modem router
- Published
- Filed under
- Technology
- Reading time
- 5 min
Like many technologists, I’m the IT support person for my family - a role I’m very happy to play in return for baked goods, house maintenance and other in-kind exchanges. But I met my match with a modem I couldn’t flash.
The context
Recently, I encouraged a family member to switch ISP from Internode to Aussie Broadband. There were a couple of drivers for the change (hah! pun!); my family member’s primary email was with Internode, but they recently divested of this service and it would soon cost extra. We’d also had some poor experiences with Internode, including line dropouts - which I had to escalate to a Service Manager to resolve. We also had a lot of trouble understanding the accent of the people on the Internode Service Desk. Conversely, I’d had an excellent experience with Aussie, who helped me connect my NBN service when it finally became available in my area. I spoke with a person who was physically in Morwell, super helpful, and who made everything easy. So, my family member switched to Aussie at my beckoning.
The churn process went smoothly. I popped around to my family member’s house, and re-configured the Internode-supplied modem to point to the VDSL service from Aussie. We got line sync, and voila, internet and wireless were working.
The problem became apparent went I went to re-configure the VoIP settings. They simply weren’t on the modem’s administration interface - anywhere.
The confusion
I’m not bragging, but I’m pretty good with most technical things. I run Linux. By choice. I am comfortable running Docker. On the command line. I can make scarfs that sense light and twinkle if it’s too dark, using Arduino. I run PiHole on my home network. I figured out dask. I thought this would just be a case of finding the right settings on the modem’s administrative interface.
I was, sadly, wrong.
Can I find a vanilla firmware?
But I could not find the Telephony / VoIP settings on the router - a TP-LINK Archver VR1600v. The modem had previously been supplied by Internode, and had some settings, like VoIP, pre-configured.
The first thing I tried was to go to the product’s home page on the TP-LINK website, to see if there was a generic firmware available to download. There wasn’t.
I considered trying to ssh into the modem and see if I could wget the relevant pages - but figured that was too much hassle.
The more I dug, the more I realised that the firmware had been deliberately hobbled by Internode - and that finding an alternative firmware was going to be an exercise in futility. There appeared to be several complaints about this issue on the Internode forums (who were bought out by TPG) (second forums link).
Can the manufacturer give me vanilla firmware?
I even lodged a support case with TP-LINK, on the off chance they could send me a generic firmware. “I can compile it from source, I’m technical!”, I pleaded. My attempt at shibboleet met with resounding defeat.
As you know, the model Archer VR1600v is a customized one for service providers. For such customized models, the firmware update is controlled by service providers and we do not have access to it. That’s why we are not able to find its firmware on our official website.
And we suggest to contact TPG and ask them to unbind/revert the firmware to the vanilla version.
Since your family member changed the ISP, we recommend you consider a common model instead. Below are our regular DSL modem routers, models with the lower case “v” indicates they support VoIP.
I mean, points for trying to upsell me a new modem, but really the manufacturer is pushing me back to the service provider - Internode / TPG - to provide the vanilla firmware - which they have absolutely no incentive to do, because my family member switched ISPs.
UPDATE: Subsequent to posting this, @troybie contacted me to let me know of an NZ-based firmware floating around on Whirlpool (thx, @troybie!). To be honest, I don’t trust random firmwares that much, so I’m a bit hesitant to give it a try …
Can I roll my own firmware?
At this point, if you’re a networking or Linux flavoured techie, you’re probably asking yourself “why didn’t she flash it with OpenWRT”? To which I would respond “good question, and yeah I thought of that already”. There’s no OpenWRT firmware for this model, sadly. And while it was an attractive option for about 5 minutes, firmware isn’t my wheelhouse, and I don’t have time to upskill in rage-based firmware creation 🤬
UPDATE: Subsequent to posting this, @voltagex has let me know that trying to compile from TP-LINK’s GPL sources is a bust too, because they don’t work. Sorry for the nerd snipe there!
I was defeated.
The consternation
The issue here isn’t that I wasn’t able to flash a consumer-grade router with new firmware, so my family member could use the VoIP service they’re paying for. It’s a microcosm of a much broader problem with the software, hardware and service assemblages that form our socio-technical systems: their complexity is being abstracted away from us in ways that remove our ability to shape, re-purpose, and re-use them.
If you’re a programmer, you might think about abstraction in terms of data abstractions, where variables are specified as typed; integer, character, Boolean, based on their characteristics1. If you are more philosophically inclined, you might think of abstraction as a process that identifies and generalises commonalities across concepts, or objects, or phenomena2. That is, abstraction helps us deal with complexity3.
Abstraction can be useful. Abstraction means that if you can drive one car, you have a reasonable chance of being able to drive many others - because the user interface is similar - it shares many characteristics. Abstraction means that if you read one Annual Report, you have a fair chance of understanding other Annual Reports. Abstraction is what allows us to compare apples and oranges, and know that they are both fruit.
We use abstraction a lot in technology. Operating systems are abstractions - most folks push icons around a screen on a graphical user interface to copy, paste or rename a file. That’s an abstraction of lower-level commands, which we can still do on the command line, if we roll that way (yes, some of us roll that way). User guides are often abstractions - helping to walk people through the complexity of an application.
An ISP flashing a modem router with customised firmware with VoIP telephony settings preset, and unable to be modified is an abstraction. And it has several benefits - it makes the modem easier for the consumer to connect to the ISP’s network, and it reduces the support load on the ISP because they don’t have to walk the consumer through how to configure the modem router.
But when we abstract something, we trade complexity and nuance and difficulty for ease of use, simplicity - and reduced functionality. The cp command in Linux - to copy a file - has 32 options it can take. When I use the graphical user interface in my operating system to copy a file, I right click and select “Copy”. Abstracting firmware and hobbling its functionality yields simplicity at the cost of reduced functionality - it means I can’t change the telephony settings and make my family member’s VoIP work on a different ISP. It removes the choices I have as a consumer of technology
The conclusion
Abstraction is useful. It makes our lives easier. Simpler.
But it also reduces nuances. Complexity. And capability.
Sometimes, we need ways to reduce abstraction again.
To re-wild that which we’ve simplified.
And give ourselves more control and choice over how we use our technology.
Artwork: Wes Dickinson “modem glow” via Flickr CC-BY-NC 2.0
-
Cardelli, L., & Wegner, P. (1985). On understanding types, data abstraction, and polymorphism. ACM Computing Surveys (CSUR), 17(4), 471-523. ↩︎
-
Yee, E. (2019). Abstraction and concepts: when, how, where, what and why?. Language, Cognition and Neuroscience, 34(10), 1257-1265. ↩︎
-
Floridi, L. (2016). The method of abstraction. In The Routledge Handbook of Philosophy of Information (pp. 50-56). Routledge. ↩︎
2 comments
Comments are closed. These were left on the original WordPress blog.
Adam ♿ ·
@KathyReid well, I can tell you no one’s tried to compile TP-Link’s GPL sources - they don’t work!Props to them for including pretty complete makefiles and instructions though.Do you know if it was a V2 or V1 revision modem?
Kathy Reid ·
@voltagex @KathyReid@blog.kathyreid.id.au it was definitely a V2 revision