Proxy Media mode puts FreeSWITCH in a "transparent proxy mode" for the RTP streams. The RTP streams still pass through FreeSWITCH (unlike bypass media mode) by using a static all-purpose codec that cannot be decoded. As a consequence any attempts to play a file or record the call will result in a an immediate hangup of the call. Its main use was initially to make T.38-passthrough possible because by ignoring the codecs FreeSWITCH could switch to T.38 mode without actual support for T38. FreeSWITCH now supports T.38 and T.38 passthrough properly so this feature is less useful. The other consequence of this feature is that all reads on the RTP stream are blocking and there is no async RTP possible so audio problems can arise if you are not connected to a reliable RTP endpoint on the other side of the stream.
Many people seem to think that proxy_media is the opposite of bypass_media and is therefore required to proxy media through FS. This is not true. FreeSWITCH has 3 media handling modes:
- Anything that requires reading or modifying media will NOT work in Proxy Media mode. This includes:
- Handling of inband DTMF (converting in either direction)
- Conference, record, intercept, IVR etc
- Pretty much any feature you can think of that involves media
- Bridging between endpoints that don't use RTP for media (e.g. TDM, Skype)
- It is no longer required for T38, as that is supported by mod_spandsp.
Pretty much the only feature that will still work is bridge.