iamdoubz 15624f7b77 ivrs: digital receptionist with keypad grid, SoundPicker, golden case
/api/ivrs CRUD: greeting and wrong-key sounds must be prompts, every
option destination must exist (an option may point at its own menu),
keys unique; delete drops the menu's own options before checking
references, inside a transaction so a refused delete keeps them. The
generator renders sp-ivr-{id} per 03 §6.9 (Background greeting,
WaitExten, keys sorted, i/t retry then give up, include sp-local-numbers
for direct dial), adds the number to sp-local-numbers, and destApp sends
ivr destinations there. Golden case ivr (incl. # and self-reference).

Web: Digital receptionist page with a 3x4 keypad grid (pick a key, then
its destination or "unused"), SoundPicker (pick, play, upload new right
in the form), DestinationPicker gains "Digital receptionist" and a shared
target source; useDescribeDestination labels unsaved keys.

e2e m6-t3: menu built in the UI, the greeting plays, keys 1/2 ring the
right phones, a wrong key plays pbx-invalid and repeats the greeting.

Task: M6-T3
2026-10-18 10:39:13 -05:00
2026-10-17 22:34:01 -05:00
2026-10-17 14:11:09 -05:00
2026-10-17 14:11:09 -05:00
2026-10-17 14:11:09 -05:00

SelfPhoneNG

A fully open source, self-hosted business phone system: extensions, desk phones and a browser softphone, voicemail to email, IVRs, ring groups, queues, office hours, call recording, live dashboard, SMS and phone provisioning. Bring your own SIP trunk and numbers (reference provider: voip.ms). Built on Asterisk 24 LTS + TypeScript + PostgreSQL 18.

Status: specification stage. Nothing is built yet.

License: AGPL-3.0-or-later.

S
Description
Open source, self hosted alternative for 3cx
https://github.com/iamdoubz/selfphoneng
Readme AGPL-3.0
9.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 83.9%
JavaScript 15%
Shell 0.7%
Dockerfile 0.3%