-
Notifications
You must be signed in to change notification settings - Fork 925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rr: add enable_double_rr_always option #257
Conversation
For clarification enable_double_rr_always still requires that enable_double_rr is set, right? I wonder that instead of adding a new parameter won't be better to consider a new value for enable_double_rr, like:
|
Yes. This decreases number of extended codelines (no need to change lines with "if (enable_double_rr)"). I agree with your proposition to use new value of enable_double_rr. I will rework the patch soon. |
Updated code as agreed, also removed accidentally included unrelated debug code. |
Please wait before merging this... Retesting... |
It turned out that simple record_route() with enable_double_rr=1 (which is default) solves likely all the issues. We have met our problems because we used record_route_preset() initially, then moved to record_route_advertised_address(), but record_route_advertised_address() (with enable_double_rr=1) doesn't append transport attribute when the call is from TLS to WS (record_route() does). So for now, we need either to use this patch, or to investigate why this happens, or to investigate why record_route doesn't pick advertise_address (it really doesn't for tcp and tls connections; for websocket-based it does). Or to use record_route() and just live with Record-Route headers containing internal IP of Kamailio server (it seems to work anyway). |
I think worth merging the patch as it is an option anyhow -- if not enabled, it doesn't change anything -- who knows when it can come handy with some UAs. |
Ok. Thank you. |
rr: add enable double rr always option
Damn, sorry for unrelated change in tcp_read.c in my commit. Thank you for fixing that. |
Hello, linphone (tls) --> (tls) kamailio (udp) --> (udp) asterisk I set up kamailio like as : modparam("rr", "enable_full_lr", 1) kamailio -v But I have still the problem. |
This patch helps us to handle inadequatness of Linphone mobile apps (both iOS and Android flavours are affected) without reinventing a lot of logics to handle each transport (we use TCP, TLS, WS, WSS).
E.g. if we have two TLS-based Linphone clients, even with enable_double_rr for gentle cross-forwarding we would get single RR header without transport= attribute, resulting in Linphone sending ACK and BYE via UDP.
This new option, being enabled, results in two RR headers being always inserted, with transport attribute being always added. I believe this cannot harm the installation with enable_double_rr, just makes instructions more explicit.
The Linphone's behaviour looks like a set of different bugs, but it would get us much more efforts to fix.
I don't know if any other useragent needs such workaround. So I would perfectly understand if this commit wouldn't be accepted upstream.
Also this commit currently lacks README doc rebuild, because I don't know how to do that. Only XML doc is updated.