Sorted it. I needed to loop through the contacts, then select the correct ruid based on $ciFor completeness, here is my solution:reg_fetch_contacts("location", "$fu", "un_reg");
$var(i) = 0;
while ($var(i) < $(ulc(un_reg=>count))) {
$var(ul_callid) = $(ulc(un_reg=>callid)[$var(i)]);
$var(ul_ruid) = $(ulc(un_reg=>ruid)[$var(i)]);
if ($var(ul_callid) == $ci) {
xlog("L_INFO", "Unregistering contact $tu Ruid: $var(ul_ruid)\n");
unregister("location", "$fu", "$var(ul_ruid)");
$sht(regs=>$fU@$fd~$ci)=$null;
}
$var(i) = $var(i) + 1;}_______________________________________________
- Charles
On Feb 19, 2021, at 9:43 AM, Charles Phillips <charles@rustybike.com> wrote:Happy Friday!To clean up contacts that have sent requests to unregister (Expires: 0) I am executing the following after a 200 OK response from the upstream server:reg_fetch_contacts("location", "$fu", "un_reg");
xlog("L_INFO", "Removing unregistered contact From: $si To: $tu Ruid: $ulc(un_reg=>ruid)\n");
unregister("location", "$fu", "$ulc(un_reg=>ruid)”);This produces the desired result when there is only one contact per AoR, but when multiple contacts are present, it seems to delete the first ruid (which makes sense as I am only providing the $fu).So, the question, can I select the contact by call-id or some other unique identifier specific to the desired contact that I can grab from the transaction? Reading the reg_fetch_contact and unregister docs, they do not seem to provide for selection beyond uri.
- Charles
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users