Client roaming (stay connected when network connection changes) #2837

Open
opened 2026-02-20 22:13:29 -05:00 by deekerman · 6 comments
Owner

Originally created by @blafjoll on GitHub (May 23, 2024).

Description

When the client changes ip address while connected, the user hangs, and has to wait for the 30s timeout to reconnect.
This happens when mobile clients go from cellular to wifi and back.

Steps to reproduce

Connect with mobile client and turn on/off wifi or walk into/out of range of wifi.

Mumble version

No response

Mumble component

Server

OS

Linux

Reproducible?

Yes

Additional information

No response

Relevant log output

No response

Screenshots

No response

Originally created by @blafjoll on GitHub (May 23, 2024). ### Description When the client changes ip address while connected, the user hangs, and has to wait for the 30s timeout to reconnect. This happens when mobile clients go from cellular to wifi and back. ### Steps to reproduce Connect with mobile client and turn on/off wifi or walk into/out of range of wifi. ### Mumble version _No response_ ### Mumble component Server ### OS Linux ### Reproducible? Yes ### Additional information _No response_ ### Relevant log output _No response_ ### Screenshots _No response_
Author
Owner

@Hartmnt commented on GitHub (May 23, 2024):

I think this is an inherent property of TCP/IP and can not be solved by us.

@Hartmnt commented on GitHub (May 23, 2024): I think this is an inherent property of TCP/IP and can not be solved by us.
Author
Owner

@davidebeatrici commented on GitHub (May 23, 2024):

More specifically, this is not a bug but rather a feature request: implement client roaming.

@davidebeatrici commented on GitHub (May 23, 2024): More specifically, this is not a bug but rather a feature request: implement client roaming.
Author
Owner

@Krzmbrzl commented on GitHub (May 24, 2024):

@davidebeatrici how would that look like?

@Krzmbrzl commented on GitHub (May 24, 2024): @davidebeatrici how would that look like?
Author
Owner

@davidebeatrici commented on GitHub (May 24, 2024):

Well, both client and server need changes in order to support roaming properly (and it's quite complex to get right).

As a start, the server should detect when a client that was already connected connects again (before the timeout is triggered) and treat the situation as if nothing happened. The client should attempt to connect before the timeout is reached server-side.

@davidebeatrici commented on GitHub (May 24, 2024): Well, both client and server need changes in order to support roaming properly (and it's quite complex to get right). As a start, the server should detect when a client that was already connected connects again (before the timeout is triggered) and treat the situation as if nothing happened. The client should attempt to connect before the timeout is reached server-side.
Author
Owner

@Krzmbrzl commented on GitHub (May 24, 2024):

I wonder whether this might not simply be out of scope for Mumble. Sounds like an awful lot of work for a presumably rather rare edge case 🤔

@Krzmbrzl commented on GitHub (May 24, 2024): I wonder whether this might not simply be out of scope for Mumble. Sounds like an awful lot of work for a presumably rather rare edge case 🤔
Author
Owner

@Hartmnt commented on GitHub (May 30, 2024):

Just glancing over the complexity of the issue in my head, I fear that this would open a large can of worms. (Would this interfere with the TLS handshake? What happens when multiple users connect from the same IP? 🤔)

I would say, let us consider this a feature request, but note that we would have to think this through carefully, if someone would ever try to implement this.

@Hartmnt commented on GitHub (May 30, 2024): Just glancing over the complexity of the issue in my head, I fear that this would open a large can of worms. (Would this interfere with the TLS handshake? What happens when multiple users connect from the same IP? :thinking:) I would say, let us consider this a feature request, but note that we would have to think this through carefully, if someone would ever try to implement this.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#2837
No description provided.