Vivek Dutta f6be99dc32 sip_client: override sip network config only if present
Currently sip network and sip client share same uci section in asterisk, some parameters maps to same options, so when network is assigned to sip client, it override those options(nullifying the option which are not defined in network), this change optimize the override.
2025-10-30 14:05:16 +05:30
2024-10-02 07:51:43 +00:00
2023-07-14 17:29:11 +00:00
2024-06-13 12:03:27 +05:30
2023-11-23 19:37:51 +05:30
2023-07-14 17:29:11 +00:00
2025-02-25 14:43:24 +05:30

TR104 Datamodel Daemon

TR104 is a diverged fork of BBFDM, aim of this repo is to provide the datamodel layer for TR104 and TR104-extensions.

For design and architecture refer to BBFDM.

TR104 supported Interfaces

TR104 supports following northbound interfaces:

  • Ubus - for seamless integration with OpenWRT based solutions
  • JSON-RPC - for integration with RDK-B based solutions

South bound interfaces are implementation dependent, but it support extending datamodel with

  • UCI
  • UBUS
  • System calls

Debugging support

Similar to bbfdmd, tr104d also provides a cli debug utility to interact with datamodel

root@eagle-44d43771b500:~# tr104d -c help
Valid commands:
   help
   get [path-expr]
   set [path-expr] [value]
   add [object]
   del [path-expr]
   instances [path-expr]
   schema [path-expr]
root@eagle-44d43771b500:~#

Note: This cli utility shall only be used for debugging, as it has datamodel parameters for TR104 only and some datamodel references might show metadata

ex:

root@eagle-44d43771b500:~# tr104d -c get Device.
Device.Services.VoiceService.1.Alias => cpe-1

...

Device.Services.VoiceService.1.CodecProfile.1.Codec => Device.Services.VoiceService.*.Capabilities.Codec.[Codec=="G.711ALaw"].
Device.Services.VoiceService.1.CodecProfile.1.PacketizationPeriod => 20
Device.Services.VoiceService.1.CodecProfile.1.Alias => cpe-1

Directory structure

This implementation comprises of the three main components:

├── daemon
│   ├── json_rpc  -- Daemon with JSON-RPC northbound interface
│   └── ubus      -- Daemon with UBUS northbound interface
├── libdm
│   ├── tr104     -- Contains TR104 specific datamodel definitions as per DotSO plugin
│   └── tr104_ext -- Contains TR104 vendor extensions
└── libdmtree     -- A Static library with APIs to traverse datamodel tree, used by daemon
Component Description
daemon Daemon which used to expose data model object
libdmtree It is a static library that provides many APIs used to interact with UCI configurations, Ubus objects, JSON schema, CLI commands and memory management. It also provides a mechanism to add new objects, parameters, events and operates or extend the existing DM tree using json plugin or shared library plugin.
libdm A shared library that provides the tr104 datamodel tree

How to extend the TR104 datamodel

In case of UBUS daemon tr104d, its deployed using datamodel micro-services, which provides a way to extend the datamodel further using DotSO and JSON plugins.

User has to create a DotSO or JSON plugin and then install it pre-defined tr104 plugin directory /etc/tr104/plugins/ reference

Description
No description provided
Readme BSD-3-Clause 1.1 MiB
Languages
C 99.3%
Shell 0.4%
CMake 0.3%