Skip to content

Override server_name with configurable value #3566

@RegiPab

Description

@RegiPab

I have running synapse-element server with 500+ users and 10k+ rooms and the homeserver.yaml with server_name: company (it's an example). There is external DNS company.example.com (usable FQDN) which redirects to the synapse-element server.

After element call function appeared we were not able to use it and also ElementX calls not working on android devices.
.well-known redirection cannot be used because it must exist on the MXID domain, which is not resolvable. https://company/...

There are users all over the world with different types of devices and there is no possible option to set own VPN/DNS for everybody which would resolve company into IP address

I tried installing a new server with proper server_name: example.com and configuring migration plan with federation (create same users on new server, invite users to same rooms, export encyption keys, import on new server).
It looked promising but I faced: non-federatable rooms which can't be joined, rooms with history set since they were invited or since they joined which totally crushed my migration plan.

It would be a life saver option which could override BAD server_name company with correct company.example.com for element call function.

I imagine a Synapse configuration option:
voip_base_url: "https://company.example.com"

Client behavior (Element):

  1. On startup or when capabilities are fetched, Element checks Synapse’s /versions or /capabilities endpoint for a voip_base_url field.
  2. If present:
  • Element uses this URL for all call-related operations instead of the raw homeserver domain.
  1. If not present:
  • Element continues using the current behavior (calls use the homeserver domain).

Have you considered any alternatives?

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-EnhancementNew features, changes in functionality, performance boosts, user-facing improvements

    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