- GsmGatewaySmsProvider: GoIP-style HTTP SMS API, per-tenant SIM line from
phone_numbers.gateway_port; model-specific bits isolated for easy adaptation
(§17.3); failure never breaks the calling flow (logged to sms_log)
- Asterisk config generator now emits [gw-line-N] SIP trunk endpoints per
assigned SIM, routed straight into the tenant's inbound context (1 SIM =
1 salon §5.1); deterministic per-SIM SIP secrets
- docs/HARDWARE_TESTING.md: step-by-step live runbook for the joint session
(gateway registration, inbound path, SMS via gateway, operator forwarding
codes per m:tel/BH Telecom/HT Eronet, e2e acceptance, rollback)
- 5 tests against a mocked gateway API
(forwarding-code generator and SIM/port admin UI shipped in M3)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>