Tatsächlich hattest du da genau recht. Die offizielle API ruft genau das ab und parst es wie folgt:
curl https://meta.discourse.org/voice/rooms.json -s | jq '.rooms[] | {name: .name, transport: .expected_transport}'
Damit erhältst du den Peer-Raum-Transport.
voice_public_access ist keine vorhandene Einstellung. Wovon redest du?
Natürlich solltest du für den API-Aufruf an rooms.json eine Authentifizierung verwenden, um nur die Räume abzurufen, auf die der aktuelle Benutzer Zugriff hat.