Friendly IoT Embedded Clients:

  • LWM2M Embedded Client – Friendly’s Lightweight M2M (OMA-LWM2M) embedded client is designed for management of constrained IoT devices and sensors.
  • OMA-DM Embedded Client – Friendly’s OMA-DM embedded client is designed for devices with more resources and additional requirements.
  • TR-069 Embedded Client – provides CWMP PRC functionality an is designed for CPE devices running embedded Linux.
  • Friendly's Lightweight M2M (OMA-LWM2M) embedded client is designed for management of constrained IoT and M2M devices and sensors.
  • Friendly’s OMA-LWM2M client has a notably small CPU and memory footprint designed specifically with the IoT concept in mind, and it targets LTE Category 1, Category 0 and Category M devices.
  • The OMA-LWM2M Client includes the Client itself which is provided as an object code and the SDK which is provided as a source code with integration samples.
  • Our technical team is available for integration assistance. Additionally, Friendly Technologies can provide an OMA-LWM2M server for lab testing and commercial deployments.

Target Market

  • Device manufacturers who want to offer remote management for their devices based on industry standard protocols.
  • IoT and Mobile service providers who are interested in remote management of devices, and wish to use one standard Client for their devices.

Main Features

  • Device registration
  • Support of standard data model
  • SDK for customization and additional development
  • Remote device configuration
  • Firmware upgrade
  • Device location tracking
  • Device monitoring
  • Reset/ reboot device

Technical Specs

  • The client footprint is less than 100K
  • Supported OS : Android, Linux and non-Linux OS (please contact us)
  • Interfaces
    • Bootstrapping : Pre-provisioned or Client/Server Initiated
    • Registration : Register the Client and its Objects
    • Management & Service Enablement : Server access to Object or Resource
    • Information Reporting : Notifications with new Resource values
  • Based on efficient, secure IETF standards
    • CoAP and DTLS with UDP and SMS bindings


  • Bootstrapping : Pre-provisioned or Client/Server Initiated
  • Registration : Register the Client and its Objects
  • Management & Service Enablement : Server access to Object or Resource
  • Information Reporting : Notifications with new Resource values

Object Model

  • Object defines Resources, each can have Instances
  • Defining a new Object is straightforward
  • Object IDs are registered with the OMA Naming Authority (OMNA)
  • Efficient Payloads :Plain text for individual resources
  • Friendly OMA-DM Embedded Client and SDK (FOCS) is a framework implementing OMA-DM 1.2 protocol.
  • Friendly's OMA-DM Embedded Client is designed for devices with more resources and additional requirements.
  • The OMA-DM embedded client is ideal for device manufacturers and mobile carriers and allows the deployment of embedded clients for device management and support—specifically for devices that run on a Linux/Android OS, such as dongles, gateways, 4G routers, healthcare and security devices, and cars.
  • The Friendly OMA-DM Client supports advanced features and has been successfully tested and deployed by major US-based carriers.

Main Features

Friendly OMA-DM Embedded Client provides a rich feature set to support device's manageability:

  • Full support of the OMA-DM and OMA-CP protocol
  • Extensive SDK with implementation samples
  • Support of OMA-DM data model
  • Support of Linux and non-Linux OS
  • Provisioning
  • Bootstrap
  • FUMO - Firmware Upgrade over the air
  • Configuration Management
  • SCOMO - Software Management and Update
  • Lock-And-Wipe
  • High level security

Standard Compliance

  • OMA-DM v1.2
  • OMA-FUMO v1.0.2
  • OMA-SCOMO v1.0
  • OMA-LAWMO v1.0

OMA-DM v2, is planned for next version.


Friendly OMA-DM Embedded Client is designed to support different security requirements:

  • HTTP and WSP to provide an alternative authentication based on shared secrets
  • SSL 3.x and TLS 1.x
  • Basic Authentication type (Logging)
  • Digest Authentication type (MD5)
  • HMAC Authentication type
  • SOCKS 5 proxy tunneling

OS Support

  • Embedded Linux with kernels compatible with v 2.6.x and above
  • Porting layers available to port the software to non-Linux operating systems.



  • Friendly OMA-DM Embedded Client is implemented using C programming language.

