We have enum records where 0123456789 points to 0123456789@domain.tld. And then multiple SRV records pointing to the actual hosts; _sip._udp SRV record for domain.tld pointing to host1.domain.tld and host2.domain.tld for load balancing.
In our config we run is_from_user_enum, which up until adding a second entry for the SRV records worked fine. Now however the is_from_user_enum lookup invariably returns the opposite DNS record for the reply. Ie. host1 is requesting and the dns cache returns host2 and then the is_from_user_enum fails and the reply is dropped.
Is there a way to make is_from_user_enum test ALL values of the SRV record?
Thanks! -Eric
Eric Hiller writes:
Is there a way to make is_from_user_enum test ALL values of the SRV record?
i could not find from svn who implemented is_from_user_enum function, since i don't remember myself doing it. source has this comment that may explain your problem:
/* * Check if from user is a valid enum based user, and check to make sure * that the src_ip == an srv record that maps to the enum from user. */ int is_from_user_enum_2(struct sip_msg* _msg, char* _suffix, char* _service)
i don't understand motivation for the second condition, but since i'm most likely not author of the function and since i have never used it, cannot comment more about it.
-- juha