The default roleplay conversation mode is Realtime. It streams audio between you and the AI over WebRTC, the same technology used for video calls. This applies to both the web app and the VR app.
Some company networks block WebRTC. When that happens, the conversation won’t start or stays on “Connecting”. To check whether your network blocks Realtime mode, follow the “For the network” section in Browser Troubleshooting.
If it is blocked, please send the following to your IT team:
VirtualSpeech connects to OpenAI’s Realtime API over WebRTC. Setting up the call uses HTTPS. The audio then flows over UDP, or is relayed through Twilio’s STUN/TURN servers when UDP is restricted.
Please allow outbound traffic to the following:
Purpose | Host | Protocol / Ports |
VirtualSpeech services |
| TCP 443 |
Call setup |
| TCP 443 |
Backup and EU AI routing |
| TCP 443 |
Audio relay (STUN/TURN) |
| UDP 3478, TCP 3478, TCP 443 |
Direct audio (optional, gives the best quality) | OpenAI / Azure OpenAI realtime media servers (IP addresses with no fixed hostname) | UDP 3478, TCP 443 |
Important notes
TCP 443 to Twilio is TURN, not HTTPS. If your firewall or proxy only allows TLS on port 443, or inspects it (SSL/TLS inspection), please add an exception for *.turn.twilio.com and *.stun.twilio.com. Otherwise Realtime will fail on networks that block UDP.
Exclude api.openai.com from SSL inspection if inspection is enabled.
The audio is end-to-end encrypted (DTLS-SRTP), so it cannot be inspected.
If your firewall uses IP-based rules, Twilio publishes its STUN/TURN IP ranges at https://www.twilio.com/docs/stun-turn/regions. Please allow all regions, because users may be routed to any of them.
Realtime still works if UDP is fully blocked, by relaying through Twilio on TCP. Audio quality may be slightly lower.