MediaProxy Feaures
Basic functions
Configuration & Management
Media
Network
Accounting and statistics
{"http_query":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","payload":"0"},"result":{"media":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","mediaid":"1","tag":"0003e30cc50c5d43416d30b4-7b2f969c","payload":0,"rxbytes":108008800,"rxpackets":677772,"txbytes":108262240,"txpackets":676639,"local":{"ip":"192.168.1.233","rtp":50486,"rtcp":50487},"remote":{"ip":"192.168.5.1","rtp":5038,"rtcp":5039}},"media":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","mediaid":"1","tag":"2e268de3","payload":0,"rxbytes":108262240,"rxpackets":676639,"txbytes":108008800,"txpackets":677772,"local":{"ip":"192.168.1.233","rtp":34732,"rtcp":34733},"remote":{"ip":"192.168.5.10","rtp":20912,"rtcp":null}}}}
Logging
Basic functions
- Basic offer/answer
- Call recording
- Music-on-hold
- Transcoding
Configuration & Management
- Graceful shutdown
- Configurable IP and UDP port range
- Automatic load balancing and redundancy
- Control socket using IPv4/IPv6 UDP/TCP
- Setting internal parameters via HTTP-JSON interface.
- Kamailio-style timeout notifications via IPv4/IPv6 UDP/TCP (configurable)
- JSON command protocol
Media
- Support for any combination of audio and video streams
- WebRTC-style RTP/RTCP muxing/demuxing from/to two independent channels (automatically)
- IPv4/IPv6 bridging for RTP/RTCP
- Video with transcoding.
- Transcoding offloading using dedicated hardware
- kernel based forwarding - It provides better performance than doing it through the daemon, less CPU overhead and lower jitter.
Network
- Multiple networks bridging (more than just three - internal, external, ipv6).
- STUN/TURN/ICE
- SRTP / ZRTP
Accounting and statistics
- Real-time sessions statistics
- RADIUS accounting (start / interim update / stop, configurable)
- JSON stats retrieval via HTTP (queries like http://localhost:8442/json/?callid=0003e30c-c50c0134-763a6f53-359481cc@192.168.0.100&payload=0 - available parameters are - payload, callid, mediaid, tag, remote IP)
{"http_query":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","payload":"0"},"result":{"media":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","mediaid":"1","tag":"0003e30cc50c5d43416d30b4-7b2f969c","payload":0,"rxbytes":108008800,"rxpackets":677772,"txbytes":108262240,"txpackets":676639,"local":{"ip":"192.168.1.233","rtp":50486,"rtcp":50487},"remote":{"ip":"192.168.5.1","rtp":5038,"rtcp":5039}},"media":{"callid":"0003e30c-c50c0134-763a6f53-359481cc at 192.168.0.100","mediaid":"1","tag":"2e268de3","payload":0,"rxbytes":108262240,"rxpackets":676639,"txbytes":108008800,"txpackets":677772,"local":{"ip":"192.168.1.233","rtp":34732,"rtcp":34733},"remote":{"ip":"192.168.5.10","rtp":20912,"rtcp":null}}}}
Logging
- Events logging (start, stop, interim update, timeout, codec/parser error) to syslog (with full RTCP printing)