Content

Page tree


Introduction

TR-369, also called User Services Platform (USP), like its predecessor TR-069 (CWMP), is a protocol standard developed by Broadband-Forum for the management and analysis of devices connected to a network. TR-369 uses standardized transport protocols (e.g. MQTT, WebSocket) which encapsulates the USP messages required for remote management control.

USP Agent and Controller Architecture

Figure: USP Agent and Controller Architecture

 

Typically:

  • one router on customer premises provides Internet connectivity to many phones (acting as USP Agents),
  • depending on the wanted protocol:
    • when MQTT, one MQTT server (acting as MTP broker) reachable over Internet by the phones, and the USP Controller can now manage all phones located behind the MTP broker.
    • when WebSocket, the USP Controller acts as WebSocket server and must be reacheable over Internet by the phones.
  • one phone can be linked to many USP controllers at the same time.

What does „remote management“ mean?

Where provisioning is used to provide configuration information to many phones at once, remote management takes this one step further. Of course it is still possible to configure the phone remotely when it boots up, but with TR-369 the phone can actually be managed remotely. In addition to the provisioning of configuration you can also e.g.

  • Reboot the phone

  • Resynchronize the phone configuration with latest changes
  • Reset the phone to its default configuration and ready for new reprovisioning
  • Customise the phone look and feel

  • Push XML-Minibrowser pages to the phone

  • Update the firmware of the device



Supported phones and firmware versions

The TR-369 support over MQTT has been introduced in firmware version 10.1.161.

The support of WebSocket has been introduced in firmware version 10.1.182.

The current list of phone models supporting TR-369 is:

  • The D8xx series
  • The D713, D717, and D735 models
  • The D140 and D150 models

The support of TR-369 is not planned for other phone models, but feel free contact us to share your needs.



Required changes to TR-181 datamodel (a.k.a param map file)

The introduction of TR-369 requires also an update to the provisionned datamodel file.

Parameter mapping documentation

For further details about the parameter mapping and its syntax, refer to the TR-069 - Full Endpoint Management page and its subsections about parameter mapping.

On factory reset, the param_map file of the phone contains these newly added lines:

# TR-369 parameters - SRAPS USP Controller
string:Device.LocalAgent.Controller.1.MTP.1.WebSocket.Host!={TR369_WEBSOCKETHOST|1}
unsignedInt:Device.LocalAgent.Controller.1.MTP.1.WebSocket.Port!={TR369_WEBSOCKETPORT|1}
string:Device.LocalAgent.Controller.1.MTP.1.WebSocket.Path!={TR369_WEBSOCKETPATH|1}
boolean:Device.LocalAgent.Controller.1.MTP.1.WebSocket.EnableEncryption!={TR369_WEBSOCKETSECURED|1}
string:Device.MQTT.Client.1.BrokerAddress!={TR369_MQTTADDRESS|1}
unsignedInt:Device.MQTT.Client.1.BrokerPort!={TR369_MQTTPORT|1}
string:Device.MQTT.Client.1.ProtocolVersion={tr369_mqtt_version|1}
string:Device.MQTT.Client.1.TransportProtocol={tr369_mqtt_transport|1}
string:Device.MQTT.Client.1.Username={tr369_mqtt_username|1}
string:Device.MQTT.Client.1.Password={tr369_mqtt_password|1}
string:Device.MQTT.Client.1.ClientID={tr369_mqtt_clientid|1}
unsignedInt:Device.MQTT.Client.1.ConnectRetryMaxInterval=30
string:Device.LocalAgent.Controller.1.MTP.1.MQTT.Topic!={TR369_MQTTTOPIC_CTRL|1}
string:Device.LocalAgent.MTP.1.MQTT.ResponseTopicConfigured!={TR369_MQTTTOPIC_RESP|1}
string:Device.LocalAgent.Controller.1.EndpointID={tr369_controller_endpointid|1}
string:Device.LocalAgent.Subscription.1.ID={tr369_controller_subscriptionid|1}
string:Device.LocalAgent.Controller.1.E2ESession.SessionMode={tr369_controller_e2emode|1}
unsignedInt:Device.LocalAgent.Controller.1.E2ESession.MaxUSPRecordSize={tr369_controller_e2esize|1}
boolean:Device.LocalAgent.Subscription.1.Enable={tr369_enable|1}
string:Device.LocalAgent.MTP.1.Protocol={tr369_mtp_protocol|1}
string:Device.LocalAgent.Controller.1.MTP.1.Protocol={tr369_mtp_protocol|1}
boolean:Device.LocalAgent.MTP.1.Enable!={TR369_MQTTENABLE|1}
boolean:Device.MQTT.Client.1.Enable!={TR369_MQTTENABLE|1}
boolean:Device.LocalAgent.Controller.1.Enable={tr369_enable|1}
boolean:Device.LocalAgent.Controller.1.BootParameter.1.Enable={tr369_enable|1}
boolean:Device.LocalAgent.Controller.1.MTP.1.Enable={tr369_enable|1}

