Skip to content

[Bug]: SIP client multiple -> maintain single persistent connection to SIP server #147

@rtATvw

Description

@rtATvw

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:

  1. 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.
  2. 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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions