Hi Yuriy > You also can filter it in the request route and not create branch wich > doesn't belong this server ( you can achieve that by verifying ucl > variable details), or making it UDP branch being forwarded to proper > server which handles the particular connection.
I have started trying to solve this in request route. I'm still truggling on how to distinguish local and non local registrations. I have 4 CPE registered to the same AOR. kamclt ul show [AOR] does show they are registered. 3 on the local registrar (with a socket) and one with socket [not set]. If I repeat on the other registrar I get matching information. One with a socket, the other three are [not set]. So trying to understand the hard way, what happens: $var(i)=0; while($var(i)<=$branch(count)) { $var(socket) = $(ulc(aor=>socket)[$var(i)]); xlog("L_INFO", "$cfg(route): DEBUG BEFORE: IDX: $var(i) TOTAL: $branch(count) URI: $(branch(uri)[$var(i)]) Socket: $var(socket)\n"); $var(i) = $var(i) + 1; } $var(i)=0; while($var(i)<=$branch(count)) { $var(socket) = $(ulc(aor=>socket)[$var(i)]); xlog("L_INFO", "$cfg(route): DEBUG REMOVE: IDX: $var(i) TOTAL: $branch(count) URI: $(branch(uri)[$var(i)]) Socket: $var(socket)\n"); if ($var(socket) == 0) { xlog("L_INFO", "$cfg(route): Dropping Branch IDX $var(i) URI: $(branch(uri)[$var(i)]) Socket: $var(socket)\n"); $(branch(uri)[$var(i)]) = $null; } else { $var(i) = $var(i) + 1; # do NOT increment index as the branches got renumbered. } } $var(i)=0; while($var(i)<=$branch(count)) { $var(socket) = $(ulc(aor=>socket)[$var(i)]); xlog("L_INFO", "$cfg(route): DEBUG AFTER: IDX: $var(i) TOTAL: $branch(count) URI: $(branch(uri)[$var(i)]) Socket: $var(socket)\n"); $var(i) = $var(i) + 1; } What I did not yet understand. $branch(count) is 3 ! So, does kamailio only consider the 3 registrations WITH a socket? Or is this the index starting with 0, thus 4 contacts? When I do $(branch(uri)[$var(i)]) = $null; then $branch(count) is decremented. I suppose because the next contact takes that index, this is why I do NOT increment $var(i). But I then get no $(branch(uri)[$var(i)]) on the highest index, suggesting that I only see 3 contacts, not all 4 of them. Indeed, my 'BEFORE' loop did not output the contact registered on the other registrar. So WHY is there still the INVITE being sent to the fourth, non local contact? => Confused! -- Mit freundlichen Grüssen -Benoît Panizzon- @ HomeOffice und normal erreichbar -- I m p r o W a r e A G - Leiter Commerce Kunden ______________________________________________________ Zurlindenstrasse 29 Tel +41 61 826 93 00 CH-4133 Pratteln Fax +41 61 826 93 01 Schweiz Web http://www.imp.ch ______________________________________________________ __________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to sr-users-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: