The extension sweep no longer erases every member assignment

FixVOIPService
Shipped
August 27, 2026 at 2:58 AM UTC
Author
Kamo
Commit
2cc6ab2

MemberVoipConfigController.put writes an assignment to two places - MEMBER_VOIP_CONFIG and **************** - and **************** then cleared the second on its next pass. No provider stores Kamo member ids, so listExtensions() reports assignedMemberId=null for every extension, and that null was stored unconditionally. **************** already carried exactly this guard, with a comment explaining why. The sync path never received it. The result in production: assigned_member_id null on all twenty-three extensions while nine members held one. The visible symptom was not billing but the member phone-settings dropdown, which filters out extensions already assigned to somebody else by reading that column - so it excluded nothing, offered a taken extension, and the save failed with a 409 from the controller that does check. Only skips nulls; a provider that does report a member still overwrites.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing