
{"id":12704,"date":"2026-02-17T07:26:14","date_gmt":"2026-02-17T07:26:14","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=12704"},"modified":"2026-02-17T10:08:37","modified_gmt":"2026-02-17T10:08:37","slug":"telco-voice-manager","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/","title":{"rendered":"Telco Voice Manager"},"content":{"rendered":"\n<p>Telco Voice Manager is the RDK-B middleware component that provides voice service management capabilities for residential and business environments. This component serves as the central orchestrator for voice services, implementing TR-104 (Voice over Internet Protocol) standards and managing the interaction between the RDK-B middleware stack and vendor-specific voice implementations. The component enables service providers to offer advanced telephony features including SIP-based VoIP calling, POTS (Plain Old Telephone Service) support, and voice service provisioning through a standardized TR-181 data model interface.<\/p>\n\n\n\n<p>Telco Voice Manager acts as a bridge between the high-level RDK-B management infrastructure and low-level voice hardware abstraction layers , providing seamless integration of voice services into the broader RDK-B ecosystem. It supports both legacy telephony interfaces and modern IP-based voice communications, enabling operators to deploy unified voice solutions across diverse hardware platforms while maintaining consistent management and configuration interfaces.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: {\n  \"themeVariables\": { \"fontSize\": \"50px\", \"lineHeight\": 1.7 },\n  \"flowchart\": { \"nodeSpacing\": 140, \"rankSpacing\": 180, \"diagramPadding\": 80, \"padding\": 18, \"useMaxWidth\": true, \"htmlLabels\": true, \"wrap\": true }\n}}%%\ngraph LR\n    subgraph \"External Systems\"\n        RemoteMgmt[\"Remote Management\"]\n        SIPServer[SIP Server\/Registrar]\n    end\n\n    subgraph \"RDK-B Platform\"\n        subgraph \"Remote Management Agents\"\n            ProtocolAgents[\"Protocol Agents&lt;br>( TR-069, WebPA, USP etc.)\"]\n        end\n\n        rdkbComponents[\"Other RDK-B Components(PSM,P&amp;M etc.)\"]\n        TelcoVoiceMgr[\"Telco Voice Manager\"]\n\n        subgraph \"Platform Layer\"\n            HAL[Voice HAL]\n            Linux[Linux]\n            VendorStack[Vendor Voice Stack]\n            HW[(Voice Hardware)]\n        end\n    end\n\n    %% External connections\n    RemoteMgmt -->|TR-069\/WebPA\/TR-369| ProtocolAgents\n    SIPServer -->|SIP Signaling| TelcoVoiceMgr\n\n    %% Upper layer to TelcoVoice Manager\n    ProtocolAgents -->|IPC| TelcoVoiceMgr\n\n    %% Interface Managers to HAL\n    TelcoVoiceMgr -->|JSON HAL APIs| HAL\n    TelcoVoiceMgr -->|IPC| rdkbComponents\n\n    %% System integration\n    HAL -->|Drivers| Linux\n    HAL -->|Vendor API| VendorStack\n    VendorStack -->|Hardware Control| HW\n\n    classDef external fill:#fff3e0,stroke:#ef6c00,stroke-width:2px;\n    classDef TelcoVoiceMgr fill:#e3f2fd,stroke:#1976d2,stroke-width:3px;\n    classDef rdkbComponent fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px;\n    classDef system fill:#fce4ec,stroke:#c2185b,stroke-width:2px;\n\n    class RemoteMgmt,SIPServer external;\n    class TelcoVoiceMgr TelcoVoiceMgr;\n    class ProtocolAgents,rdkbComponents rdkbComponent;\n    class HAL,Linux,VendorStack,HW system;<\/pre><\/div>\n\n\n\n<p><strong>Key Features &amp; Responsibilities<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TR-104 Voice Service Management<\/strong>: Complete implementation of TR-104 Voice over Internet Protocol data model specifications, providing standardized voice service configuration and monitoring capabilities across diverse hardware platforms<\/li>\n\n\n\n<li><strong>SIP Protocol Integration<\/strong>: Advanced Session Initiation Protocol (SIP) client and server functionality supporting multiple concurrent voice sessions, registration management, and call control features<\/li>\n\n\n\n<li><strong>POTS Interface Support<\/strong>: Legacy Plain Old Telephone Service integration enabling seamless migration from traditional telephony systems while maintaining backward compatibility with existing infrastructure<\/li>\n\n\n\n<li><strong>Multi-Line Voice Services<\/strong>: Support for multiple concurrent voice lines with independent configuration, call handling, and service provisioning capabilities per line instance<\/li>\n\n\n\n<li><strong>Voice Quality Management<\/strong>: Comprehensive voice processing controls including gain adjustment, echo cancellation, noise reduction, and codec management for optimal call quality<\/li>\n\n\n\n<li><strong>Event-Driven Architecture<\/strong>: Real-time event publishing and subscription system for voice service state changes, call events, and system notifications using RBus messaging infrastructure<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"design\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#design\">Design<\/a><\/h2>\n\n\n\n<p>The Telco Voice Manager follows a layered architectural approach designed to provide maximum flexibility and vendor independence while maintaining robust voice service management capabilities. The design principles center around clear separation of concerns, with distinct layers handling TR-181 data model management, voice service orchestration, and hardware abstraction. This architecture enables the component to support diverse voice implementations while providing consistent management interfaces and maintaining high availability for critical voice services.<\/p>\n\n\n\n<p>The component&#8217;s design emphasizes event-driven communication patterns, utilizing RBus for inter-component messaging and JSON-based HAL interfaces for hardware abstraction. The modular architecture allows for independent scaling of different voice service functions, while maintaining tight integration with the broader RDK-B middleware ecosystem. The design incorporates comprehensive error handling, state management, and recovery mechanisms to ensure continuous voice service availability even during system transitions or hardware failures.<\/p>\n\n\n\n<p>The northbound interfaces integrate seamlessly with RDK-B management components including PandM for TR-181 parameter management, TR-069 PA for remote configuration, and PSM for persistent data storage. The southbound interfaces abstract vendor-specific voice implementations through a standardized JSON HAL API, enabling consistent voice service management across different hardware platforms and vendor solutions. The design also incorporates WebConfig integration for dynamic configuration management and telemetry collection for proactive service monitoring.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: {\n  \"themeVariables\": { \"fontSize\": \"50px\", \"lineHeight\": 1.7 },\n  \"flowchart\": { \"nodeSpacing\": 140, \"rankSpacing\": 180, \"diagramPadding\": 80, \"padding\": 38, \"useMaxWidth\": true, \"htmlLabels\": true, \"wrap\": true }\n}}%%\ngraph TD\n    subgraph ContainerBoundary [\"Telco Voice Manager\"]\n        subgraph TR181Layer [\"TR-181 Data Model Layer\"]\n            DMLCore[DML Core Engine]\n            ParamHandler[Parameter Handler]\n            ObjectMgr[Object Manager]\n        end\n        \n        subgraph ServiceLayer [\"Voice Service Management Layer\"]\n            VoiceController[Voice Controller]\n            SIPMgr[SIP Manager]\n            POTSMgr[POTS Manager]\n            CallControl[Call Control]\n        end\n        \n        subgraph IntegrationLayer [\"Integration Services Layer\"]\n            HALInterface[HAL Interface]\n            ConfigMgr[Config Manager]\n            EventPublisher[Event Publisher]\n            NetworkMonitor[Network Monitor]\n        end\n    end\n\n    subgraph ExternalSystems [\"External Systems\"]\n        JSONHALClient[JSON HAL API]\n        SIPServers[SIP Servers]\n        PSTNGateway[PSTN Gateway]\n        ManagementSys[Management Systems]\n        rdkbComponent[\"Other RDK-B Components\"]\n        PSM[(PSM)]\n    end\n\n    DMLCore -->|Parameter Operations| ParamHandler\n    ParamHandler -->|Object Management| ObjectMgr\n    \n    VoiceController -->|SIP Operations| SIPMgr\n    VoiceController -->|POTS Operations| POTSMgr\n    VoiceController -->|Call Management| CallControl\n    \n    HALInterface -->|Hardware Control| JSONHALClient\n    ConfigMgr -->|Dynamic Config| VoiceController\n    EventPublisher -->|Voice Events| NetworkMonitor\n    \n    ObjectMgr &lt;-->|IPC| rdkbComponent\n    ConfigMgr &lt;-->|Persistence| PSM\n    ConfigMgr &lt;-->|Remote Config| rdkbComponent\n    \n    SIPMgr &lt;-->|SIP Protocol| SIPServers\n    POTSMgr &lt;-->|PSTN Access| PSTNGateway\n    NetworkMonitor &lt;-->|Management Data| ManagementSys<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"prerequisites-and-dependencies\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#prerequisites-and-dependencies\">Prerequisites and Dependencies<\/a><\/h3>\n\n\n\n<p><strong>Build-Time Flags and Configuration:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>N\/A<\/td><td><code>rdkb_voice_manager_dmltr104_v2<\/code><\/td><td><code>FEATURE_RDKB_VOICE_DM_TR104_V2<\/code><\/td><td>Enable TR-104 v2 data model implementation with enhanced voice features<\/td><td>Disabled<\/td><\/tr><tr><td>N\/A<\/td><td><code>telco_voice_feature_enable_persist<\/code><\/td><td><code>TELCO_VOICE_FEATURE_ENABLE_PERSIST<\/code><\/td><td>Enable persistent voice service configuration across reboots<\/td><td>Disabled<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Data Model Configuration:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Data Model XML<\/td><td><code><strong>RdkTelcoVoiceManager_v1<\/strong>.xml<\/code><\/td><td><code><strong>RdkTelcoVoiceManager_v2<\/strong>.xml<\/code><\/td><td>TR-181 parameter definitions<\/td><\/tr><tr><td>HAL Schema<\/td><td><code><strong>telcovoice_hal_schema_v1<\/strong>.json<\/code><\/td><td><code><strong>telcovoice_hal_schema_v2<\/strong>.json<\/code><\/td><td>HAL API validation schema<\/td><\/tr><tr><td>Default Config<\/td><td><code><strong>telcovoice_config_default<\/strong>.json<\/code><\/td><td><code><strong>telcovoice_config_default_v2<\/strong>.json<\/code><\/td><td>Default voice service settings<\/td><\/tr><tr><td>Telemetry Schema<\/td><td><code><strong>VoiceDiagnostics<\/strong>.avsc<\/code><\/td><td><code><strong>VoiceDiagnostics_V2<\/strong>.avsc<\/code><\/td><td>Avro telemetry data format<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>RDK-B Platform and Integration Requirements:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>RDK-B Components<\/strong>: PandM , PSM , TR-069 PA, RBus Message Bus, and WebConfig Framework must be active and operational<\/li>\n\n\n\n<li><strong>HAL Dependencies<\/strong>: Voice HAL<\/li>\n\n\n\n<li><strong>Systemd Services<\/strong>: ccsp-psm.service, ccsp-pandm.service, rbus.service must be running before telcovoice-manager.service initialization<\/li>\n\n\n\n<li><strong>Message Bus<\/strong>: RBus registration for voice service events and TR-181 parameter notifications with reserved namespace &#8220;Device.Services.VoiceService&#8221;<\/li>\n\n\n\n<li><strong>TR-181 Data Model<\/strong>: TR-104 Voice service object model support from PandM with read\/write access to Device.Services.VoiceService.* parameters<\/li>\n\n\n\n<li><strong>Configuration Files<\/strong>: \/opt\/voice_config.json, \/etc\/telcovoice_manager_conf.json, and vendor-specific HAL configuration files must be present<\/li>\n\n\n\n<li><strong>Startup Order<\/strong>: PSM \u2192 RBus \u2192 PandM \u2192 Voice HAL \u2192 Telco Voice Manager initialization sequence must be maintained<\/li>\n<\/ul>\n\n\n\n<p><strong>Threading Model<\/strong><\/p>\n\n\n\n<p>The Telco Voice Manager implements a multi-threaded architecture optimized for real-time voice service management and concurrent operation handling. The threading model is designed to ensure low-latency voice processing while maintaining responsive parameter management and event handling capabilities.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Threading Architecture<\/strong>: Multi-threaded with dedicated thread pools for voice processing, event handling, and HAL communication<\/li>\n\n\n\n<li><strong>Main Thread<\/strong>: Handles component initialization, RBus registration, TR-181 parameter operations, and coordinates overall voice service management lifecycle<\/li>\n\n\n\n<li><strong>Main worker Threads<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Voice Controller Thread<\/strong>: Manages voice service state transitions, call control operations, and coordinates SIP\/POTS service management<\/li>\n\n\n\n<li><strong>HAL Communication Thread<\/strong>: Dedicated thread for JSON HAL API communication ensuring non-blocking hardware operations and event processing<\/li>\n\n\n\n<li><strong>Network Monitor Thread<\/strong>: Monitors network connectivity, SIP registration status, and handles network-related voice service events<\/li>\n\n\n\n<li><strong>Event Publisher Thread<\/strong>: Processes and publishes voice service events to RBus subscribers with guaranteed delivery and proper sequencing<\/li>\n\n\n\n<li><strong>Configuration Thread<\/strong>: Handles WebConfig updates, parameter validation, and dynamic configuration changes without service interruption<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Synchronization<\/strong>: Uses pthread mutexes for shared data protection, condition variables for thread coordination, and lock-free queues for high-frequency event processing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"component-state-flow\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#component-state-flow\">Component State Flow<\/a><\/h3>\n\n\n\n<p><strong>Initialization to Active State<\/strong><\/p>\n\n\n\n<p>The Telco Voice Manager follows a structured initialization sequence designed to ensure all dependencies are properly established before voice services become operational. The initialization process includes configuration loading, HAL interface establishment, RBus registration, and voice service provisioning based on stored configuration parameters.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: { \"config\": { \"useMaxWidth\": false } }}%%\nsequenceDiagram\n    autonumber\n    participant System\n    participant ConfigLoader\n    participant RBusManager\n    participant TR181Handler\n    participant HALInterface\n    participant ServiceProvisioner\n    participant VoiceController\n    participant ErrorHandler\n    participant NetworkMonitor\n\n    System->>System: Start [*] \u2192 Initializing\n    Note right of System: Initialize logging system&lt;br>Load component configuration&lt;br>Setup memory management&lt;br>Initialize threading model\n\n    System->>ConfigLoader: Component Start \u2192 LoadingConfig\n    Note right of ConfigLoader: Load telcovoice_config_default.json&lt;br>Parse HAL schema configuration&lt;br>Validate voice service parameters&lt;br>Load debug and logging settings\n\n    ConfigLoader->>RBusManager: Configuration Validated \u2192 RegisteringRBus\n    Note right of RBusManager: Establish RBus connection&lt;br>Register component namespace&lt;br>Setup event publishing capabilities&lt;br>Initialize message bus interface\n\n    RBusManager->>TR181Handler: RBus Connection Established \u2192 RegisteringTR181\n    Note right of TR181Handler: Register Device.Services.VoiceService objects&lt;br>Create TR-181 parameter handlers&lt;br>Setup DML backend managers&lt;br>Initialize parameter validation\n\n    TR181Handler->>HALInterface: TR-181 Parameters Registered \u2192 ConnectingHAL\n    Note right of HALInterface: Establish JSON HAL connection&lt;br>Load HAL schema validation&lt;br>Subscribe to voice service events&lt;br>Initialize vendor stack communication\n\n    HALInterface->>ServiceProvisioner: HAL Interface Connected \u2192 ProvisioningServices\n    Note right of ServiceProvisioner: Provision SIP client instances&lt;br>Configure POTS interfaces&lt;br>Setup call control services&lt;br>Initialize voice service instances\n\n    ServiceProvisioner->>System: Voice Services Provisioned \u2192 Active\n    Note right of System: Process voice calls&lt;br>Handle SIP registrationsbrMonitor service health&lt;br>Publish voice events&lt;br>Respond to TR-181 requests\n\n    System->>VoiceController: Configuration Update\/Event \u2192 RuntimeStateChange\n    VoiceController->>NetworkMonitor: Process Voice Service Event\n    NetworkMonitor->>NetworkMonitor: Update Service State\n    NetworkMonitor->>VoiceController: State Update Complete\n    VoiceController->>System: State Updated Successfully \u2192 Active\n\n    System->>ErrorHandler: HAL\/Network Error \u2192 ServiceFailure\n    Note right of ErrorHandler: Diagnose Issue\n\n    ErrorHandler->>ErrorHandler: HAL reconnection attempts&lt;br>Service restoration procedures&lt;br>Event notification to subscribers&lt;br>Fallback configuration activation\n\n    alt Recovery Successful\n        ErrorHandler->>System: Recovery Successful \u2192 Active\n    else Partial Recovery\n        ErrorHandler->>System: Partial Recovery \u2192 Degraded\n        Note right of System: Limited voice service operation&lt;br>Reduced functionality mode&lt;br>Continuous recovery attempts\n        System->>System: Full Service Restored \u2192 Active\n    end\n\n    System->>System: Stop Request\/System Shutdown \u2192 Shutdown \u2192 [*]<\/pre><\/div>\n\n\n\n<p><strong>Runtime State Changes and Context Switching<\/strong><\/p>\n\n\n\n<p>The component handles various runtime state changes based on network conditions, voice service requirements, and system events. State transitions are triggered by external events such as network connectivity changes, voice service configuration updates, or hardware status changes.<\/p>\n\n\n\n<p><strong>State Change Triggers:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network connectivity changes triggering SIP re-registration and service availability updates<\/li>\n\n\n\n<li>Voice service configuration updates requiring service restart or parameter validation<\/li>\n\n\n\n<li>HAL interface errors necessitating reconnection attempts and service degradation handling<\/li>\n\n\n\n<li>Voice quality degradation events triggering codec adjustment or call routing changes<\/li>\n\n\n\n<li>Emergency call requirements overriding normal call processing and resource allocation<\/li>\n<\/ul>\n\n\n\n<p><strong>Context Switching Scenarios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switching between IPv4 and IPv6 voice service operation based on network availability and configuration<\/li>\n\n\n\n<li>Transitioning from normal operation to emergency-only mode during system maintenance or failures<\/li>\n\n\n\n<li>Changing voice service profiles dynamically based on time-of-day restrictions or user preferences<\/li>\n\n\n\n<li>Failover to backup SIP servers or alternative voice routing during primary service outages<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"call-flow\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#call-flow\">Call Flow<\/a><\/h3>\n\n\n\n<p><strong>Initialization Call Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Init as System Init\n    participant TelcoVoice as Telco Voice Manager\n    participant RBus as RBus Message Bus\n    participant PandM as PandM\n    participant HAL as Voice HAL\n    participant VendorStack as Vendor Voice Stack\n\n    Init->>TelcoVoice: Start Component\n    TelcoVoice->>TelcoVoice: Load Configuration Files\n    TelcoVoice->>RBus: Register Component &amp; Events\n    RBus-->>TelcoVoice: Registration Successful\n    TelcoVoice->>PandM: Register TR-181 Parameters\n    PandM-->>TelcoVoice: Parameter Registration Complete\n    TelcoVoice->>HAL: Establish JSON HAL Connection\n    HAL->>VendorStack: Initialize Vendor Services\n    VendorStack-->>HAL: Initialization Complete\n    HAL-->>TelcoVoice: HAL Interface Ready\n    TelcoVoice->>TelcoVoice: Provision Voice Services\n    TelcoVoice->>Init: Component Active &amp; Ready<\/pre><\/div>\n\n\n\n<p><strong>Voice Service Request Processing Call Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as TR-181 Client\/PandM\n    participant TelcoVoice as Telco Voice Manager\n    participant HAL as Voice HAL\n    participant VendorStack as Vendor Voice Stack\n    participant SIPServer as SIP Server\n\n    Client->>TelcoVoice: Set Voice Parameter (TR-181)\n    TelcoVoice->>TelcoVoice: Validate Parameter\n    TelcoVoice->>HAL: Send Configuration (JSON)\n    HAL->>VendorStack: Apply Voice Configuration\n    VendorStack->>SIPServer: Update SIP Registration\n    SIPServer-->>VendorStack: Registration Response\n    VendorStack-->>HAL: Configuration Applied\n    HAL-->>TelcoVoice: Success Response\n    TelcoVoice->>TelcoVoice: Update Internal State\n    TelcoVoice-->>Client: Parameter Set Successful\n    TelcoVoice->>RBus: Publish Voice Service Event<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tr181-data-models\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#tr181-data-models\">TR\u2011181 Data Models<\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"supported-tr-181-parameters\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#supported-tr-181-parameters\">Supported TR-181 Parameters<\/a><\/h3>\n\n\n\n<p>The Telco Voice Manager implements comprehensive TR-104 Voice over Internet Protocol data model support following BBF (Broadband Forum) specifications. The implementation provides full compliance with TR-181 Issue 2 Amendment 15 voice service requirements, including custom RDK extensions for enhanced functionality and operator-specific features.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"object-hierarchy\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#object-hierarchy\">Object Hierarchy<\/a><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">Device.\n\u2514\u2500\u2500 Services.\n    \u2514\u2500\u2500 VoiceService.{i}.\n        \u251c\u2500\u2500 Enable (boolean, R\/W)\n        \u251c\u2500\u2500 Status (string, R)\n        \u251c\u2500\u2500 Alias (string, R\/W)\n        \u251c\u2500\u2500 X_RDK_BoundIfName (string, R\/W)\n        \u251c\u2500\u2500 X_RDK_IpAddressFamily (string, R\/W)\n        \u251c\u2500\u2500 X_RDK_Debug.\n        \u2502   \u251c\u2500\u2500 CCTKTraceGroup (string, R\/W)\n        \u2502   \u251c\u2500\u2500 CCTKTraceLevel (string, R\/W)\n        \u2502   \u2514\u2500\u2500 ModuleLogLevels (string, R\/W)\n        \u251c\u2500\u2500 POTS.\n        \u2502   \u251c\u2500\u2500 Region (string, R\/W)\n        \u2502   \u2514\u2500\u2500 FXS.{i}.\n        \u2502       \u251c\u2500\u2500 Enable (boolean, R\/W)\n        \u2502       \u251c\u2500\u2500 Alias (string, R\/W)\n        \u2502       \u251c\u2500\u2500 Name (string, R\/W)\n        \u2502       \u2514\u2500\u2500 VoiceProcessing.\n        \u2502           \u251c\u2500\u2500 ReceiveGain (int, R\/W)\n        \u2502           \u2514\u2500\u2500 TransmitGain (int, R\/W)\n        \u251c\u2500\u2500 SIP.\n        \u2502   \u251c\u2500\u2500 Client.{i}.\n        \u2502   \u2502   \u251c\u2500\u2500 Enable (boolean, R\/W)\n        \u2502   \u2502   \u251c\u2500\u2500 Status (string, R)\n        \u2502   \u2502   \u251c\u2500\u2500 Alias (string, R\/W)\n        \u2502   \u2502   \u251c\u2500\u2500 AuthUserName (string, R\/W)\n        \u2502   \u2502   \u251c\u2500\u2500 AuthPassword (string, R\/W)\n        \u2502   \u2502   \u251c\u2500\u2500 RegisterURI (string, R\/W)\n        \u2502   \u2502   \u2514\u2500\u2500 MaxSessions (unsignedInt, R\/W)\n        \u2502   \u2514\u2500\u2500 Network.{i}.\n        \u2502       \u251c\u2500\u2500 Enable (boolean, R\/W)\n        \u2502       \u251c\u2500\u2500 Status (string, R)\n        \u2502       \u251c\u2500\u2500 Alias (string, R\/W)\n        \u2502       \u251c\u2500\u2500 OutboundProxy (string, R\/W)\n        \u2502       \u251c\u2500\u2500 ProxyServer (string, R\/W)\n        \u2502       \u251c\u2500\u2500 RegistrarServer (string, R\/W)\n        \u2502       \u2514\u2500\u2500 DSCPMark (unsignedInt, R\/W)\n        \u2514\u2500\u2500 CallControl.\n            \u2514\u2500\u2500 Line.{i}.\n                \u251c\u2500\u2500 Enable (boolean, R\/W)\n                \u251c\u2500\u2500 Status (string, R)\n                \u251c\u2500\u2500 Alias (string, R\/W)\n                \u251c\u2500\u2500 DirectoryNumber (string, R\/W)\n                \u2514\u2500\u2500 SIP (string, R\/W)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameter-definitions\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#parameter-definitions\">Parameter Definitions<\/a><\/h3>\n\n\n\n<p><strong>Core Parameters:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code>Device.Services.VoiceService.{i}.Enable<\/code><\/td><td>boolean<\/td><td>R\/W<\/td><td><code>false<\/code><\/td><td>Enable or disable the voice service instance. When false, the voice service is completely disabled and no voice calls can be processed. When true, the service is enabled according to its configuration.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.Status<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"Disabled\"<\/code><\/td><td>Current operational status of the voice service. Enumerated values: &#8220;Disabled&#8221; (service not operational), &#8220;Enabled&#8221; (service operational and ready), &#8220;Error&#8221; (service has encountered a critical error).<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.<strong>Alias<\/strong><\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"cpe-voiceservice-1\"<\/code><\/td><td>Human-readable name for the voice service instance. Used for identification purposes in management interfaces and logging. Maximum length 64 characters.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.POTS.Region<\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"US\"<\/code><\/td><td>Geographic region setting for POTS interface behavior including ring patterns, dial tones, and regulatory compliance. Valid values include country codes like &#8220;US&#8221;, &#8220;UK&#8221;, &#8220;DE&#8221;, &#8220;FR&#8221;.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.SIP.Client.{i}.Enable<\/code><\/td><td>boolean<\/td><td>R\/W<\/td><td><code>false<\/code><\/td><td>Enable or disable individual SIP client instances for voice service registration and call processing.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.SIP.Client.{i}.AuthUserName<\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"\"<\/code><\/td><td>SIP authentication username for client registration with SIP registrar server. Used for SIP REGISTER and INVITE authentication.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.SIP.Network.{i}.ProxyServer<\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"\"<\/code><\/td><td>Primary SIP proxy server hostname or IP address for outbound call routing and SIP message forwarding.<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Services.VoiceService.{i}.SIP.Network.{i}.DSCPMark<\/code><\/td><td>unsignedInt<\/td><td>R\/W<\/td><td><code>26<\/code><\/td><td>Differentiated Services Code Point marking for SIP signaling traffic QoS classification. Range 0-63, default 26 for expedited forwarding.<\/td><td>TR-181 Issue 2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameter-registration-and-access\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#parameter-registration-and-access\">Parameter Registration and Access<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Implemented Parameters<\/strong>: The component implements over 200 TR-181 parameters covering complete voice service functionality including SIP client management, POTS interface control, call control features, and voice quality management<\/li>\n\n\n\n<li><strong>Parameter Registration<\/strong>: All TR-181 parameters are registered with PandM during component initialization using RBus-based parameter registration API with proper namespace allocation and access control<\/li>\n\n\n\n<li><strong>Access Mechanism<\/strong>: External components access voice service parameters through PandM&#8217;s TR-181 interface using standard get\/set operations, with the component receiving parameter requests via RBus messaging<\/li>\n\n\n\n<li><strong>Validation Rules<\/strong>: Comprehensive parameter validation including range checking for numeric values, enumeration validation for string parameters, and cross-parameter dependency validation for consistent voice service configuration<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"internal-modules\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#internal-modules\">Internal Modules<\/a><\/h2>\n\n\n\n<p>The Telco Voice Manager is architected as a collection of specialized modules, each responsible for specific aspects of voice service management. The modular design enables clear separation of concerns while maintaining tight integration between voice service functions and external system interfaces.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Voice Controller<\/strong><\/td><td>Core orchestration module managing overall voice service lifecycle, state transitions, and coordination between SIP and POTS services. Handles voice service enable\/disable operations and maintains service health monitoring.<\/td><td><code>telcovoicemgr_controller.c<\/code>,&nbsp;<code><strong>telcovoicemgr_controller<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>SSP Main Engine<\/strong><\/td><td>Service Specific Platform main engine responsible for component initialization, RBus registration, signal handling, and overall process lifecycle management. Implements systemd integration and component shutdown procedures.<\/td><td><code>telcovoicemgr_ssp_main.c<\/code>,&nbsp;<code><strong>telcovoicemgr_ssp_global<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>Message Bus Interface<\/strong><\/td><td>RBus integration module handling TR-181 parameter registration, event publishing, and inter-component communication. Manages voice service event notifications and parameter change propagation.<\/td><td><code>telcovoicemgr_ssp_messagebus_interface.c<\/code>,&nbsp;<code><strong>telcovoicemgr_ssp_messagebus_interface<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>Network Monitor<\/strong><\/td><td>Network connectivity monitoring module tracking interface status, IP address changes, and network availability for voice services. Triggers SIP re-registration and service adaptation based on network conditions.<\/td><td><code>telcovoicemgr_nw_monitor.c<\/code>,&nbsp;<code><strong>telcovoicemgr_nw_monitor<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>DML Backend Manager<\/strong><\/td><td>Data Model Layer backend management module implementing TR-181 parameter handlers, object instance management, and parameter validation logic. Bridges TR-181 operations with internal voice service management.<\/td><td><code>telcovoicemgr_dml_backendmgr.c<\/code>,&nbsp;<code><strong>telcovoicemgr_dml_backendmgr<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>HAL Interface<\/strong><\/td><td>Hardware Abstraction Layer interface module implementing JSON-based communication with vendor voice stacks. Handles HAL API calls, event subscription, and hardware status monitoring.<\/td><td><code>telcovoicemgr_dml_hal.c<\/code>,&nbsp;<code><strong>telcovoicemgr_dml_hal<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>WebConfig Integration<\/strong><\/td><td>WebPA\/WebConfig framework integration module supporting dynamic configuration updates, bulk parameter operations, and remote provisioning capabilities from service provider systems.<\/td><td><code>telcovoicemgr_webconfig.c<\/code>,&nbsp;<code><strong>telcovoicemgr_webconfig<\/strong>.h<\/code><\/td><\/tr><tr><td><strong>Voice Analytics<\/strong><\/td><td>Telemetry and analytics module collecting voice service metrics, call quality data, and usage statistics for reporting to backend systems and proactive service management.<\/td><td><code>voice_report.c<\/code>,&nbsp;<code><strong>voice_report<\/strong>.h<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"component-interactions\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#component-interactions\">Component Interactions<\/a><\/h2>\n\n\n\n<p>The Telco Voice Manager maintains extensive interactions with both RDK-B middleware components and external voice service systems, utilizing multiple communication protocols and message formats to ensure comprehensive voice service management and seamless integration within the broader RDK-B ecosystem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"interaction-matrix\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#interaction-matrix\">Interaction Matrix<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>RDK-B Middleware Components<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>PandM<\/td><td>TR-181 parameter management, voice service configuration and status reporting<\/td><td><code><strong>Device<\/strong>.Services.VoiceService.*<\/code>&nbsp;parameters, voice service events<\/td><\/tr><tr><td>TR-069 PA<\/td><td>Remote configuration management, ACS-initiated parameter operations, firmware management<\/td><td><code>CCSP_DM_GetParameterValues<\/code>,&nbsp;<code>CCSP_DM_SetParameterValues<\/code>, notification callbacks<\/td><\/tr><tr><td>PSM<\/td><td>Persistent configuration storage, voice service settings persistence, factory reset handling<\/td><td><code>PSM_Get_Record_Value<\/code>,&nbsp;<code>PSM_Set_Record_Value<\/code>, namespace:&nbsp;<code><strong>dmsb<\/strong>.voice.*<\/code><\/td><\/tr><tr><td>WebConfig Framework<\/td><td>Dynamic configuration updates, bulk parameter operations, remote provisioning<\/td><td>WebConfig subdoc registration,&nbsp;<code>voice<\/code>&nbsp;subdocument processing<\/td><\/tr><tr><td>RBus Message Bus<\/td><td>Event publishing, inter-component notifications, parameter change events<\/td><td>Event topics:&nbsp;<code><strong>Device<\/strong>.Services.VoiceService.StatusChange<\/code>,&nbsp;<code>VoiceCallEvents<\/code><\/td><\/tr><tr><td><strong>System &amp; HAL Layers<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>Voice HAL<\/td><td>Hardware control, voice service configuration, call processing, event subscription<\/td><td><code>getParameters<\/code>,&nbsp;<code>setParameters<\/code>,&nbsp;<code>subscribeEvent<\/code>, HAL schema validation<\/td><\/tr><tr><td>Platform Services<\/td><td>System integration, network interface monitoring, systemd service management<\/td><td><code>\/<strong>proc<\/strong>\/net\/route<\/code>, systemd service control, network interface events<\/td><\/tr><tr><td><strong>External Systems<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>SIP Servers\/Registrars<\/td><td>SIP registration, call signaling, session management, presence services<\/td><td><code><strong>REGISTER<\/strong><\/code>,&nbsp;<code>INVITE<\/code>,&nbsp;<code>BYE<\/code>,&nbsp;<code>OPTIONS<\/code>, authentication challenges<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Main events Published by Telco Voice Manager:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>VoiceServiceStatusChange<\/td><td><code><strong>Device<\/strong>.Services.VoiceService.StatusChange<\/code><\/td><td>Voice service enable\/disable, initialization complete, error conditions<\/td><td>PandM, TR-069 PA, WebConfig Framework, diagnostic components<\/td><\/tr><tr><td>SIPRegistrationEvent<\/td><td><code><strong>Device<\/strong>.Services.VoiceService.SIP.RegistrationEvent<\/code><\/td><td>SIP client registration success\/failure, periodic re-registration<\/td><td>Network management, service monitoring, analytics components<\/td><\/tr><tr><td>VoiceCallEvent<\/td><td><code><strong>Device<\/strong>.Services.VoiceService.CallEvent<\/code><\/td><td>Call initiation, termination, state changes, call quality events<\/td><td>Billing systems, analytics, call detail record processors<\/td><\/tr><tr><td>HALConnectionEvent<\/td><td><code><strong>Device<\/strong>.Services.VoiceService.HALStatus<\/code><\/td><td>HAL interface connection\/disconnection, hardware errors<\/td><td>System health monitoring, maintenance systems<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ipc-flow-patterns\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#ipc-flow-patterns\">IPC Flow Patterns<\/a><\/h3>\n\n\n\n<p><strong>Primary IPC Flow &#8211; SIP Client Configuration Update:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: { \"config\": { \"useMaxWidth\": false } }}%%\nsequenceDiagram\n    participant WebUI as Web Management UI\n    participant PandM as PandM\n    participant TelcoVoice as Telco Voice Manager\n    participant HAL as Voice HAL\n    participant VendorStack as Vendor Voice Stack\n    participant SIPServer as SIP Server\n\n    WebUI->>PandM: Set SIP Client Parameters (TR-181)\n    PandM->>TelcoVoice: RBus Parameter Set Request\n    TelcoVoice->>TelcoVoice: Validate Configuration\n    TelcoVoice->>HAL: JSON HAL setParameters Request\n    HAL->>VendorStack: Vendor API Configuration Call\n    VendorStack->>SIPServer: SIP REGISTER with new parameters\n    SIPServer-->>VendorStack: 200 OK Registration Response\n    VendorStack-->>HAL: Configuration Applied Successfully\n    HAL-->>TelcoVoice: JSON Response (success)\n    TelcoVoice->>RBusCore: Publish SIP Registration Event\n    TelcoVoice-->>PandM: Parameter Set Response (success)\n    PandM-->>WebUI: Configuration Update Successful<\/pre><\/div>\n\n\n\n<p><strong>Event Notification Flow &#8211; Voice Service State Change:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: { \"config\": { \"useMaxWidth\": false } }}%%\nsequenceDiagram\n    participant HAL as Voice HAL\n    participant TelcoVoice as Telco Voice Manager\n    participant RBusCore as RBus Message Bus\n    participant PandM as PandM\n    participant TR069 as TR-069 PA\n    participant Analytics as Voice Analytics\n\n    HAL->>TelcoVoice: JSON HAL Event (Service Status Change)\n    TelcoVoice->>TelcoVoice: Process Status Change\n    TelcoVoice->>RBusCore: Publish Voice Service Status Event\n    RBusCore->>PandM: Event Notification\n    RBusCore->>TR069: Event Notification\n    RBusCore->>Analytics: Event Notification\n    PandM->>TelcoVoice: Request Current Parameter Values\n    TelcoVoice-->>PandM: Updated Parameter Values\n    TR069->>TelcoVoice: ACS Notification Request\n    TelcoVoice-->>TR069: Status Report Data\n    Analytics->>TelcoVoice: Request Detailed Metrics\n    TelcoVoice-->>Analytics: Voice Service Analytics Data<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"implementation-details\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#implementation-details\">Implementation Details<\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"major-hal-apis-integration\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#major-hal-apis-integration\">Major HAL APIs Integration<\/a><\/h3>\n\n\n\n<p>The Telco Voice Manager integrates with the Voice Hardware Abstraction Layer through a comprehensive JSON-based API that provides vendor-agnostic access to voice hardware capabilities. The HAL integration supports both synchronous parameter operations and asynchronous event subscription for real-time voice service management.<\/p>\n\n\n\n<p><strong>Core HAL APIs:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code>getParameters<\/code><\/td><td>Retrieve voice service configuration and status parameters from vendor voice stack<\/td><td>JSON array of parameter names, schema version, timeout specifications<\/td><td>JSON response with parameter values, types, and status codes<\/td><td><code>telcovoicemgr_dml_hal.c<\/code><\/td><\/tr><tr><td><code>setParameters<\/code><\/td><td>Configure voice service parameters including SIP settings, POTS configuration, and call control options<\/td><td>JSON array of parameter name\/value\/type objects with validation requirements<\/td><td>Success\/failure status, validation errors, applied parameter confirmation<\/td><td><code>telcovoicemgr_dml_hal.c<\/code><\/td><\/tr><tr><td><code>subscribeEvent<\/code><\/td><td>Subscribe to real-time voice service events including call state changes, registration events, and hardware status<\/td><td>Event topic names, subscription types (onChange, periodic), timeout configurations<\/td><td>Subscription confirmation, event delivery method, error conditions<\/td><td><code>telcovoicemgr_controller.c<\/code><\/td><\/tr><tr><td><code>getSchema<\/code><\/td><td>Retrieve HAL schema definition for parameter validation and capability discovery<\/td><td>Schema version request, supported feature queries<\/td><td>JSON schema document, supported parameter list, capability matrix<\/td><td><code>telcovoicemgr_dml_hal.c<\/code><\/td><\/tr><tr><td><code>deleteObject<\/code><\/td><td>Remove dynamic voice service objects such as SIP clients or call control lines<\/td><td>Object instance identifiers, deletion scope, dependency validation<\/td><td>Deletion status, affected parameter list, cleanup confirmation<\/td><td><code>telcovoicemgr_dml_backendmgr.c<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-implementation-logic\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#key-implementation-logic\">Key Implementation Logic<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>State Machine Engine<\/strong>: The core voice service state management is implemented in\u00a0<code>telcovoicemgr_controller.c<\/code>\u00a0with comprehensive state transition logic handling initialization, active service operation, error recovery, and graceful shutdown procedures. State machine implementation includes voice service lifecycle management from disabled to active states, SIP registration state tracking, and POTS interface status management. State transition handlers in\u00a0<code>telcovoicemgr_dml_backendmgr.c<\/code>\u00a0coordinate parameter validation, HAL communication, and event publishing during state changes.<\/li>\n\n\n\n<li><strong>Event Processing<\/strong>: Hardware and network events are processed through an asynchronous event handling system that maps voice hardware events to appropriate state changes and external notifications. Event subscription management maintains active subscriptions to HAL events, network interface changes, and configuration updates. Event correlation logic links related voice service events and prevents duplicate notifications during rapid state transitions. Asynchronous event processing ensures real-time responsiveness while maintaining system stability during high-frequency event scenarios.<\/li>\n\n\n\n<li><strong>Error Handling Strategy<\/strong>: Comprehensive error detection and recovery mechanisms are implemented throughout the voice service management lifecycle with automatic recovery procedures and graceful degradation capabilities. HAL communication errors trigger automatic reconnection attempts with exponential backoff algorithms to prevent system overload. Configuration validation errors provide detailed error reporting with parameter-specific validation failure information. Timeout handling and retry logic ensure robust operation during network instability or vendor stack temporary failures.<\/li>\n\n\n\n<li><strong>Logging &amp; Debugging<\/strong>: Multi-level logging system with configurable verbosity levels and component-specific debug categories enables comprehensive troubleshooting and system monitoring. Voice service event logging includes call detail records, SIP message tracing, and hardware interaction logging. Debug trace categories allow selective logging of SIP protocol messages, HAL API interactions, and internal state transitions. Debug hooks for troubleshooting connectivity issues include network diagnostic information and SIP registration analysis tools.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-configuration-files\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988738\/Telco+Voice+Manager#key-configuration-files\">Key Configuration Files<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code><strong>telcovoice_config_default_v2<\/strong>.json<\/code><\/td><td>Default voice service configuration template with SIP and POTS settings<\/td><td>WebConfig updates, TR-069 provisioning<\/td><\/tr><tr><td><code><strong>telcovoice_manager_conf<\/strong>.json<\/code><\/td><td>Component-specific configuration including HAL connection settings and logging<\/td><td>Environment variables, runtime parameter updates<\/td><\/tr><tr><td><code><strong>RdkTelcoVoiceManager_v2<\/strong>.xml<\/code><\/td><td>TR-181 data model definitions and parameter metadata<\/td><td>Build-time configuration, DISTRO feature flags<\/td><\/tr><tr><td><code><strong>telcovoice_hal_schema_v2<\/strong>.json<\/code><\/td><td>HAL API schema definition for parameter validation and capability discovery<\/td><td>Vendor-specific schema extensions, HAL version updates<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Telco Voice Manager is the RDK-B middleware component that provides voice service management capabilities for [&hellip;]<\/p>\n","protected":false},"author":659,"featured_media":0,"parent":9575,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-12704","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Telco Voice Manager - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Telco Voice Manager - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"Telco Voice Manager is the RDK-B middleware component that provides voice service management capabilities for [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-17T10:08:37+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/\",\"name\":\"Telco Voice Manager - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2026-02-17T07:26:14+00:00\",\"dateModified\":\"2026-02-17T10:08:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Telco Voice Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Telco Voice Manager - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/","og_locale":"en_US","og_type":"article","og_title":"Telco Voice Manager - RDK Documentation Portal | Documentation","og_description":"Telco Voice Manager is the RDK-B middleware component that provides voice service management capabilities for [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-02-17T10:08:37+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/","name":"Telco Voice Manager - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2026-02-17T07:26:14+00:00","dateModified":"2026-02-17T10:08:37+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/telco-voice-manager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"Telco Voice Manager"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/659"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=12704"}],"version-history":[{"count":1,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12704\/revisions"}],"predecessor-version":[{"id":12705,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12704\/revisions\/12705"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9575"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=12704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}