aivoice.tech
AIVOICE-PBX(1)aivoice.tech manualv1.0 · 2026-11-01

NAME

aivoice-pbx - a complete SIP phone system in one file, set up by chatting in plain English. At 194KB with no dependencies, it may be the smallest PBX in the world.

SYNOPSIS

start.bat                              # Windows: double-click
sudo bash aivoice-pbx-linux.sh         # Linux, Raspberry Pi
node aivoice-pbx.js [--ip addr] [--sip-port n] [--http-port n]
                    [--data folder] [--no-browser]

DOWNLOAD

fileforsizesha-256
aivoice-pbx-1.0-windows.zipWindows 10 / 1162Kda7046c559e013cf044bef44144858861018386a498b1aea7193b6f43df82806
aivoice-pbx-linux.shLinux, Raspberry Pi204Kf7957a13f25aea2e6ffa544aeb0e1a2f492b8090d01a90aa68b97319c0faaace
aivoice-pbx.jsmacOS, or any OS with Node.js194K894ae3bbcbb79275743a35b78626cb12707f26b4742eb003724ca72c10e96d31

All checksums in one file: SHA256SUMS.txt. Files are only ever served from aivoice.tech over HTTPS.

VERIFY

Before running anything you downloaded, check that its SHA-256 matches the table above. If it doesn't match, delete the file.

Windows (PowerShell)

Get-FileHash .\aivoice-pbx-1.0-windows.zip -Algorithm SHA256

Linux / macOS

sha256sum -c SHA256SUMS.txt --ignore-missing   # macOS: shasum -a 256 -c

INSTALL: WINDOWS 10 / 11

  1. Unzip aivoice-pbx-1.0-windows.zip into a folder of its own, for example Documents\aiVoice PBX.
  2. Double-click start.bat. If Node.js is missing it installs it with winget, or opens nodejs.org for you.
  3. Windows may warn that the file came from the internet. Check the SHA-256 first, then choose Run.
  4. When Windows Firewall asks, click Allow access so phones on your network can reach it.
  5. The chat opens at http://localhost:8080. Keep the black window open; close it to stop the PBX.

INSTALL: LINUX / RASPBERRY PI

sudo bash aivoice-pbx-linux.sh                 # install or update, then start
sudo bash aivoice-pbx-linux.sh --local-only    # chat page only on that machine
sudo bash aivoice-pbx-linux.sh uninstall       # add --purge to delete data too

It installs Node.js and a voice for prompts if they're missing, opens the firewall ports, runs the PBX as the aivoice-pbx service under its own user, and prints the chat address, its admin password and the phone logins. Works on Debian, Ubuntu, Raspberry Pi OS, Fedora, RHEL, Arch, openSUSE and Alpine.

Read the script before you run it as root. It is plain text, and it doesn't fetch anything except Node.js (from nodejs.org, checked against its SHA-256) and packages from your own distribution.

INSTALL: MACOS

Install Node.js from nodejs.org, then in Terminal, in the folder with the file:

node aivoice-pbx.js

CONNECT A PHONE

Any SIP softphone works: MicroSIP on Windows, Zoiper or Linphone on a mobile, or a desk IP phone. Put it on the same network and add an account:

SIP server / domainyour PC's address, shown in the chat (ask what is the ip)
Usernamethe extension number, e.g. 101
Passwordask the chat: what is the password for 101
TransportUDP, port 5060

Extensions 101 (Alice) and 102 (Bob) exist from the start. Dial *43 for an echo test, or call the other extension.

CHAT

Type what you want. These are examples, not fixed commands; other wordings work too.

add extension 104 for Dave            forward 102 to 103 when busy
create ring group 600 called Sales with 101 102 103
make a menu on 500: press 1 for sales, 2 for bob
create conference room 800 with pin 4321
record all calls                      set voicemail pin for 101 to 2468
add trunk host sip.provider.com user 12345 password secret
show IP addresses                     undo                 help

CLAUDE MODE (OPTIONAL)

Optional, and off by default. Every feature works without it; the built-in English reader needs no internet and no account. With your own Anthropic API key, the PBX passes your chat messages to Claude, which turns them into PBX changes. Long, loosely worded or multi-step requests work, for example a whole office described in one message.

  1. Sign in at console.anthropic.com, add billing, and create an API key under API Keys.
  2. In the PBX chat, type use AI with key sk-ant-… and paste your key.
  3. Talk normally. Each reply comes from Claude; if Claude can't be reached, the built-in reader answers and says so.
use AI with key sk-ant-...                 # save the key and switch Claude mode on
set the claude model to claude-opus-5-5    # default: claude-sonnet-5-5
turn off AI  /  turn on claude             # switch without losing the key
remove the AI key                          # delete the key from this computer

What Claude sees

  • Your message, the conversation so far, and the PBX setup (extensions, groups, menus, forwarding) with phone passwords, PINs, the trunk password and your key replaced by "(set)".
  • Answers that contain a password, like a new extension's login or "show the password for 101", pass through Claude. Turn AI off first if you'd rather they didn't.
  • Requests go straight from your computer to api.anthropic.com over HTTPS. There is no aivoice.tech server in between.

What Claude can do

  • Only the PBX's own changes: extensions, forwarding, groups, queues, menus, conference rooms, recording, the outside line, settings, undo. It cannot run programs, read files or reach anything else on your computer.
  • Deleting voicemail or recordings still needs your confirmation in the chat.

Cost: Anthropic charges your account per request at its published API prices. A typical setup message is small. You can set a monthly spend limit in the Anthropic console.

FEATURE CODES

dialdoes
*97your voicemail
*98any voicemail box (asks for box and PIN)
*43echo test
*78 / *79do not disturb on / off
*72number / *73forward all calls / cancel forwarding
*65hear your extension number

NETWORK

portused foropen to
5060/udpSIP: phones log in and set up callsyour network
10000-10999/udpRTP: the audioyour network
8080/tcpchat & switchboard pagethis computer only, unless you allow it

The PBX picks your PC's address by itself. To see or change it: show IP addresses, use IP 192.168.1.25, use the Wi-Fi address, use automatic IP. If a port is busy it moves to the next free one and tells you.

SECURITY

Don't forward port 5060 from your router to the internet.

Automated scanners find open phone systems within minutes and try to make paid calls through them. For phones outside your home or office, connect them over a VPN such as WireGuard or Tailscale.

  • The chat page only opens on the computer running the PBX. To use it from another computer, say allow remote access with password …; it then asks for that password.
  • Every phone logs in with its own random 10-character password (SIP digest).
  • Nothing is sent anywhere unless you set up an outside line or Claude mode: no telemetry, no update checks, no accounts. Claude mode talks only to api.anthropic.com, with your passwords and PINs hidden.
  • Settings, voicemail and recordings stay in the pbx-data folder next to the program.
  • Calls are not encrypted (no TLS or SRTP). That's fine on your own network; it is another reason not to expose it to the internet.
  • Passwords, PINs and API keys typed into the chat are hidden in the activity log.

REQUIREMENTS & LIMITS

  • Node.js 14 or newer. Windows 10/11 (64-bit), any current Linux, macOS. Not Windows 7/8.
  • UDP only, G.711 audio (PCMU/PCMA). Every softphone supports it.
  • Built for homes, small offices and labs: tens of calls at once, hundreds of extensions.
  • Spoken prompts use the computer's own voice (Windows speech, macOS say, espeak on Linux); otherwise beeps.

SEE ALSO

top