You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
When opensips is handling calls using and external RTPEngine media proxy for SRTP/DTLS traffic (in my situation in front of FreeSWITCH media servers) it is important that the rtp proxy selected in the initial offer continues to be used throughout the call. In the event that a different media proxy is selected the DTLS renegotiation is triggered and this can disrupt and crash the back end media server (exact reasons unknown).
Describe the solution you'd like
When we disable an instance in the pool this instance should continue to be used for any existing call sessions and only new sessions should be ignoring disabled hosts. There maybe a reason for multiple disabled modes to allow flexibility for anyone wishing to immediately disable a node from all activity.
Capturing the RTP socket selected after the initial offer, storing to the dialog and forcing all subsequent requests to this node. This is not going to work correctly as the node will be disabled and will likely cause those calls to fail.
Additional context
The current implementation is based on a crude hashing algorithm which assumes no change in the underlying pool, when a change is made all calculations will be affected. Including all the sockets in the pool (enabled and disabled) for every calculation and then checking the disabled flag before final selection (moving on to first enabled socket) will address this issue and impact only those which would have selected the disabled node during initial offer. Adding nodes to the pool will still trigger the issue however.
The text was updated successfully, but these errors were encountered:
Any updates here? No progress has been made in the last 15 days, marking as stale. Will close this issue if no further updates are made in the next 30 days.
Is your feature request related to a problem? Please describe.
When opensips is handling calls using and external RTPEngine media proxy for SRTP/DTLS traffic (in my situation in front of FreeSWITCH media servers) it is important that the rtp proxy selected in the initial offer continues to be used throughout the call. In the event that a different media proxy is selected the DTLS renegotiation is triggered and this can disrupt and crash the back end media server (exact reasons unknown).
Describe the solution you'd like
When we disable an instance in the pool this instance should continue to be used for any existing call sessions and only new sessions should be ignoring disabled hosts. There maybe a reason for multiple disabled modes to allow flexibility for anyone wishing to immediately disable a node from all activity.
Implementation
rtpengine
moduleDescribe alternatives you've considered
Capturing the RTP socket selected after the initial offer, storing to the dialog and forcing all subsequent requests to this node. This is not going to work correctly as the node will be disabled and will likely cause those calls to fail.
Additional context
The current implementation is based on a crude hashing algorithm which assumes no change in the underlying pool, when a change is made all calculations will be affected. Including all the sockets in the pool (enabled and disabled) for every calculation and then checking the disabled flag before final selection (moving on to first enabled socket) will address this issue and impact only those which would have selected the disabled node during initial offer. Adding nodes to the pool will still trigger the issue however.
The text was updated successfully, but these errors were encountered: