Accept GenieACS over any router changes

Is there a way to have the genieacs be the master of all settings and have it push only its settings and not worry about what the router does?

I would like a way for the router to create the database with its settings then be readonly at that point to prevent users from making changes on the router side and that that informed back into the genieACS.

What would be the best course of action?
1/ Have everything write to one config file then map it to each config?
2/ some setting I’m missing
3/ ??

Please anyone?

This is entirely doable… But the amount of effort probably isn’t worth it. Much easier would be to lock down the device to prevent users from making changes.

We do not allow access to our CPEs by anyone outside of a select few employees. All changes have to be done through our subscriber management system. This allows me to track the desired state of the CPE for the given user. And when the user factory defaults the CPE, or the CPE is swapped out I can restore everything (wifi, lan, static reservations, port forwards).


I would like to hear your thoughts on how you would do it?. You see we have installers/dealers we create an ACS for each of them to manage their own set of purchased routers. But the customer also has access to this router. I’m afraid that the installer sets say bandwidth limits but the advanced customer would go into the router’s webpage and disable it say.

Not that the user should know the installer password at that point. but who knows.

Thank you for the reply

Ahh, okay. Your requirements are a bit more complicated than mine. How many parameters are we talking about? If its just a few, you can tell the device to send a 4 VALUE CHANGE event when they change. If you are talking about a bunch of params, then it could be easier to just force the device into a known state on every inform.

Why are you doing the bandwidth enforcement on the customer equipment? We do bandwidth enforcement and bit counting in our PPP concentrator.

So in our case the installer owns the customers plans we are just a manufacturer of the router itself. SO they have asked if we can give them complete control over the router and if the user does find the password or knows it then even if they change a setting it would revert back.

So these installer plans they are sometimes set to only 10GB, etc and this is a cellular router.
So I like the idea to force router state on each inform if we can do that. I think that would solve our current issue. or is the send 4 change value a simple call

The other way I was thinking is a bit more involved is to change the ACS to write to one config. The if a user does change a param in the gui for example. we can have it read that config and revert settings that way.

Thank you so much for your help Dan

Use a preset to kick off a provision script. In the provision script do this:

const now =;

declare('Parameter.One.Username', {value: now}, {value: 'desiredValue'};

The first {value: now} is the min age of the parameter. For example, if there are parameters you only want to set once, you would use {value: 1}. {value: xxx} is also used in a read scenario when you want to tell GenieACS how old a parameter can be (before going to the CPE and refreshing the value).

Example, the serial, product class, mac, oui, etc should never change on a device. So its save to use something like this:

let serialNumber = declare('DeviceID.SerialNumber', {value: 1}).value[0];
let productClass = declare('DeviceID.ProductClass', {value: 1}).value[0];
let model = declare('VirtualParameters.Model', {value: 1}).value[0];

let oui = declare('DeviceID.OUI', {value: 1}).value[0];

Ok Thanks let me try something because that would be lots of settings the user can change.