Skip to content
Perl ACS server implementing CWMP protocol to manage CPE clients
Perl Shell
Latest commit 12e9f1b Oct 10, 2014 @dpavlin Merge pull request #7 from delian/master
Please accept those modifications
Failed to load latest commit information.
bin two additional dependencies on clean installation Dec 10, 2012
lib Now we have the ability to execute small external code when we receiv… Sep 29, 2014
protocol Add some files that was referring to, and patch so it… May 13, 2011
scripts configure ACS server to ZTE CPE Mar 8, 2010
t use xmllint to validate responses against schema Dec 11, 2012
Makefile.PL move header generation back to CWMP::Server Mar 12, 2010
README Dump response headers May 13, 2011
vendor.yaml increase PeriodicInformInterval to 60s Dec 6, 2012


perl-cwmp - Perl ACS server implementing CWMP protocol to manage CPE clients

Idea here is to implement simpliest possible TR-069 server which can talk to vendor's
CPE and support various quirks (mostly protocol violations) found in implementations.

This implementation follows specification:

CPE WAN Management Protocol v1.1 
TR-069 Issue 1 Amendment 2

Currently implemented:

+ 3.4.1 Encoding SOAP over HTTP
+ 3.4.2 Transaction Sessions
- 3.4.3 File Transfers
- 3.4.4 Authentication
- 3.4.5 Digest Authentication
+ 3.4.6 Additional HTTP Requirements


Idea is to be as lightweight as possible, but some perl modules might be installed
directly from CPAN

  $ git clone git://
  $ cd perl-cwmp

  $ sudo bin/

  $ perl Makefile.PL
  $ make

will check for dependencies and install them if necesarry


  $ ./bin/ --debug

This will start server with debug output. You may repeat --debug to increase debug level.

Sever will listen on *:3333, so now you can configure your CPE to connect to it.

When CPE first connects, ACS server will issue GetParameterNames untill it discovers
whole hierarchy and which parameters are writable.

After that, it will issue GetparameterValues requests, 16 in one batch to preserve
resources on CPE, until it reads all values present on CPE.

This will create file yaml/CPE_ID.yml with all parameters information from given CPE.

Something went wrong with that request. Please try again.