# TR-369 parameters - Customer's USP Controller
string:Device.LocalAgent.Controller.2.MTP.1.WebSocket.Host!={TR369_WEBSOCKETHOST|2}
unsignedInt:Device.LocalAgent.Controller.2.MTP.1.WebSocket.Port!={TR369_WEBSOCKETPORT|2}
string:Device.LocalAgent.Controller.2.MTP.1.WebSocket.Path!={TR369_WEBSOCKETPATH|2}
boolean:Device.LocalAgent.Controller.2.MTP.1.WebSocket.EnableEncryption!={TR369_WEBSOCKETSECURED|2}
string:Device.MQTT.Client.2.BrokerAddress!={TR369_MQTTADDRESS|2}
unsignedInt:Device.MQTT.Client.2.BrokerPort!={TR369_MQTTPORT|2}
string:Device.MQTT.Client.2.ProtocolVersion={tr369_mqtt_version|2}
string:Device.MQTT.Client.2.TransportProtocol={tr369_mqtt_transport|2}
string:Device.MQTT.Client.2.Username={tr369_mqtt_username|2}
string:Device.MQTT.Client.2.Password={tr369_mqtt_password|2}
string:Device.MQTT.Client.2.ClientID={tr369_mqtt_clientid|2}
unsignedInt:Device.MQTT.Client.2.ConnectRetryMaxInterval=30
string:Device.LocalAgent.Controller.2.MTP.1.MQTT.Topic!={TR369_MQTTTOPIC_CTRL|2}
string:Device.LocalAgent.MTP.2.MQTT.ResponseTopicConfigured!={TR369_MQTTTOPIC_RESP|2}
string:Device.LocalAgent.Controller.2.EndpointID={tr369_controller_endpointid|2}
string:Device.LocalAgent.Subscription.2.ID={tr369_controller_subscriptionid|2}
string:Device.LocalAgent.Controller.2.E2ESession.SessionMode={tr369_controller_e2emode|2}
unsignedInt:Device.LocalAgent.Controller.2.E2ESession.MaxUSPRecordSize={tr369_controller_e2esize|2}
boolean:Device.LocalAgent.Subscription.2.Enable={tr369_enable|2}
string:Device.LocalAgent.MTP.2.Protocol={tr369_mtp_protocol|2}
string:Device.LocalAgent.Controller.2.MTP.1.Protocol={tr369_mtp_protocol|2}
boolean:Device.LocalAgent.MTP.2.Enable!={TR369_MQTTENABLE|2}
boolean:Device.MQTT.Client.2.Enable!={TR369_MQTTENABLE|2}
boolean:Device.LocalAgent.Controller.2.Enable={tr369_enable|2}
boolean:Device.LocalAgent.Controller.2.BootParameter.1.Enable={tr369_enable|2}
boolean:Device.LocalAgent.Controller.2.MTP.1.Enable={tr369_enable|2}

In customized param_map files, these lines must be added. Otherwise, the USP Agent won't be able to run and contact the USP Controller.



Enabling TR-369 on Snom phones

In order to use Snom phones with TR-369, some phone settings need to be adjusted first. Adjusting the settings can be accomplished in one of the following ways.

TR-369 specific phone settings

Firmware 10.1.161 introduced many phone settings specific to TR-369 and MQTT configuration, while firmware 10.1.182 introduced the WebSocket support.

These can be divided into different groups:

The "Controller settings" reflects the configuration of the USP Controller where the phones are to be connected: the available settings are about identifying both the USP Agent and USP Controller to each other.

The list of MTP settings to change is based on the chosen tr369_mtp_protocol and must be configured accordingly.

The following settings support the {mac} keyword to be replaced by the uppercase MAC address:

Configure TR-369 automatically on many phones

While the above method is a quick way to test the TR-369 integration it is not suitable for large-scale installations. In case many phones need to be connected to a USP Controller, it is strongly recommended to use SRAPS (Snom auto provisioning).

By default, all phones reach automatically SRAPS (USP Controller) and give quick feedbacks about status and operational state.

Best practice

The best practice is to let all phones under SRAPS management (as out of the box) and, if needed, providing an additional USP Controller by editing the following settings:

  • tr369_enable2
  • tr369_controller_endpointid2
  • tr369_controller_subscriptionid2
  • tr369_controller_e2emode2
  • tr369_controller_e2esize2
  • tr369_mtp_protocol2
  • tr369_websocket_uri2
  • tr369_mqtt_hostport2
  • tr369_mqtt_version2
  • tr369_mqtt_transport2
  • tr369_mqtt_username2
  • tr369_mqtt_password2
  • tr369_mqtt_clientid2
  • tr369_mqtt_topic2

Exception of tr369_enable, all settings with index '1' are hardcoded to SRAPS and cannot be overwritten.



Supported TR-369 usages

USP messages

Refer to the TR-369 page about the typical TR-369 / USP messages which are available.

USP operations

Additional methods (operations) are defined in the USP data model. The mechanism is controlled using the Operate Message in conjunction with the Multi-Instance Request Object.

The USP Controller can call the following operations to execute on the phones

OperationURL to description
Device.Reboot()Device:2 datamodel link to Reboot()
Device.FactoryReset()Device:2 datamodel link to FactoryReset()



Call to action

If you have successfully tested Snom phones to work with your USP Controller, please send an email with your USP Controller details to marketing@snom.com and we will be happy to add your USP Controller to the supported list.