{ saveFiles(); onclose(); }} width={640}>
{#each tabs as t (t.id)} {/each}
{#if tab === 'voice'}

Screen sharing

{#if stunChoice === 'custom'} store.saveSettings()} placeholder="stun.example.com:3478" autocomplete="off" aria-label="STUN server address" /> {/if} { s.relayServer = s.relayServer.trim(); store.saveSettings(); }} placeholder={isWeb ? 'this site (automatic)' : 'https://voice.example.com'} autocomplete="off" />

The address of a mumh5 web version. When a direct connection is not possible (mobile data, strict company networks), the stream goes through that server instead, by itself. {isWeb ? 'Empty uses the site you are on.' : 'Its operator sees your IP address and carries the stream, but cannot watch it.'}

Screen sharing connects you directly to the people watching. Across the internet both sides need a STUN server to find a route; it learns your IP address but never sees the stream. {isWeb ? 'By default the site you are on provides it.' : 'With none, no outside server is contacted and streams only work on the same network.'} Networks that block direct connections, like many mobile ones, need more than STUN.

{:else if tab === 'sounds'} {:else if tab === 'appearance'} {:else if tab === 'accessibility'}

Hints are the small labels that appear on hover. Screen readers get the names either way.

{:else if tab === 'files'}

Files go to a f0ckm instance and are posted as links. Other mumh5 users see them inline; regular Mumble users get a link and a small preview. Without an upload host you can still send images, inline and scaled to the server's limit.

{#if testResult}

{testResult}

{/if}

Embeds

Links from other hosts stay plain links, so opening a chat never contacts servers you did not choose.

{:else}

Servers recognize you by your certificate. The default is used unless a server is set to another one.{isWeb ? ' Certificates are kept in this browser and passed to the proxy when you connect.' : ''}

{/if} {#snippet footer()} {/snippet}