A simple ACS/tr069 server to configure femto cells.
Go to file
Neels Hofmeyr b2dc8a68ed report faults 2023-04-22 18:35:24 +02:00
cache initial 2021-10-12 17:34:40 +02:00
config initial 2021-10-12 17:34:40 +02:00
data initial 2021-10-12 17:34:40 +02:00
example_xml initial 2021-10-12 17:34:40 +02:00
templates initial 2021-10-12 17:34:40 +02:00
.gitignore initial 2021-10-12 17:34:40 +02:00
Pipfile initial 2021-10-12 17:34:40 +02:00
Pipfile.lock initial 2021-10-12 17:34:40 +02:00
README.md initial 2021-10-12 17:34:40 +02:00
app.py report faults 2023-04-22 18:35:24 +02:00
xmlutils.py report faults 2023-04-22 18:35:24 +02:00


femto-acs for femtocells

This is a hack to get ip.access nano3g femtocells configured without using a huge tr069/ACS server like (geniacs, ...). This simplified version only reacts on Inform and tries to set values from the configuration file without checking the state of the femto cell. It further does not create or delete objects if they don't exist. Neither does it check if the values in the ini file are valid. E.g. by getting both values and type from the device itself.



Ensure python3 with pipenv is installed

apt-get install python3 pipenv

pipenv install



Please change the SECRET_KEY by generating your own. The SECRET_KEY is used to sign cookies.


The main configuration file for the femtocells. The Common section is used as default values which can be overriden by a specific femtocell configuration. To override values for a specific femtocell create a section with the serialnumber including leading zeros as shown for femtocell 0000123456.

IMPORTANT ensure the Device.ManagementServer.URL=|xsd:string matches this server including the /acs.

After changing values in the femtocells.ini the femto cell can be either rebooted or wait until the femto cell is informing us again (see periodic inform / tr069).


From within the repository call:

pipenv install
pipenv shell
gunicorn -k eventlet --keep-alive 600 --bind app:app

gunicorn is used to allow keep-alive connections.


femto cell stops reacting on ACS data

Ensure the xml files contain an extra newline (ascii 0xa) on the end of the request.

Bugs / Limitations

  • It doesn't use any external database (mysql) or cache system (redis) to reduce the amount of external dependencies and simplify the setup.


Thanks to: