I am going to implement a Java VoiP server to work with WebRtc. Implementing a p2p browser connection is very simple. The connection between the server and the client is somewhat more complicated.
After a quick look at the RFC, I wrote down what needs to be done to make the Java server as a browser. Please help me fill out the list below.
- Deploy the STUN server. The server must be abke in order to respond to the binding request and save contacts.
- Implement the DTLS protocol along with the DTLS handshake. After the DTLS handshake, a shared secret will be used as key material under SRTP and SRTCP.
- Support for multiplexing SRTP and SRTCP streams. Use SRTP and SRTCP the same port for the NAT address.
- Not sure if I should implement SRTCP. I believe that communication will not be interrupted if the server does not send SRTCP reports to the client.
- Decode SRTP stream in RTP.
Questions:
- Is there anything else that needs to be done on the server side?
- How does webRtc handle SRTCP reports? Does the sampling rate / bit rate depend on the SRTCP report?
WebRtc claims that the following issues will be addressed:
- hiding packages
- echo cancellation
- bandwidth adaptability
- dynamic jitter buffering
- automatic gain control
- noise reduction and suppression
Is it an internal element of webRtc or an internal codec (Opus)? Do I need to do anything on the server side to deal with these problems, such as variable bit rate, etc.?
webrtc
Anton
source share