Dune HD STB (all models starting with Dune HD TV-101) have an optional
support for STB management and monitoring according to TR-069

To enable such a support, a TR-069 service plugin (which includes TR-069
client software) should be installed on the STB (typically integrated into
a custom firmare version).

To use TR-069 functionality, a TR-069 server should be installed and
properly configured first, and TR-069 client in the STB should be properly
configured to work with this TR-069 server. Installing and configuring a
TR-069 server is not a trivial task; typically a commercial TR-069 server is
licensed and the vendor of the TR-069 server helps with its installation
and configuration.

Without TR-069 server, it is impossible to use TR-069 functionality.

Recommended TR-069 servers

TR-069 client used by Dune HD STB is based on the software licensed from
AVSystem, "a market leader in advanced device management solutions for

This TR-069 client conforms to the industry specifications and can
potentially work with TR-069 servers from any vendors.

In particular, this TR-069 client was tested with and is known to be
interoperable with TR-069 servers from the following vendors:
   - AVSystem
      - http://www.avsystem.com/products/unified-device-management-platform/
   - Friendly Technologies
      - http://www.friendly-tech.com/products/tr69-device-home-management.aspx

If there are no other preferences, TR-069 server from AVSystem is
recommended, since the TR-069 client in Dune HD STB is based on the
software from AVSystem and combining the client and the server from the
same vendor should lead to the best possible interoperability.


The following terms are used:
   - TR-069: core specification in the family of TR-069 specifications.
   - TR-111: defines how firewall traversal works with TR-069.
   - TR-181: defines Root Data Model used with TR-069.
   - TR-135: defines STB Data Model used with TR-069.
   - TR-069 server: runs on the operator's server.
   - TR-069 client: runs in the STB.
   - CWMP: "CPE WAN Management Protocol", network protocol for
     communication between TR-069 client and TR-069 server.
   - ACS: "Auto Configuration Server" = TR-069 server.
   - CPE: "Customer-premises equipment" = STB.

Links to additional information



Plugin overview

TR-069 service plugin provides TR-069 functionality for Dune HD STB.

The plugin includes the CWMP daemon (a background process which implements
TR-069 client and runs CWMP protocol) and a set of integration scripts
which integrate CWMP daemon into STB firmware.

The plugin can be downloaded here:

Commercial use

Please contact your Dune HD contacts to get a permission to use the plugin
not just for testing, but for production use. Depending on a particular
project, this requires business approval and/or a commercial agreement.

Provided functionality

The default build configuration of CWMP daemon and the default integration
scripts provide only basic TR-069 functionality, such as:
   - Full implementation of TR-069 specification.
   - Full implementation of TR-111 and STUN specifications.
   - Implementation of the modern "TR-181 Issue 2" Device Data Model.
   - Support for basic use cases such as:
      - Registration of the STB in ACS.
      - Ability to see basic information about STBs in ACS, such as:
         - STB model.
         - STB hardware version.
         - STB firmware version.
         - STB serial number.
         - STB registration date/time.
         - STB last connection date/time.
         - STB system log.
         - STB network interface information (MAC address, IP address,
         - STB network interface statistics (bytes/packets sent/received,
           discarded packets, errors, etc).
      - Ability to perform basic requests to STBs from ACS, such as:
         - Request STB to reboot.
         - Request STB to perform ping test.
         - Request STB to perform traceroute test.
      - Ability to control various STB settings from ACS, including:
         - Getting the current values of STB settings.
         - Modifying STB settings (STB reboot is performed on each change
           of STB settings).

Other STB management and monitoring functionality is not available by
default, but can be potentially enabled.

Enabling other or additional custom STB management or monitoring
functionality is performed via custom integration process, which typically
requires to adjust the build configuration of CWMPD daemon, the integration
scripts, and the implementation of the middleware client according to the
requirements of a particular project (and taking into account a particular
middleware client integration approach).


If the STB uses a middleware client implemented using HTML, the middleware
client can use some JS API operations for implementing some TR-069 based

   - "TR-069" section in JS API documentation in JS STB SDK.
   - "tr069.html" example HTML application in JS STB SDK.

Installing the plugin

Final custom STB firmware build for field deployment typically includes the
plugin directly into the firmware (so there is no need to install the
plugin separately).

For testing/development needs, it is more convenient to install the plugin
manually (this makes it more convenient to update the plugin to newer
versions and allows direct editing of plugin configuration file and other
plugin files in telnet session).

Plugin can be installed in the usual way: e.g. store the ZIP file with the
plugin on a USB flash drive, attach the USB flash drive to STB, choose the
ZIP file in the file browser of the STB native menu, press "ENTER" RC

After the plugin is installed (and on each STB boot after that), CWMP
daemon is automatically started and runs in the background.

This plugin version requires firmware version 150116_r10+. Earlier firmware
versions may also be used, but some recent plugin features may not be
available (e.g. automatic CWMPD daemon startup on STB boot, STB settings
modification, STB API for TR-069).

Configuration file

CWMP daemon configuration file is available here:

In plugin ZIP file:

If plugin is installed manually (rather than built-in into the firmware),
the configuration file is also available here (and can be edited in telnet

After changing the configuration file in telnet session, perform the
following commands to ensure the changes are applied:
   /flashdata/plugins/tr069_service/bin/cwmpd-ctl reset
   /flashdata/plugins/tr069_service/bin/cwmpd-ctl restart

Configuring the plugin for a particular ACS

In order to configure the TR-069 plugin to communicate with a particular
ACS, the following parameters in the plugin configuration file should be
properly specified.

Minimally required:


      Initial value of the following TR-069 parameters (from TR-181


May be required depending on ACS configuration:


      Initial value of the following TR-069 parameters (from TR-181



      Initial value of the following TR-069 parameters (from TR-181


The default values of the following parameters typically need to be revised
depending on ACS configuration and overall project requirements:


      Initial value of the following TR-069 parameters (from TR-181


Controlling CWMP daemon in telnet session

The following program can be used to control CWMP daemon in telnet session:


   cwmpd-ctl start|stop|restart
      Start/stop/restart CWMP daemon in background

   cwmpd-ctl status
      Show current running status of CWMP daemon

   cwmpd-ctl debug
      Run CWMP daemon in foreground with log on stdout

   cwmpd-ctl reset
      Clear the database of CWMP daemon

Log files

CWMP daemon log is available here (can be viewed in telnet session):

Data files

CWMPD daemon data files are stored here:

The "cwmp_client.ddb" file stores the internal state/date of CWMP daemon.

The "cwmp_database.db" file is SQLite database file which represents the
database of persistently stored TR-069 parameters maintained by CWMP
daemon. When this file does not exist (e.g. on first startup of CWMP
daemon), it is automatically initialized based on the configuration file.
When the configuration file changes, it is recommended to drop this file
(e.g. by "cwmpd-ctl reset" command) in order to ensure that the changes in
the configuration file are applied.