e95271e694be1c8eea9cf48e1e2bea611b233ec9
/api/paging-groups CRUD (members as memberIds). The generator renders
sp-page-{id} per 03 §6.11 (desk phones only, auto-answer headers via
sp-sub-autoanswer) plus the number in sp-local-numbers. Added the `s`
option so phones already on a call aren't paged, which also keeps a
pager who is a member from being paged themselves. A group with no
members just hangs up.
*80<ext> intercom checks the target first: digits only and an endpoint
in sp-from-ext, else ss-noservice (the spec's one-liner passed
${EXTEN:3} straight into Page()). Both written back into 03.
Web: Paging page (list, drawer form with member checkboxes). Golden
case paging. e2e m8-t4 with baresip phones that honor the headers
(sip_autoanswer): an ordinary call rings, a page is answered by itself
and muted, the busy pager is skipped, *80 is two-way, *80999 refused.
The check on a real Yealink/Grandstream stays open (09).
Task: M8-T4
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.
- Start here if you are writing code (human or AI):
AGENTS.md - The full spec:
docs/spec/ - Build order:
docs/spec/09-roadmap.md
License: AGPL-3.0-or-later.
Description
Open source, self hosted alternative for 3cx
https://github.com/iamdoubz/selfphoneng
9.2 MiB
0 Stars
1 Watchers
0 Forks
Languages
TypeScript
83.9%
JavaScript
15%
Shell
0.7%
Dockerfile
0.3%