How can I increase the WiFi client limit on a Huawei B153?

Update

Basically @NoUsername's contribution solved my issue. But I found it a bit tricky to actually "override" the JavaScript, the key problem is that the configuration page reloads quite frequently. So I'll leave just a few notes how I achieved this on Chrome:

  1. on the wlan configuration page I opened Chrome developer console.
  2. There I was able to open frame "wlan_config.asp" (or similar name) - this contains just the configuration window without any navigation (this page would not reload automatically)
  3. after making the settings in the configuration frame, instead of clicking ok - call apply_submit(); in the JavaScript console. This will submit all settings without checking them! (so be careful!)

I set up my home network all through this 3G wifi router. Problem is it only allows 5 devices to connect. That's not much especially if a wifi printer and gaming consoles keep hogging these slots. On the other hand I don't see the point on blocking these devices. They are (should) not doing anything online just intern in my network.

The documentation I can find is surprisingly unhelpful and focuses how to plug the device in a power socket.

So what would be my options.

Notes: I have already been able to get a shell on the device using ssh. It's running some Busybox. But I fail to find the how and where this limit is enforced/created.

Notes 2: Specifically my device is a 3WebCube - unfortunately not specifically marked with the Huawei Model number.

Successes so far

After enabling ssh in the options I can login:

ssh -T [email protected]

[email protected]'s password: 
-------------------------------
-----Welcome to ATP Cli------
-------------------------------

unfortunately because of this -T - the tab key does not work for autocomplete and all inputted commands will be echoed. Also no history with arrow keys.

ATP interface

this custom interface is not very useful:

ATP>help

help
Welcome to ATP command line tool.
If any question, please input "?" at the end of command.

Shell

BUT undocumented - I somehow found on a auto translated chinese website - all you need to do is input sh

ATP>sh
sh


BusyBox vv1.9.1 (2011-03-27 11:59:11 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# 

using tftp after installing tftp on my desktop I was able to send files with

tftp -s -l curcfg.xml  192.168.1.103

and to download onto the huawei with

tftp -g -r curcfg.xml  192.168.1.103

I think I'll need that - because I don't see any editor installed.

readout stuff

(still playing around where I would get interesting info)

For confirmation of hardware:

# cat /var/log/modem_hardware_name
^HWVER:"WL1B153M001"# 

# cat /var/log/modem_software_name
1096.11.03.02.107 
# cat /var/log/product_name
B153

An interesting observation I recently made. Using a range extender WN3000RP I was able to connect some additional devices when they were "denied" at the router. Correction This only worked for a short time - now I see that ALL devices - also connected to extender count as one.


Solution 1:

I know this question is quite old and probably of no more interest to the author, but maybe somebody else may stumble over this via a web search just like i did, so i wanted to share my findings.

I actually have 2 of these WebCubes, one which is newer, does not have this 5 device limit, the older one did. I was able to change this configuration and it also persisted restarts.

The way i did it was completely different, i only used the web administration interface. My version displays a field there which says something like "maximum number of devices" (not literally), this can be found somewhere in the wifi settings. When i entered something bigger than 5, i think it was immediately reset by some javascript, as far as i remember, or at least it was reset when you submitted these changes. So i dug in the JavaScript code of the site (with Chromes dev utils, which you get when pressing F12), and found that the submit method of the HTML form had this code somewhere which changes the value back to max. 5. I tried to change that and it sort-of-worked, the problem is that there is also some kind of ajax thing going on which constantly does some reloading and somehow messes with these manual edits, but after some trial and error, i was able to time it or stop it somehow, that it worked and it really submitted the other value (i think i set it to 10). After that it showed 10 when i visited that page (have not dared to touch it since).

I guess this could also be done via curl or some similar utility, but because of the javascript stuff that happens when submitting the page and cookies etc., i thought it would be easier this way.

Sorry that i can't give any more detailed info, but it's really some time since i did that and i currently don't have access to this device to look for any specifics.

As said before, this worked on the older version of my 3WebCube, since the newer one came with a 10 device limit by default, i haven't tried it there.

Solution 2:

It seems like the file defaultcfg.xml that you have posted is very promising indeed. It looks like some sort of an XML configuration file.

You could play with it, but assure first that you have the means to reinitialize the router back to its initial state. If it cannot boot then it is just a nice brick.

I would put my money on the XML tag starting with <WLANConfigurationInstance InstanceID="1". While there are four such with increasing InstanceID numbers, the first is the only one of the four that has Enable="1". I notice also that one of the parameters is X_AssociateDeviceNum="5". Now I wonder what would happen if you carefully increased this to X_AssociateDeviceNum="6" (don't jump the gun with too-large changes and save a local and remote backup copy of the file).

As regarding finding an integrated text editor, you could try for the old and true ed or for sed.

One should also hope that this file is not generated from other files during the boot. If the above change doesn't solve anything and the file reverts after a reboot, and if find and/or grep are installed, you could recursively search the entire file-system for files named "WLANConfig*" (case insensitive) or grep for WLANConfig.