CWMP client library for all types of devices

LibCWMP is a client library which implements the industry standard remote management protocol - CWMP (also called TR-069). CWMP is widely adopted and required by all major telco operators all around the world. Our LibCWMP helps firmware vendors add support for TR-069 quickly and reliably. One of its greatest features is that it works on any type of device: home gateways, routers, VoIP phones, set-top-boxes and femto access points.

How does it work?

  • Integrate LibCWMP library with your TR-069 client code.

    Integrate LibCWMP with your client code

    Implement only the business functionalities specific to your device and leave handling the protocol peculiarities to LibCWMP.

  • A lot of ready-to-use modules of TR-069 client library

    Enable ready-to-use modules

    Use pre-implemented features of remote diagnostics, multiple file transfer protocols and active notifications making your devices stand out on the market.

  • Full security, updates and support guaranteed with LibCWMP – a TR-069 Client.

    Always be safe and up-to-date

    With our commercial license you get access to our testing ACS and support portal. You will get all new versions and bug-fixes of LibCWMP free of charge.


Support for all versions of CWMP

Full support for all non-deprecated features described in TR-069 Amendment 5 specification, with seamless backwards compatibility with earlier versions.

Support for any data model

The library is data model agnostic and can be used with any standard or custom parameter tree, including all profiles published by the Broadband Forum.

Minimal dependencies on external software

Very little external dependencies, and can be configured to use nothing more than standard C library ‒ which means it can be used even on “bare metal”. See →Technical specification for details.

Runs on any platform

LibCWMP can be compiled for any platform with a standard ISO C compiler. Operating system abstraction layer allows to easily port it, while it works on POSIX-compliant systems out of the box.

Flexible, modular design

It is possible to create a custom build of the library, with selectively chosen modules, to balance feature set and resource usage appropriately for your hardware.

Integrated XMPP support

Internal implementation of XMPP client, as necessary for the XMPP Connection Request mechanism, as specified in TR-069 Annex K. UDP Connection Request over STUN (TR-069 Annex G) is also available.

Pre-implemented diagnostics profiles

This makes possible to not only manage your device, but also monitor it. Various standard diagnostic data model profiles, often requested by service providers, are available and ready to use with minimal effort.

Automatic handling of notifications

A unique caching module can be enabled in libCWMP, which automatically queries parameters in your data model for changes, to inform the ACS whenever there is a need to send notifications.


Fulfill requirements of service providers

Make your products more attractive for service providers. Implement support for CWMP (TR-069), an industry standard remote management and monitoring protocol, which is increasingly required by service providers worldwide.

Focus on the essentials

Don't waste your time and effort on implementing complicated internal logic of the management protocol and let libCWMP do the job. Concentrate only on features specific to your product.

Avoid incompatibility

Don't worry about compatibility. Your product will work with any service provider network, regardless of the management platform they are using. Our library guarantees interoperability with any standard-compliant ACS on the market, as proven by multiple deployments over the years.

Simplify testing and support

Access a dedicated installation of our ACS server (→UMP) to test your management interface in the same way that your customers will. And should you encounter any problems during integration - take advantage of active support available from our skilled and experienced engineers.


Uncompressed binary size of full-featured library~500 KiB
Runtime memory usage~80 KiB
Language standardC89 (recommended: C99 or GNU)
TLS libraries supportedOpenSSL, uSSL, PolarSSL / mbed TLS, wolfSSL
Support for HTTP content compressionvia zlib
CWMP versions supported1.0 through 1.4
Connection request mechanisms implementedHTTP, UDP/STUN, XMPP
Supported data modelsAny, including: 1.x (TR-181), Device:2.x (TR-181 Issue2), InternetGatewayDevice (TR-098), all standard Service data models (FAPService, StorageService, STBService, VoiceService), as well as any custom data model tree.
Pre-implemented diagnostic profilesDownload:1, DownloadTCP:1, IPPing:1, NSLookupDiag:1, PeriodicStatsBase:1, PeriodicStatsAdv:1, TraceRoute:1, UDPEcho:1, UDPEchoPlus:1, Upload:1, UploadTCP:1
Supported file transfer protocolsHTTP(S), FTP, support for pluggable custom protocols
User guideSphinx, full API documentation (Doxygen), code samples
  • We've selected AVSystem LibCWMP because its ultimate small flash & RAM memory footprint. Well done!

    Timothy Cardoza

    AAstra Corporation, USA

  • AVSystem LibCWMP was successfully integrated into our SIP Gateways, as it turned out to be the best TR-069 library on the market. AVSystem has provided us with a great support and the integration process went quick and smooth. We are looking forward to our future collaboration!

    Brice Schaffner

    R&D engineer, Patton Electronics Co.

  • The technical support from AVSystem is impressive. With AVSystem’s strong expertise in the area of TR-069, the DNI team could satisfy the customer’s requirements and expectations. It’s been a really phenomenal collaboration.

    Alvin Lin 林俊良, Team Manager

    Delta Networks, Inc.

back icon

This website is using cookies

We use cookies for statistical and marketing purposes and to improve the quality of our services. The information stored in cookies usually allow the identification of a specific device or user’s browser, so they may contain personal data. By continuing to use this website with setting the web browser in a way which alows the use of cookies by the website means your’s consent to the use of cookies. You can change your web browser settings at any time.
More information on the processing of personal data and cookies you can find in our Privacy and cookies policy.