Bug description
The SIP client establishes new ephemeral connections to the same server when an existing connection exists or a previous connection could be reused.
This causes multiple issues.
Specifically:
- When multiple A records exist for a realm during registration the client will attempt to use the nonce challenge from server A if the client then connects to server B, server B will deny authorization then authentication and therefore registration will fail.
- After initial registration the connection is held open by the server via keepalives and invites are sent through that connection until re-registration. Which occurs from a separate ephemeral port. The server then potentially updates it's registration information to send invites and keepalives through the new ephemeral connection which isn't maintained by the client. Subsequent invites and keepalives fail.
Expected behavior
After establishing a connection to a SIP server store a reference to the connection hashed to transport/server/port. Use the stored connection preferentially over new ephemeral connections.
Steps to reproduce
Try to use multiple servers per realm or use a server that sends invites to the client's ephemeral received port.
Rapida version
293c920
Logs or traces (optional)
Deployment type
None
Bug description
The SIP client establishes new ephemeral connections to the same server when an existing connection exists or a previous connection could be reused.
This causes multiple issues.
Specifically:
Expected behavior
After establishing a connection to a SIP server store a reference to the connection hashed to transport/server/port. Use the stored connection preferentially over new ephemeral connections.
Steps to reproduce
Try to use multiple servers per realm or use a server that sends invites to the client's ephemeral received port.
Rapida version
293c920
Logs or traces (optional)
Deployment type
None