Add option to enable/disable heuristic early-return logic#2133
Conversation
…rning when there is a match with address advertised in the SDP
|
I don't think making this an option is a good solution. You said this is affecting scenarios with ICE - I'm thinking endpoint learning in general should be defused or even disabled altogether when ICE is in use, as ICE should be in charge of determining endpoint address. I was under the impression that this is already done. Let me check. |
|
Have you tried what happens if you just disable endpoint learning? |
Yes. And, using this eventual parameter introduces some help, for people that wants to keep using |
That's odd. ICE should still adjust the endpoint addresses based on the outcome of the negotiations, basically obsoleting the other learning mechanism. Perhaps there's some other underlying issue lurking. Sadly I have no way to reproduce this myself.
I can see it as a feasible solution for a backport, but for future versions going forward I'd rather avoid having it. Determining the endpoint should be delegated to ICE - the regular learning mechanism should be just a fallback. |
@rfuchs, i completely see your point. And its indeed an interesting case. But, that commit is the root cause that switch the behavior between the |
This PR is related to the following RTPEngine Forum question: (https://groups.google.com/g/rtpengine/c/YsTU99HGd2o).
After 13.5 (including) the following commit was introduced: (afce798).
The idea of this commit is quiet good, but could affect some scenarios, like: when clients are behind some VPN's.
So, the proposal here, is to include a new parameter:
endpoint-learning-heuristic-disable-early-return. This parameter by default assumesfalseas value (so, the current behavior is preserved). But, passingtrueas value, reverts the current behavior and preserves the old logic (<= 13.4).The following PR was already tested locally, and allows the correct turn on/off.
If possible, a backport should be made for versions >= 13.5 (14.x also).