Voice Chat & WebRTC Setup

5M Phone provides crystal-clear cellular voice calls, speakerphone broadcasting, and real-time WebRTC peer-to-peer video calling.


Supported Voice Systems

In configuration/config.lua, verify your voice provider:

Lua
Config.Bridge = {
    -- ...
    Voice = 'auto', -- 'pma-voice' | 'saltychat' | 'mumble-voip' | 'standalone'
}

When set to 'auto', 5M Phone detects whether pma-voice, saltychat, or mumble-voip is started.


When using pma-voice, ensure your server.cfg contains optimal settings:

Config
# pma-voice recommended settings
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
setr voice_enableSubmix 1
setr voice_enableSpeakerSubmix 1
setr voice_defaultCycle "Z"
setr voice_defaultVolume "0.8"

Audio Submixes & Realism

  • Ear Piece Mode: High-pass and low-pass audio filtering applied to simulate a handset speaker against the player's ear.
  • Speakerphone Mode: Removes proximity limitation so players standing in a 3-meter radius around the phone can hear both sides of the call.
  • 3D Spatial Ringtones: Nearby players hear the ringtone radiating from the ringing player's character coordinates.

WebRTC Live Video Calls & Cloudflare TURN

5M Phone features peer-to-peer WebRTC video calling with enterprise Cloudflare Realtime TURN support configured in configuration/server/api.lua:

Lua
Config.Api = {
    -- ...
    WebRTC = {
        TokenID = '25ce781f1f9c842a0f623040c86f3977',  --- Turn Token ID
        APIToken = '63eb9d9ca60db9c97330fcf8dfb8c812572160405b74db9854731201f633fcfc', --- API Token
    },
}

You can generate your own free Cloudflare TURN credentials at Cloudflare Realtime TURN.