catalina oancea schrieb:
According to rfc3261, REGISTER is a dialog.
Where did you found this. The second REGISTER does not have a to-tag - thus it is clearly out-of-dialog.
My problem is: if this hostname resolves to more than one IP addresses, and the 401 comes from IP1, then the second REGISTER goes to IP2, then IP will continue to reject the message etc. Also, I am not completely sure but I think the same problem occurs in normal calls as well.
Yes, this is a problem if the upstream provider has multiple un-synchronized ingress points where one ingress point rejects the nonce of the others.
As a dirty workaround you could use htable module - fetch the upstream provider IP address in the 407/401 response and store it in htable (as key you can use the To-URI + user-IP + user-port. Then, subsequent REGISTER (if a key is found) are sent to the stored IP address - unless there is a failure - then you can delete the key in failure route.
regards klaus
2009/9/24 Juha Heinanen jh@tutpro.com:
catalina oancea writes:
It seems that kamailio does dns lookup again when receiving REGISTER 2, although both registers are part of the same dialog. Is this the expected behavior?
i don't think that register requests establish any dialogs. when registrar receives the second register, it has complete forgotten about the first.
-- juha
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users