generator: PJSIP transports, extension endpoints and rtp config

Golden cases empty, one-user, webrtc-disabled and hostile-names; each also
renders identically from shuffled input. pnpm test:asterisk boots the
asterisk image with every golden case and fails on a missing endpoint or
context or any ERROR log line (checked against a deliberately broken case).
On 24.0.0-rc2: 101 and 101-web load with every set_var.

Task: M2-T3
This commit is contained in:
iamdoubz committed 2026-10-17 16:23:14 -05:00
1 parent a5de247948
commit 06ac99b9f4
44 files changed
+1040 -12

No files matched your search

+6 -3
View File
@@ -36,9 +36,11 @@ Rules for `render()`:
4. If nothing changed and not `force`: record a `generator_runs` row and return.
5. Copy the current files to `/etc/asterisk/selfphoneng/.prev/` (keep one previous version).
6. For each changed file, write `<name>.tmp` then `rename()` it over the old one (atomic).
7. Work out reload commands from the changed files (§3). If the PJSIP
7. Work out reload commands from the changed files (§3), or from every file when `force`. If the PJSIP
transport sections changed, don't reload PJSIP. Set
`system.restartRequired = true` instead (see `01-infrastructure.md` §4.3).
`system.restartRequired = true` instead (see `01-infrastructure.md` §4.3). Exception: the very first
apply (no stored `system.transportHash`) reloads PJSIP normally, since it only adds transports to an
Asterisk that booted with none.
8. Send each command as AMI `Action: Command`. If AMI is down, mark the run
`ok=false, error='ami-disconnected'`. The AMI reconnect handler calls `apply({force:true})` later.
9. After `queue reload`: re-send every paused queue member (`QueuePause`), because a reload resets pause state.
@@ -197,7 +199,8 @@ set_var = SP_CLASS=2 ; internal=0 local=1 national=2 international
set_var = SP_OUTCID=13125551234 ; omit if outbound_caller_id_did_id null
set_var = SP_E911CID=13125551234 ; omit if emergency_caller_id_did_id null
set_var = SP_RECMODE=never
set_var = __SP_DIRECTION=internal ; verify inheritance prefix works in set_var (AGENTS rule 10)
set_var = __SP_DIRECTION=internal ; loads as variable "__SP_DIRECTION" (checked on 24.0.0-rc2); inheritance to
; dialed channels still to be proven by a call test (M2-T6)
[101-auth]
type = auth