I have seen mention here that certain Wi-Fi ports must be open for Wi-Fi calling to work. Is there a list available on RW’s website of these port numbers? Is there a simple way to determine whether the needed ports are open at a particular Wi-Fi location (besides trying to make a call)?
Your Router (home, school or business) or ISP must not block outbound traffic (from your phone) destined to the following ports:
5090 UDP which is used for call set up
6000-29999 UDP which are used for voice/audio
8883 TCP MQTT which is used for Voicemail, Messaging SMS/MMS and keep-alive messages to RW servers.
NOTE: Most firewalls are stateful, meaning they allow two way communication as long as it is initiated by a client (phone) that is inside the routers network. This could be your home, school or office router/firewall
Republic phones will always send the initial voice/audio data packet to a destination port of 6000-29999 (regardless of who placed the call)
Thank you for that list and references! I have a couple more questions:
Is there an Android utility or downloadable app that would show what ports at a Wi-Fi location are open?
In what situations are “keep-alive” messages used and how frequently must they be sent?
Is it necessary to open ALL the ports listed, or just one for each of the functions? In the case of an incoming call, how would RW’s server know which port was open to use to address my cell phone if not all listed ports were open?
According to the information that I have available, it remains necessary for ports 6000-2999 used for UDP data must remain open, as defined in the reference previously provided. Enterprise level security is well above my paygrade, so I will respectfully bow out.
Yeah, that wording in the reference given does suggest that they all must be open. I still wonder, though, what would happen if only a limited no. of ports in that set were open? If I were the developer, I’d have the software first search to see which ports were open before initiating a packet stream using one of them. Maybe that is the case.
So then the outside caller can use any port to call an RW phone that is behind the Wi-Fi router? Does the RW phone then have the need to respond using the same port, or can it respond on any port that it finds open?
The answer to these questions would reflect how restricted one would be when using a Wi-Fi router as a guest and having no control (or even knowledge) of which ports or block of ports were open.
When you first connect to a WiFi network the phone will register with the republic servers. If the firewall allows this registration Republic’s servers will know where to find the phone over WiFi (including the port registration was completed over, and the phone should be reachable on). When a call comes in the server uses this signaling port to try and reach the phone, if it does, the phone then initiates the audio stream. So in all cases, the ports needed are opened by the phone, not the server. So that large list of needed ports need to be able to be initialized in an outbound direction only.