I am starting the TR-069 ACS project, at last.
We were somewhat thwarted by the fact we could not get the damn router to even try and connect. Turns out it won't follow a CNAME in the URL you give it - expects an A record. I have yet to see if an AAAA works. This is the main thing that led to us finally changing the domains around yesterday. I suspect we still have some mopping up on that this morning.
However, I have got as far as seeing that it is posting a SOAP encapsulated chunk of XML which looks very much like the specification says it should. I can also "poke" it using a specified port to convince it to do a "call back" to the ACS.
So, the plan at present is a single C code tool that runs as index.cgi under apache. I may add a server mode later that does listen and HTTP header stuff, but no need for now. Seems it will be fine under apache.
I will use (and hence publish) my XML library (a simple wrapper to parse, process and generate XML, using expat) and my SQL library (a simple wrapper around mysql, or in theory other SQL back ends). I use these in most of my tools.
My main aim is to handle the Technicolor routers and probably SNOM phones too. We may make FireBrick's work as TR-069 clients too. There are loads of other things you can do with TR-069 it seems, but I suspect most people do not need more than the basic fire transfer stuff.
Seems the first step is managing the parameters sent from the device. These will go in a database. Then I move on to sending and receiving files, such as config and code updates.
The plan is that the tool will have options allowing you queue a file transfer, which will be stored in the database as a request, and do the necessary poke to the device so the transfer then happens. I'll decide more when I start coding this.
So far zero lines of code, but watch this space.