The first article posted here will have a look at the various open source TR-069 projects out there. Not relevant to the industry? Do not be so sure…
If you have been keeping your eyes peeled, you have certainly noticed the growing number of players in the TR-069 field. TR-069 provides healthy breeding grounds for new companies and products, but also for a different type of effort leading to clients and servers being available, for all to use, under the open source model.
Such projects are usually kept alive on well-known public web services such as Source Forge, Github, or Google Code. Overall, most of the projects seem to be one-offs where an interested engineer prepares some code to evaluate a product, CPE or ACS, but has to abandon maintaining the open source project fairly rapidly. Some of the tools might actually be surviving as less open, internal projects. It is interesting nonetheless to see the wide variety of languages and frameworks used in these projects, letting me think that some of the projects were started with a curious, student-like mindset. In any case, once in a while you will find some efforts by major players and operators, shedding some new light on the interest for TR-069 in the industry.
Let us also hope that this large amount of code available out there will help vendors get their own TR-069 efforts started, or give them an easy access to a wide variety of TR-069 implementations against which to test their own. After all, following the same standard is only half the way to interoperability.
The below projects are not listed in any particular order.
Last updated in 2011, Modus was an internal effort by France Telecom to develop a generic client for TR-069 designed in Java designed with OSGi in mind. It is available under the Apache License V2.0.
Available at: http://sourceforge.net/projects/modus-tr-069/
An effort started back in 2008 but still garnering some interest, this is probably one of the most extensive open source (GPL v2) ACS available. [UPDATE #4 see also below] Discontinued as of February 2014.
Available at: http://sourceforge.net/projects/openacs/
First appeared in July 2012, this implementation of a TR-069 stack using the Clojure programming language is available under the Eclipse Public License. It offers an interesting domain-specific language (DSL) to describe the TR-069 types and generate converting code automatically.
Available at: https://github.com/moonranger/clj.tr069
- Perl CWMP
You can read more about it on the blog of its creator but it is basically a command-line ACS written in Perl.
Available at: https://github.com/dpavlin/perl-cwmp
- Grail ACS
Developed in Groovy two years ago by an employee of Telenor in Denmark and visibly left untouched since then, this simple ACS implementation also has a companion TR-069 client emulator.
Available at: https://github.com/andersnorgaard/grailsacs
- Open TR069
Sponsored by networking solutions company Aximcom, this client TR-069 stack is coded in C and is licensed under GNU Lesser GPL version 2. No activity has been seen in the project since early 2011.
Available at: http://code.google.com/p/open-tr069/
Abandoned in 2009, JCPE is an open source TR-069 (amendment 1) client.
Available at: http://code.google.com/p/jcpe/
- jCWMP server
Last updated in 2010, jCWMP is a TR-069 ACS implementation in a mix of Java and PHP.
Available at: http://sourceforge.net/projects/jcwmpserver/
- CWMP client
A CWMP client written in C last updated in 2011 apparently part of a graduate project done at the National Technical University of Athens belonging to the larger European project MUSE.
Available at: https://bitbucket.org/spapas/cwmpclient
Last updated before the summer of 2012 and available under the Apache 2.0 License, Catawampus aims to be a CPE client stack for TR-069. On the admission of the authors, it is “at present not sufficiently complete to use as a tr-69 CPE agent. Work is ongoing.” Both contributors appear to be presently employed by Google. Could this relate in some way to Google’s own efforts to be an ISP?
Available at: http://code.google.com/p/catawampus/
- Mini CWMP
Mini CWMP is a TR-069 client for embedded Linux implemented using C and the gSoap library. Started in May 2011, the project has seen its latest contribution in May 2012 as of the time of the writing of this article.
Available at: http://sourceforge.net/projects/mini-cwmp/
- TR-069 D-Link
TR-069 D-Link is an open source ACS developed by D-Link, last updated in the beginning of 2012. It has a GUI if you are into that sort of thing. It is rather interesting to see a branded, open source effort in TR-069. Speaking of which, see the next entry.
Available at: http://sourceforge.net/projects/tr069dlink/
IOTPortal is an open source effort aimed at helping run interoperability projects against TR069 and it sports the Motorola logo as its icon. The project is indeed listed on Motorola’s Source Forge page. Sadly, at this point, only a library to handle Excel files is available (or is it all that remain).
Available at: http://sourceforge.net/projects/iotportal.motorola/
There are probably some more projects out there. If yours is missing, do not hesitate to notify me, via the comments section or by email to . If you wish to submit more information about your project, feel free to do so as well, using the same means.
Thank you Denton for suggesting this entry to the list. freecwmp is the only TR-069 client compatible with openWRT so far and also one of the rare clients to have been tested against commercial products: AlcaLu’s Motive and Motorola’s former Netopia BroadBand Server (NBBS – now part of Motorola EDGE).
Available at: http://freecwmp.org/
A suggestion from Zaid (who developed and is currently developing). A strong focus in GenieACS is the performance by means of concurrency and using modern technologies for an ACS (Node.js and MongoDB namely, although the latter is used for instance in Tilgin and AVSystem ACS). It also supports aliasing parameters which is very useful in deployments with more than one vendor (who often use TR-069 standard parameters slightly differently to achieve the same configuration).
Available at: http://genieacs.com/
A suggestion from Mohamed. EasyCwmp is a GPLv2 open-source client implementation of the TR069 CWMP Standard. Developed by PIVA Software, a company specialized in embedded software development. They have recently completed the development of their CWMP client and decided to make it open source. EasyCWMP was tested successfully with OpenWRT and with Ubuntu.
Available at: http://www.easycwmp.org
A fork of OpenACS which popped up in 2014 after the developer decided to remove all releases and source code from the project page.
Available at: http://sourceforge.net/projects/libreacs/