During the pandemic, most of us were locked inside our homes but yet we were not only able to connect but also collaborate and complete our office work. How was it possible? The answer would be “I had a broadband connection at home”. Now comes the tricky part, whenever the internet stops working or the modem reboots automatically, what do you do? You call up the customer care agent and he/she remotely access your modem and the problem gets resolved automatically with no agent visit or no efforts from your side.
Have you ever thought about how these agents were able to access your modem? How was the communication happening? What other operations they can do with your modem? Well, most of the operators have a device management server known as Auto configuration Server (ACS) that can manage and provision any Customer premises equipment (CPE) ie modems, routers, gateways, as well as end-user devices which connect to the Internet, such as set-top boxes, and VoIP-phones. The client on the CPE and server communicate via a protocol called TR-069.

What is TR-069?
TR-069 (Technical Report 069) is a technical specification published by the Broadband Forum and entitled CPE WAN Management Protocol (CWMP). It defines an application layer protocol for remote management of end-user devices. As a bidirectional SOAP/HTTP-based protocol, it provides communication between CPE and ACS.
The CWMP is intended to support a variety of functionalities to manage a collection of CPE, including the following primary capabilities: –
- Auto-configuration and dynamic service provisioning
- Software/firmware image management
- Software module management
- Status and performance monitoring
- Diagnostics
TR-069 was first published in May 2004, with amendments in 2006, 2007, 2010, 2011, 2013 and 2018 (Issue 1 Amendment 6).
Advantages of TR-069
- TR-069 uses Organization Unique ID (OUI) and Serial Number rather than IP to identify a device (CPE).
- TR-069 can use HTTPS to communicate with or transfer files to/from the device.
- TR-069 is suitable for zero-touch configuration. This mechanism is detailed out in the specification.
- TR-069 is suitable for large-scale device management.
CPE ACS communication
The CPE has a TR-069 client, when configured, will contact the ACS at a predefined URL, using HTTP or HTTPS as protocol. After authentication, the ACS can perform the basic operations like Factory Reset, Reboot, Set Parameter Values (SPV), Get Parameter Values(GPV), Firmware Upgrade etc.
The session is always started by the CPE and begins with the transmission of an Inform message. Its reception and readiness of the server for the session are indicated by an InformResponse message. Inform is basically a SOAP request and some of the important informs are
- Bootstrap – Indicates that the session was established due to first-time CPE installation or during factory reset or change of ACS URL.
- Periodic – Indicates that the session was established on a periodic inform interval.
- Connection request – Indicates that the session was established due to a Connection Request from the ACS.
- Value change – Indicates that since the last successful Inform, the value of one or more parameters with Passive or Active Notification enabled.
- Boot – Indicates that the session was established due to the CPE being powered up or reset. This includes initial system boot, as well as a reboot due to any cause, including the use of the Reboot method.
- Transfer complete – Indicates that the session was established to indicate the completion of a previously requested download or upload, either successful or unsuccessful.
- Diagnostic complete – Indicates that the session was established to indicate the completion of diagnostics.
The CWMP incorporates a mechanism for the ACS to issue a Connection Request to the CPE at any time, instructing it to establish a communication session with the ACS. In this case, the CPE is put in the role of HTTP-server. The ACS requests a connection from the device by visiting a negotiated URL and performing HTTP authentication.
Data model
The data model is a hierarchical set of parameters that define the managed objects accessible via TR-069 for a particular device or service. The broadband forum provides specifications around device data models which the device manufacturers need to conform. Some of these specifications are TR-098, TR-181, TR-135, TR-140 etc
RPC methods
In the CWMP, a remote procedure call (RPC) mechanism is used for bi-directional communication between a CPE device and an ACS. Some important methods are
- SetParameterValues – This method may be used by an ACS to modify the value of one or more CPE parameters.
- GetParameterValues – This method may be used by an ACS to obtain the value of one or more CPE parameters.
- SetParameterAttributes – This method may be used by an ACS to modify attributes associated with one or more CPE parameters.
- GetParameterAttributes – This method may be used by an ACS to read the attributes associated with one or more CPE parameters.
- AddObject – This method may be used by the ACS to create a new instance of a Multi-Instance object.
- DeleteObject – This method is used to remove a particular instance of an object.
- Download – This method may be used by the ACS to cause the CPE to download a specified file from the designated location.
- Reboot – This method causes the CPE to reboot.
Specifications of interest
In case you want to get into the depth of TR-069 and other related protocols, you may refer to the below specifications. These are easily available on the net.
- TR-069: CPE WAN Management Protocol
- TR-098: Internet Gateway Device Data Model for TR-069
- TR-104: Provisioning Parameters for VoIP CPE
- TR-135: Data Model for a TR-069 Enabled STB
- TR-140: TR-069 Data Model for Storage Service Enabled Devices
- TR-143: Enabling Network Throughput Performance Tests and Statistical Monitoring
- TR-157: Component Objects for CWMP
- TR-181: Device Data Model for TR-069
- TR-196: Femto Access Point Service Data Model