Hi Henning, thanks for the pointer! I’ve implemented the per‑transport behavior by relying on the registrar save() flags only for UDP, while keeping the module‑level max_contacts for WebSocket transports:
modparam("registrar", "max_contacts", 5) → allow up to 5 contacts by default (used for WS/WSS). For WS/WSS I call save("location") with no special flags. For UDP I call save("location", "0x04") to keep exactly one contact for the AoR. Config snippet: # WS/WSS: allow up to max_contacts (5) if (proto == WS || proto == WSS) { if (!save("location")) { xlog("L_ERR", "[$ci] WS(S) save() failed for $tU@$td\n"); sl_reply_error(); exit; } xlog("L_INFO", "[$ci] WS(S) registration stored for $tU@$td\n"); exit; } # UDP: keep only one contact per AoR if (proto == UDP) { if (!save("location", "0x04")) { xlog("L_ERR", "[$ci] UDP save(0x04) failed (one-contact policy) for $tU@$td\n"); sl_reply_error(); exit; } xlog("L_INFO", "[$ci] UDP registration stored (one-contact policy) for $tU@$td\n"); exit; } Looks ok for me, Is this what you are referring Right ? Point me here if i am doing wrong. Thanks _______________________________________________ Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org To unsubscribe send an email to sr-dev-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender!