En realidad, tenías razón en el momento. La API oficial realiza exactamente una llamada a y la analiza de esta manera
curl https://meta.discourse.org/voice/rooms.json -s | jq '.rooms[] | {name: .name, transport: .expected_transport}'
Lo cual te dará el transporte de la sala entre pares.
voice_public_access no es una configuración existente. ¿De qué estás hablando?
Por supuesto, quieres usar autenticación en la llamada a la API de rooms.json para poder obtener solo las salas a las que el usuario actual tiene acceso.