A guide on how to fix the Speedport W 723V "web 'n' walk" configuration error that occurs when trying to run the setup.

Recently the W 723V Speedport router that I rent from Deutsche Telekom automatically pulled an update for new software. This update put my router into an unresponsive mode, meaning I had to reset the device and re-enter my login / configuration data through the internal configuration utility (A.K.A https://speedport.ip/).

The Speedport provides a configuration page where I would normally enter my Deutsche Telekom details and the setup would run. After this update however, the setup tells me that my "Web 'n' Walk Stick" has not been properly configured.

I do not own a Web 'n' Walk stick, so I saw this as an obvious bug in the configuration web page. The page was submitting the wrong configuration form details, as both forms are in the same page, just shown/hidden via JavaScript.

After calling Deutsche Telekom, they were clueless, had no help to give and promised to call back when an engineer was available. This is where I took the task upon myself to inspect the router software and see if I could fix this problem myself. The game was afoot, a programming challenge lay ahead. After around an hour absorbed in convoluted code, ignoring the temptation to let the Deutsche Telekom get away with this, I focused in on the problem, the following is the description of the solution.

The Solution

First I navigate to the "Schritt für Schritt" wizard and see the form for entering my login details. Notice the second radio button for "DSL-Verbindung" (DSL Connection) is selected, while Web 'n' Walk is deselected.

After entering all of my details, I open the Google Chrome developer tools and use the "Sources" tab to find the JavaScript source code. Under sources panel, use the arrow symbol in the top left to view available files, expand "speedport.ip" and choose the file "htciassistent3.stm".

Speedport Step 1

The source code for this file looks machine generated and is hard to read, so hit the highlighted "expand source" button above the console, it contains the following symbol: {}.

Now that the source code is easier to read, search in the source (Cmd/Ctrl + F) for the method name stSave().

In my setup, this is line 1006. Set a breakpoint here by clicking on the line number.

Next, click "OK & Weiter" to submit the form. The page will pause when it gets to this point in the script, as can be seen in the screenshot below. Notice how the radio button has moved from the desired "DSL Verbindung" to "Web 'n' Walk Stick". This is the issue that Deutsche Telekom must fix.

Speedport Step 2

Now to fix the issue manually, run the following 2 commands in the Console, this will move the radio box selection back to the desired "DSL Verbindung".

First run:

document.tF0.UMTS_DSL[0].checked = false;

and then:

document.tF0.UMTS_DSL[1].checked = true;

Speedport Step 3

Next click the blue "Play" icon to unpause the script and allow the router to continue its configuration. Now, instead of seeing the error dialog the configuration will run as expected and display a loading bar.

Speedport Step 4

Finally, if all has gone to plan, a success dialog will be presented.

Speedport Step 5

In conclusion, although it is always fun to have a new programming challenge and I feel great for conquering it, this issue should never have been present in the first place, especially to the customers who pay a lot of monthly money for these services.

It took Deutsche Telekom over 3 days to get back in touch with support from a technician, who was not able to diagnose the issue and has simply sent a new router to my home, which I presume will have the same software, hence the same error.

In these 3 days, if I wasn't able to fix this problem myself I could have been stuck without an internet connection. As someone who works from home, this would have been very serious.

As a final note, I want to say that looking over the quality of the code shipped in the router, I have serious doubts about the competency of the web engineers and the general processes at Deutsche Telekom. Granted, the code looks at least semi machine generated, explaining the messy format/method names. However, the code was inconsistent, broke many best practices concerning, leaky globals, naming conventions and even does crazy things like storing information statically on an Array, rather than as an array item.

var x = [1,2,3];
x.foo = 4; // WTF?

Beyond the state of the code, which is arguably not the main issue, how did an error that renders the router device useless get through quality assurance and out into the wild? For this, I am still awaiting an answer.

I would recommend staying away from the overpriced Speedport router, the monthly rental costs of this device are not being used to write efficient software that will serve you, the customer. It feels like it goes straight to Deutsche Telekom's bottom line.

Update: The new router that was sent to me did in fact have the same bug in the software when I ran the setup, proving the issue was not affecting only my device but the entire product line.