Make the messaging permission flag live-editable via the dashboard

get_all_permissions()/write_permission() now handle messaging alongside
tier/allowed_numbers as one save action, and the Security Dashboard's PSTN
Trunk table gets a Messaging checkbox column - no more needing to re-run
pstn-trunk.sh's CLI just to change who can use internal SIP texting,
matching how tier/allowed_numbers/personal_did already worked.

Tested that messaging correctly survives tier changes and personal-DID
assignment/removal on the same extension (independent axes, as intended).

Still explicitly not done, and said so in both READMEs rather than
implying otherwise now that there's a nice UI for it: the actual SIP
MESSAGE dialplan wiring that would make Asterisk enforce this flag. That
gap hasn't changed - only the permission storage/UI layer around it has.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ho9mZgAkVpdz7S5wJkg8Nf
This commit is contained in:
Claude
2026-07-23 05:27:58 +00:00
parent 3705fb5fcc
commit 8291eba55e
3 changed files with 83 additions and 38 deletions
+9 -2
View File
@@ -416,8 +416,15 @@ generator output. Fixed by quoting every value in that heredoc.
`messaging=yes` flag per extension in `pstn-permissions.conf`,
independent of the PSTN calling tiers (an extension can be
internal-tier for calling and still messaging-enabled, or vice versa),
prompted at install time. **Not done**: the actual dialplan wiring that
would make Asterisk *enforce* this flag on inbound `MESSAGE` requests.
prompted at install time AND now a checkbox right in the Security
Dashboard's PSTN Trunk permissions table (alongside tier/approved-
numbers) — no need to re-run the CLI installer just to change who can
message. Confirmed it correctly survives tier changes and personal-DID
assignment/removal on the same extension (this is what surfaced the
tier=internal section-wipe bug fixed above). **Not done**: the actual
dialplan wiring that would make Asterisk *enforce* this flag on
inbound `MESSAGE` requests — this flag currently does nothing at the
Asterisk level yet, it's groundwork.
Reasoned through but deliberately not shipped: Easy Asterisk dispatches
messages through the same `[intercom]` context calls use (no
`message_context` override), and whether a hand-written pattern there