admin: System page with restart steps, Record calls on the Calling tab
System shows whether telephony runs and needs a restart, and how to restart it (docker compose restart asterisk); the dashboard's restart warning, the Network hint and the public IP email point there. The user drawer's Calling tab gets the Record calls select the spec listed (recordMode, already in the dialplan). e2e m11-system.mjs. Task: M11-T7
This commit is contained in:
1 parent
324f9d9fe2
commit
a1525088dc
13 files changed
+322
-30
No files matched your search
@@ -73,14 +73,18 @@ Recording calls without the right consent can be a crime. In the US:
|
||||
|
||||
- **Nothing is recorded unless you turn it on.** You can record:
|
||||
- every call to a number (**Phone numbers → Record every call**);
|
||||
- a queue's calls (the queue's **Record calls** switch).
|
||||
- a queue's calls (the queue's **Record calls** switch);
|
||||
- one person's calls with outside numbers (Users & Extensions → the user → **Calling** →
|
||||
**Record calls**: calls from outside, calls to outside, or both).
|
||||
The setup wizard never turns recording on.
|
||||
- **Settings → Recording → "Notice played before a recorded call"** plays a sound you upload
|
||||
(e.g. "This call may be recorded for quality and training") to everyone who calls a number set
|
||||
to record, before anything else. Upload it on **Sounds & music**.
|
||||
- **Queue recordings play no notice of their own.** If you record a queue, send its callers
|
||||
through a number that plays the notice, or through an announcement that says it
|
||||
(**Sounds & music → Announcements**: play a sound, then go to the queue).
|
||||
- **Queue and per-person recordings play no notice of their own.** Only numbers set to record
|
||||
play it. If you record a queue or a person, make sure the callers still hear it: send them through
|
||||
a number that plays the notice, or through an announcement that says it (**Sounds & music →
|
||||
Announcements**: play a sound, then go on). For calls a person makes to the outside, tell them to
|
||||
say the call is recorded.
|
||||
- **Retention.** Recordings and voicemail are deleted after the number of days you set there.
|
||||
0 keeps them.
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ the wrong place.
|
||||
("Public IP changed to …").
|
||||
- **Then restart telephony** so Asterisk uses the new address: on the server, run
|
||||
`docker compose restart asterisk` (calls in progress drop). The dashboard shows "SIP port or
|
||||
transport changes need a telephony restart" until you do.
|
||||
transport changes need a telephony restart" until you do, and **System** shows the command.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -128,7 +128,8 @@ nobody is on a call:
|
||||
docker compose restart asterisk
|
||||
```
|
||||
|
||||
The banner goes away a few seconds after Asterisk is back.
|
||||
The admin page **System** shows the same command. It says "Restart: Not needed" and the banner
|
||||
goes away a few seconds after Asterisk is back.
|
||||
|
||||
## Locked out
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ Left sidebar navigation, in this order:
|
||||
| Page | Path | Contents |
|
||||
|---|---|---|
|
||||
| Dashboard | `/admin` | Cards: trunks (registered?), extensions online/total, active calls, calls today, missed today, voicemails waiting, disk free. Live call list (from, to, state, duration ticking, recording dot; admin buttons Hang up / Transfer / Listen). Queue tiles (waiting, longest wait, agents available). Warnings banner (restart required, SMTP not set, E911 caller ID not set, trunk down) |
|
||||
| Users & Extensions | `/admin/users` | Table: number, name, email, role, online (contacts count + state dot), DND, devices. Create/edit drawer with tabs: **General** (name, email, role, number with "next free" button), **Phone** (ring seconds, webrtc on/off, pickup group, BLF numbers multiselect, language, MOH class), **Voicemail** (enabled, PIN, email options), **Calling** (outbound class, outbound caller ID DID, recording mode), **Emergency** (E911 caller ID DID, location text), **Credentials** (SIP username/server/password reveal, regenerate, softphone QR), **Forwarding** (current DND/CFU/CFB/CFNA, editable) |
|
||||
| Users & Extensions | `/admin/users` | Table: number, name, email, role, online (contacts count + state dot), DND, devices. Create/edit drawer with tabs: **General** (name, email, role, number with "next free" button), **Phone** (ring seconds, webrtc on/off, pickup group, BLF numbers multiselect, language, MOH class), **Voicemail** (enabled, PIN, email options), **Calling** (outbound class, outbound caller ID DID, recording mode), **Emergency** (E911 caller ID DID, location text), **Credentials** (SIP username/server/password reveal, regenerate, softphone QR), **Forwarding** (current DND/CFU/CFB/CFNA, editable). As built (owner follow-up to M11-T7, 2026-10-20): the Calling tab's recording mode was missing until then; it is a **Record calls** select (Never, Calls from outside, Calls to outside, All outside calls = `recordMode` never/inbound/outbound/all). Calls inside the company are never recorded, and no recording notice plays for it (only numbers set to record play one) |
|
||||
| Trunks | `/admin/trunks` | List with status pill. Form: provider (voip.ms / generic). Choosing voip.ms pre-fills port, transport, codecs and shows a POP server dropdown (06 §2) plus the voip.ms-side checklist. Test button. API credentials (optional) + "Import DIDs" |
|
||||
| Phone numbers (DIDs) | `/admin/numbers` | Table: number, label, trunk, destination summary ("→ IVR Main menu"), SMS on/off. Form: number, label, trunk, **DestinationPicker**, caller-name prefix, record inbound, SMS enabled + users allowed |
|
||||
| Outbound rules | `/admin/outbound` | Sortable list (drag to reorder). Form: name, patterns (rows of match/strip/prepend with a pattern help popover), required class, trunk order (multi-select with order), caller ID override. **Test box**: pick an extension + type a number → shows the matching route, final dialed number, trunk, caller ID, or the reason it's denied |
|
||||
@@ -48,7 +48,7 @@ Left sidebar navigation, in this order:
|
||||
| SMS | `/admin/sms` | Same UI as the user one, with all DIDs |
|
||||
| Blocked numbers | `/admin/blocked` | |
|
||||
| Settings | `/admin/settings` | Tabs: General, Network (public IP detect, LAN IP, local nets, STUN/TURN), SIP (ports, TCP/TLS), Numbering ranges, Email (SMTP + test), Voicemail, Recording (retention, announcement sound + **legal notice text, 08 §5**), Emergency (default E911 caller ID, notify emails/extensions + a **test notification** button that does NOT dial 911), Backups (schedule, keep, include recordings, list + download + "Back up now"), Webhooks, API tokens |
|
||||
| System | `/admin/system` | Status JSON pretty-printed, Asterisk version, generator runs list, "Apply config now", "Rollback", "Restart telephony", generated-files viewer (read-only, masked), allowlisted CLI dropdown (04 §7.3) with output panel, audit log |
|
||||
| System | `/admin/system` | Status JSON pretty-printed, Asterisk version, generator runs list, "Apply config now", "Rollback", "Restart telephony", generated-files viewer (read-only, masked), allowlisted CLI dropdown (04 §7.3) with output panel, audit log. As built (owner follow-up to M11-T7, 2026-10-20): only telephony status (AMI connected, restart needed) and how to restart (`docker compose restart asterisk` on the server; no restart button). The dashboard's `restart_required` warning links here. The rest of this row isn't built; the admin guide's troubleshooting page covers it from the shell |
|
||||
|
||||
### 2.1 First-run setup wizard (`/setup`)
|
||||
|
||||
|
||||
Reference in new issue
Block a user