genieACS-projects/README.md

2.8 KiB

genieACS Projects

A collection of extensions and provisioning scripts for genieACS — an open-source TR-069/TR-369 ACS (Auto Configuration Server) for managing CPE devices at scale.


Overview

This repository contains scripts that automate device configuration through the genieACS platform, targeting TP-Link ONU (Optical Network Unit) hardware. The scripts are structured around the two main genieACS script types: extensions (server-side helper functions) and provisions (device-lifecycle automation).


Repository Structure

genieACS-projects/
├── extensions/
│   └── TPLink-ONU-VOIP-mapping.js      # API helper: resolves VOIP VLAN name by device ID
└── provisions/
    └── TPLink-ONU-VOIP-binding-fix.js  # Provision: binds VOIP VLAN interface on TP-Link ONUs

Scripts

A genieACS extension that exposes a helper callable from any provision script.

What it does:

  • Queries the genieACS NBI (Northbound Interface) REST API for a given device ID
  • Retrieves all Device.Ethernet.VLANTermination.* instances from the device's parameter tree
  • Finds the VLAN termination entry where VLANID = 20 (the designated VOIP VLAN)
  • Returns the Name of that termination (e.g. "veip0.20") for use downstream

Key config:

Variable Default Description
GENIEACS_URL http://10.5.2.111:7557 Base URL of the genieACS NBI

A genieACS provision script that runs during the inform cycle of TP-Link XX230v ONU devices.

What it does:

  1. Declares and caches the device's VLAN termination data (VLANID + Name properties)
  2. Calls the TPLink-ONU-VOIP-mapping extension to resolve the correct VOIP interface name
  3. Writes the resolved name to both VOIP binding parameters on the device:
    • Device.Services.VoiceService.1.X_TP_BoundIfName
    • Device.X_TP_Services.X_TP_VoiceService.1.BoundIfName

This ensures VOIP traffic is always bound to the correct VLAN interface, even after resets or re-provisioning.


Protocol Background

Term Meaning
TR-069 Broadband Forum standard for CPE remote management over CWMP
genieACS Open-source ACS implementing TR-069; manages device parameters via provisions and extensions
ONU Optical Network Unit — the customer-side fiber termination device
VLAN Virtual LAN; used here to segment VOIP traffic onto a dedicated logical interface
NBI genieACS Northbound Interface — the REST API used by extensions to query device data

Requirements

  • A running genieACS instance
  • Axios available in the genieACS extension environment
  • TP-Link XX230v ONU devices managed by the ACS