- Shipped
- October 18, 2026 at 5:15 AM UTC
- Author
- Kamo
- Commit
- d2c3240
Owner 2026-10-15: "remove it and add it to a do-not-block list". The allowlist beside the do-not-contact list, for the organization's own numbers and staff lines. - DDL **************** (DO_NOT_BLOCK, DO_NOT_BLOCK_EVENT append-only for kamo_app), applied 2026-10-18 04:16Z; re-run is a no-op. - DoNotContactBeans declares shared-lib's DoNotBlockList and hands it to the DoNotContactList (VoipRepositoryScanTest pins both repositories). - /api/voip/do-not-block (MANAGE_VOIP_SETTINGS, as the do-not-contact admin): list and search, add {channel CALL|SMS|EMAIL|ALL, address, note}, POST /{id}/remove with a required reason, history, activity (with every opt-out it kept off the list), and /suggestions: the organization's numbers, phone-server main numbers and staff lines from VOIP_NUMBER_OWNERSHIP (by ORG_ID), one row per number with what protects or lists it. Suggestions add nothing. - Do not contact: a person's add of a protected address answers 409 field doNotBlock with the list's sentence; an import names those apart (protectedAddresses). - A STOP text from a protected number is not listed (the shared list skips it and notes it); the log line says so. Tests: DoNotBlockControllerTest, DoNotBlockSuggestionsTest, DoNotContactControllerTest, VoipRepositoryScanTest (RED: did not compile against the new shared-lib), SmsKeywordServiceTest, SmsGatewayTest, **************** VoipMessageServiceKeywordTest, InternalAuthFilterKamoaiTest — 98 green.
