@henningw: In the current situation, the local Record-Route headers are stripped before
they are stored in the dialog module. If a request is sent by the dialog module (forced
BYE for example) it completely bypasses the routing script as it will be sent to the
remote parties directly. With this PR the local Record-Route headers will not be stripped
so the request will be looped back to the proxy as the first Route header is now the proxy
itself. This causes the request to follow the routing script as if it was sent by one of
the parties in the call and all processing that would normally be done for an
"external" request would also be done for this request.
@miconda:
- The callee is handled only when the dialog is confirmed. As there is no previous RR set,
no update is needed. The caller's leg is preliminary set when the request is handled,
but the final RR set is only known when the dialog gets confirmed (dependent on the
winning branch), hence the update is needed.
- Changing the RR in-dialog is not the intention of this PR.
- The sockets don't store (record-)route parameters so this would not be enough. As
alternative, maybe using local_route is possible, but it still needs access to RR
parameters to be complete. As this patchset predates the local_route functionality I have
not investigated much into that direction.
In short, this PR makes the dialog module to not strip the local record-route headers,
something I have always considered to be a bug.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1832#issuecomment-462686226