# HG changeset patch # User Chaz Kettleson # Date 1760190751 14400 # Node ID 1691e20547660a93d82b5f1d84593fbf945ed086 # Parent 0570f1e2edf48558f6bbe4091165f99faef80cb1 mod_voipms_carddav: Fix phone number normalization diff -r 0570f1e2edf4 -r 1691e2054766 mod_voipms_carddav/mod_voipms_carddav.lua --- a/mod_voipms_carddav/mod_voipms_carddav.lua Thu Oct 09 14:17:11 2025 +0100 +++ b/mod_voipms_carddav/mod_voipms_carddav.lua Sat Oct 11 09:52:31 2025 -0400 @@ -50,6 +50,23 @@ return s end + local function normalize_us_phone_number(number) + if not number then return "" end + + local digits = number:gsub("%D", "") + + if #digits == 11 and digits:sub(1, 1) == "1" then + digits = digits:sub(2) + end + + if #digits ~= 10 then + return "" + end + + return "+1" .. digits + end + + for vcard_block in response_body:gmatch("BEGIN:VCARD(.-)END:VCARD") do local fn = vcard_block:match("FN:(.-)\r?\n") or "Unknown" fn = clean_string(fn) @@ -57,6 +74,7 @@ for tel_type, tel_number in vcard_block:gmatch("TEL;TYPE=([^:]+):([^\r\n]+)") do tel_type = clean_string(tel_type):lower() tel_number = clean_string(tel_number) + tel_number = normalize_us_phone_number(tel_number) table.insert(contacts, { name = fn,