Foot Print

  • Friendly OMA-DM Client SDK with sample plugin management objects has storage foot-print of 2MB. Run-time foot-print should be assessed according to implementation, please contact us for assistance.


  • Friendly OMA-DM Embedded Client includes management core (Engine API, OMA-DM protocol support, Management Tree API, Utils) and plug-in management objects


  • OMA-DM 1.2 communication protocol for management of various types of devices
  • OMA-DM Management Object - an integral part of OMA-DM Management Tree
  • SCOMO 1.0 - OMA-DM subset of requirements to implement software component management operations on devices
  • FUMO 1.0.2 - OMA-DM subset of requirements to implement firmware update on devices
  • LAWMO 1.0 - OMA-DM subset of requirements to implement lock-n-wipe, factory reset operations on devices
  • connection request via WAP push - sending notification message via WAP/SMS gateway to initiate connection from OMA-DM client device to OMA-DM server
  • OMA-CP 1.1 provisioning support - specification for client provisioning with device settings via WAP/SMS gateway
  • Today, manufacturers of CPE’s, including modem/routers, Smart Home hubs, IPTV STBs, ATA/VoIP, storage devices, media centers, Femtocell, IP-phones, and cameras are expected to allow remote management of these devices through the TR-069 standard.
  • The standard allows service providers, such as ISP’s, Telco’s etc., to streamline the provisioning, maintenance and support of these CPE devices on a single platform, thereby reducing their support and maintenance costs while increasing customer satisfaction.
  • Friendly TR-069 client provides CWMP RPC functionality as defined by TR-069 Issue 1, Amendment 5, Protocol Version 1.3, between the host CPE device and an Auto Configuration Server (ACS).
  • Friendly TR69 client implementation is targeted at CPE devices running embedded Linux. Other environments are a straightforward implementation.
  • The OEM client package includes the source code for multiple data models with stubbed off getter/setter functions that normally will run on the target platform once the cross-compile issues are resolved.
  • This source provides a jump-start on the TR-069 implementation. Executable demonstration versions of this code are available for X86 Linux workstations.
  • Friendly Technologies provides a code generation tool that processes the TR-106 compatible data model definitions and generates the source code for the data model tables and getter/setter stubs for the TR-069 client.
  • Instances of TR-106 data model definitions are TR-098, TR-181, and TR-104. The code generation tool allows customization of the data models as required for the target CPE devices.
  • The client supports both the Root data models, InternetGatewayDevice:1 and Device:2, as defined by TR-106 and the various data model definitions.

RPC Message Implementation

  • Friendly TR-069 client currently implements the baseline RPC messages defined in TR-069 Amendment 4.
  • The Connection Request via NAT Gateway (STUN) functionality defined by Annex G is also implemented and is optionally included based on compile-time options.
  • Friendly TR-069 client implements the SOAP RPCs as summarized in the following table.
  • Friendly TR-069 client CPE methods that are marked “Supported/Optional” may be included or excluded at compile time.

SOAP Implementation

  • A relaxed parsing of the SOAP RPC is performed to avoid ACS capability problems. Friendly TR-069 client implements versions 1.0, 1.1, 1.2 and version 1.3 of the CPE WAN Management Protocol.

Certificate Support

  • Friendly TR-069 client has support for both client and server Certificates. The native CPE software must provide a mechanism to manage the certificates.

HTTP Authentication Support

  • Friendly TR-069 client supports both Basic and Digest Authentication for the connection to the ACS. The client always uses digest authentication to challenge the Connection Request connections.

HTTPS Protocol

  • Friendly TR-069 client image may optionally be built with SSL to provide secure socket communications with the ACS.
  • This compile time option includes the OpenSSL package ( to support the SSL communications and server certificate authentication. This is the only extra package used by Friendly TR-069 client with the exception of the Linux standard C libraries.

Upload and Download Transfers

  • Friendly TR-069 client framework supports HTTP and HTTPS protocols for Uploads and Downloads. Basic and Digest Authentication are supported on transfer requests.
  • Multiple queued transfer requests are supported. Interfaces to native transfer protocols such as, FTP and TFTP, are provided.
  • The jump-start versions of the Friendly TR-069 client contains the source code for interfacing to the native transfer utilities.

TR-106 Data Model Support

  • Friendly TR-069 client is designed to support the CPE data model templates defined in TR-106.
  • Friendly TR-069 client protocol framework is independent of the CPE data model.
  • Only a few parameters within the Management Server Common Object as defined by TR-106 are used internally by the Friendly TR-069 client framework; for example, the ManagementServer.URL.
  • The parameter get and set functions are defined in a set of tables that represent the parameter tree for the required data model.
  • The parameter tables define the attributes of the parameter and control how the client handles the calls to the getter and setter functions for the associated parameters.
  • A utility program is provided that can process a file of parameter definitions to create the getter/setter function stubs, the parameter tables, the string constant tables that define the parameter names and the necessary header files that provide the prototype definitions for the getter/setter functions. The majority of the work of implementing the TR-069 protocol on a CPE is in the implementation of the getter/setter parameter functions and the add/delete object functions.
  • The jump-start source code files containing parameter definitions and getter/setter functions are supplied for TR-069, TR-098, TR-104, and WT-135 version 5 are included with the source.

Supported Data Models

  • TR-069 Amendment 1,2,3,4,5 – CPE WAN Management Protocol
  • TR-098 - Internet Gateway Device Data Model for TR-069
  • TR-104 - LTE/WiMAX Home™ Provisioning Parameters for VoIP CPE/UE
  • TR-106 - Data Model Template for TR-069 Enabled Devices - provides the template for extending TR-069 remote management to other digital home devices
  • TR-110 Issue 1.01 - DSLHome™ Reference Models for VoIP Configurations in the DSL Home
  • TR-111 - Applying TR-069 to Remote Management of Home Networking Devices - makes it easier for an auto-configuration server (ACS) to interact with home-based devices that live behind a NAT router
  • TR-135 - Data Model for a TR-069 Enabled STB
  • TR-140 Issue 1.1 - TR-069 Data Model for Storage Service Enabled Devices
  • TR-142 - Framework for TR-069 enabled PON devices
  • TR-143 - Specifies diagnostics objects for use in data models
  • TR-156 - Using GPON Access in the context of TR-101
  • TR-157 - Specifies Component objects for use in data models
  • TR-181i1 - Specifies Device:1
  • TR-181i2 - Specifies Device:2
  • TR-196 - Femto Access Point Service Data Model


Typical measures employed in the Friendly TR-069 client solution to ensure security include:

  • Authentication –username and password are required to connect to the ACS
  • HTTPS – HTTP over SSL/TLS xSP is used for data transfer
  • Signed certificates – policy can require firmware files to have signed certificates

Friendly TR-069 client process environment

  • Friendly TR-069 client runs as a separate application or process thread that is linked to a set of CPE supplied functions to provide access to the CPE configuration parameters.
  • Friendly TR-069 client depends on CPE functions for providing configuration data persistence across reboot and power on/off cycles.
  • The majority of this data is the configuration data that corresponds to the TR-106 data model of the device, with a minor amount required to provide state information for the client application.
  • An example of this CPE Wrapper implementation is provided in the jump-start source.
  • Friendly TR-069 client supports management of Component Objects as defined by TR-157.
  • This feature is included at compile time by setting compile time options.
  • The quick-start implementation provides an example of how a CPE device could use the downloaded Component Objects by downloading and installing a sample OSGi framework.
  • If the TR-157 option is included the client creates a separate process thread to manage the installation, starting, stopping and uninstalling of the component objects.

LAN Device Management

Friendly TR-069 client supports the three types of connection of devices behind a NAT as defined in TR-069. These are:

● STUN as defined by Annex G of TR-069 :

● XMPP as defined by Annex K and Appendix III of TR-069.

  • The STUN method can be excluded by the conditional compilation of the client.
  • The XMPP method is implemented by sending inter-process messages between the client and an XMPP client process. The XMPP client process is based on the Google txmpp open-source project and is included with the development package.

TR-143 Network Throughput Performance Testing and Statistical Monitoring

  • The requirements of network throughput performance are defined by TR-143 and the TR-181 and TR-098 data models.
  • The performance testing and monitoring tool is implemented as a single threaded application that is started by the Friendly TR-069 client when requested by the ACS.
  • The output of the performance monitoring application is used to populate the parameter values of the performance measuring objects defined in the TR-143.

Source Control and Release

  • A CVS repository of the Friendly TR-069 client code, data models are maintained.
  • The majority of the client framework is self-contained in one directory and should not need to be modified when implementing a customer’s CPE solution.
  • This code is updated continuously to fix problems and implement clarifications to the specification. In general, a customer can update this portion of the client code from the CVS without impacting their specific CPE implementation.

Leave a Reply

Your email address will not be published. Required fields are marked *