Numbers and carriers
Platform numbers and per-organization calling numbers are managed separately. Organization numbers fan out across that organization’s campaigns and rotate after a configurable number of calls. Inbound campaigns can also own tracking-number pools.
Carrier resolution is organization-first. A client organization with no usable carrier row fails closed for live traffic; the house organization may use its configured default. Telnyx and Twilio credential verification and number lookup are implemented, while number search/purchase is currently Telnyx-specific.
Secrets are sealed with NPK_CRYPT_KEY. BYOC SIP configuration can be written through the dedicated Asterisk adapter. Never place raw carrier secrets in source control or client-side configuration.
The carrier dashboard aggregates call and quality data and uses QOS_BAD_ALERT_PCT for alerting. Treat quality thresholds as operational indicators, not proof of carrier causality.
Implementation anchors: modern/admin/dids.php, org-numbers.php, org-carrier.php, carriers.php, modern/shared/carrier_providers.php, carrier_asterisk.php, did_pool.php.