destinations: full picker everywhere, numbers in summaries, Ring everyone

The DestinationPicker now offers every type that exists (user, voicemail,
ring group, digital receptionist, office hours, announcement, outside
number, hang up) on every page that routes calls; queues and
conferences join in M8. API summaries show the number of dialable
targets ("Ring group Sales (500)", 05 §3). Wizard step 8 gains "Ring
everyone": it creates or refreshes a ring group "Everyone" of all
extensions (unanswered → the first user's voicemail); an IVR isn't
created there because it needs a recorded greeting. m3-t5 now routes
the main number through "Ring everyone" and still passes.

Task: M6-T6
This commit is contained in:
iamdoubz committed 2026-10-18 11:04:42 -05:00
1 parent dd640b368b
commit d746772b97
7 files changed
+72 -22

No files matched your search

+7 -1
View File
@@ -73,7 +73,10 @@ Implementation notes (M3):
(`POST /api/system/asterisk/restart?now=true`). `restartRequired` clears on the next AMI
connect once Asterisk's uptime shows it started after the change.
- M3 also ships steps 7 and 8 because "calls work using only the wizard" needs a user and a
routed number. Step 8 offers a user or an outside number; "everyone" and "an IVR" arrive in M6.
routed number. Step 8 has the full DestinationPicker plus a **Ring everyone** button (M6-T6), which
creates or refreshes a ring group "Everyone" with every extension (unanswered → the
lowest-numbered user's voicemail). It does not create an IVR: that needs a recorded greeting,
so the step points to Digital receptionist instead.
Step 10 does not mention *43 or the softphone until M6/M5 build them.
- The first phone number added becomes `routing.defaultCallerIdDidId` when none is set.
@@ -82,6 +85,9 @@ Implementation notes (M3):
- **DestinationPicker**: a type select (User, Voicemail of user, Ring group, Queue,
IVR, Office hours, Conference, Announcement, External number, Hang up), then a
searchable target select or a number input. The value is a `Destination` object (02 §1).
As built (M6-T6): every type that exists so far (queues and conferences join in M8); the target
is a native select, which is searchable by typing. API summaries include the number where there
is one: "Ring group Sales (500)".
The read-only display renders "→ Ring group Sales (500)".
- **SoundPicker**: select + play button + "upload new" shortcut.
- **ExtensionPicker** (single/multi, orderable via drag handle).