@nakdev-npm/novanode
v1.1.0
Published
NovaNode Asterisk telephony DevKit and Claude/Codex usage TUI
Maintainers
Readme
NovaNode Telephony DevKit
See PARTNER_MANUAL.md for the complete lab setup, operation, troubleshooting, and npm release guide.
nn is a terminal development station for the NovaNode Asterisk lab. It combines PBX status, a baresip controller, calls, trunks, AMI events, diagnostics, automated test calls, and Claude/Codex usage in one TUI.
The old NovaNode chat has been removed. The usage dashboard contains Claude Code and Codex CLI only.
Run From This Repo
No installation or sudo is required:
./bin/nn --help
./bin/nn pbx detect
./bin/nn pbx doctor
./bin/nn pbx
./bin/nn pbx phoneRun the first operational lab test with:
./bin/nn pbx test-callThis exercises the established route: baresip → nn-pbx TLS 5061 → extension 3000 → LiveKit SIP → room → bbva-lab-local agent.
To make nn available in the current shell:
export PATH="$PWD/bin:$PATH"
nn pbx doctorOr link it into a user-owned bin directory:
mkdir -p "$HOME/.local/bin"
ln -sf "$PWD/bin/nn" "$HOME/.local/bin/nn"
export PATH="$HOME/.local/bin:$PATH"Commands
nn Open the PBX TUI
nn usage Open the usage tab
nn pbx Open the PBX tab
nn pbx setup Detect, propose, back up, confirm, and configure AMI
nn pbx detect Inspect Asterisk/PJSIP over SSH
nn pbx doctor Validate the six lab sections
nn pbx phone Control baresip on Fedora
nn pbx test-call Test extension 3000 through LiveKit
nn calls Show active channels
nn trunks Show outbound registrations
nn debug Show AMI/debug statenn-pbx is a convenience alias for nn pbx. novanode remains only as a compatibility alias to nn; it no longer contains chat functionality.
Lab Model
- Fedora Workstation hosts KVM and baresip.
- The
nn-pbxDebian VM runs Asterisk 22.10.1 withchan_pjsip. - Network SIP enters on TLS
5061; UDP5060is loopback-only. - LiveKit uses outbound TLS transport
5062and an ulaw SIP leg. - RTP is anchored on Asterisk in
20000-20999/udpwith SDES-SRTP. - Local endpoints are
1001,1002, and2000;3000routes to LiveKit. - AMI is restricted to
127.0.0.1:5038and reached through an SSH tunnel. - ARI remains disabled.
Setup Safety
nn pbx setup detects before changing anything. It shows a proposal, requires confirmation, backs up manager.conf to manager.conf.novanode-bak, and writes a separate manager_novanode.conf include owned by NovaNode.
It does not modify PJSIP transports, endpoints, the [from-nn] dialplan, RTP settings, or LiveKit configuration.
Secrets are never stored in this repository. Local credentials use ~/.config/novanode/secrets.json with mode 0600, or these environment variables:
export NOVANODE_AMI_SECRET='...'The baresip phone adapter expects a running baresip process on Fedora with ctrl_tcp listening on loopback port 4444. Configure its Fedora SSH host during nn pbx setup.
Usage Dashboard
./bin/nn-usage
./bin/nn-usage --summary-tsv
./bin/nn-usage --jsonOnly Claude Code and Codex CLI are queried.
Requirements
- Python 3.9+
- OpenSSH client and key-based access to the lab hosts
- A terminal with curses support
- baresip with loopback-only
ctrl_tcpfor real phone controls
Install
npm install -g @nakdev-npm/novanodeHomebrew releases also install nn, nn-pbx, nn-usage, and the novanode compatibility alias.
License
MIT. See LICENSE.
