Introduction

RDK Telco Voice Manager is a component that manages the vendor voice stack through TR104 configuration. 
It is responsible for :

Architecture

The RDK Telco Voice Manager consists of

Data Model

DISTRO_FEATURES_append = " rdkb_voice_manager_dmltr104_v2“

Custom Data Models

RDK Telco Voice Manager has a set of custom TR-104 data objects to manage voice service better. Few of them are listed in the below table

Data ModelDescriptionValueRead/Write
Device.Services.VoiceService.{i}.X_RDK_StatusReturns the current status of voice applicationStopped/Starting/Started/Stopping/ErrorR
Device.Services.VoiceService.{i}.X_RDK_EnableEnable/Disable voice applicationEnable/DisableW
Device.Services.VoiceService.{i}.X_RDK_FactoryResetBoolean parameter to reset the TR104 data models to default valueTrue/FalseW
Device.Services.VoiceService.{i}.X_RDK_BoundlpAddr

Holds the current IP address of the interface on which the Voice will be running

Valid IP addressR
Device.Services.VoiceService.{i}.X_RDK_lpAddressFamilyConfigures the WAN link type used by voice. Can either be IPV4 or IPV6IPV6/IPV4W


JSON HAL

JSON HAL client and server library modules are used to send and receive JSON based RPC requests/responses between the RDK Telco Voice Manager and the Vendor software.


JSON HAL Client

JSON HAL Server

JSON HAL Schema

During Initialisation, Telco Voice Manager sends all default configurations stored in the persistent file “/opt/secure/telcovoice_config_current.json” as a single JSON HAL set request to the voice stack and initialises the data model objects with default values.

Startup Sequence

Voice Manager- Network Monitor

Once all initialisation is complete, Telco Voice Manager creates the network monitor thread to listen to the WAN events. Based on the WAN event received it then controls the vendor voice process.

Voice Manager register for below sysevents and act

RDK Voice Manager sends the following parameters together in one single JSON HAL set request to the SoC voice stack when the WAN connection is successfully established.

Voice Manager - Controller

RDK Manager subscribes for events coming from vendor stack. The HAL server publishes the events to the RDK Manager based on the event subscription.

Subscribe Event

Publish Event

Subscribe Event Notification Type: onChange, onChangeSync, onChangeSyncTimeout

Subscribe Event Json Message

{
"module":"voicehal",
"version":"0.0.1",
"reqId":"00000104",
"action":"subscribeEvent",
"params":[
{
"name":"Device.Services.VoiceService.1.X_RDK_Firewall_Rule_Data",
"notificationType":"onChange"
}
]
}

Persistent Storage

Additional Feature

Voice Diagnostics Report

Porting

Distro Features

RDK Telco Voice Manager can be enabled by adding the following distro features into OEM machine configuration file,

DISTRO_FEATURES_append = " rdkb_telcovoice_manager "
DISTRO_FEATURES_append = " rdkb_voice_manager_dmltr104_v2"

Global CFLAGS

CFLAGS can be added in OEM machine configuration files as TARGET_CFLAGS, so it will be available across the build system

Package Group

To enable the RDKB Telco Voice Manager in the final build target, add the following section into the packagegroup bb file,

RDEPENDS_packagegroup-rdkb-wanmanager_append = " ${@bb.utils.contains('DISTRO_FEATURES', 
'rdkb_telcovoice_manager', rdktelcovoicemanager', '', d)} "

Yocto Recipes

All the new recipes are available in meta-rdk-broadband layer. 
Path: https://code.rdkcentral.com/r/plugins/gitiles/components/generic/rdk-oe/meta-rdkbroadband/+/refs/heads/rdk-next/recipes-ccsp/ccsp/
Recipe name : rdktelcovoicemanager.bb 

JSON HAL Conf

{
"hal_schema_path": "/etc/rdk/schemas/telcovoice_hal_schema.json",
"server_port":40104
}


1.What does SLA stand for?

SLA stands for “Service Level Agreement”. JSON HAL schema act as an agreement between the RDK and Vendor on defining the data model object path, data model value patterns , datatype of objects etc. JSON HAL lib validates the parameters exchanged between RDK Manager and Vendor against the respective JSON schema field.

2. How is the JSON HAL conf file provided to the JSON HAL server? Here /opt/secure/telcovoice_config_current.json?

JSON HAL Conf file is maintained by RDK Telco Voice Manager in the build folder (RdkTelcoVoiceManager/config/telcovoice_manager_conf.json) and is installed as  “/etc/rdk/conf/telcovoice_manager_conf.json”. “opt/secure/telcovoice_config_current.json” is the persistent storage file.

3. Where does the vendor software registration happen?

Vendor Software Registration happens below HAL. Vendor should implement their own JSON HAL server by using JSON HAL Server library package to receive the json messages from Telco Voice Manager and initiate vendor application registration.

4. How does the Telco manager pick right version of schema file?

Telco Voice Manager depends on the distro feature flag “rdkb_voice_manager_dmltr104_v2” to pick the right version of schema file. It install V2 schema file if “rdkb_voice_manager_dmltr104_v2” DISTRO feature is enabled in OEM machine configuration file, otherwise v1 schema file is installed.