WebRtc client connection to server

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.?

+7
webrtc
source share
2 answers

The first step is to implement the Interactive Connectivity Establishement (RFC 5245). Regardless of whether you use the STUN / TURN server or not, your code should issue compatibility checks (which use STUN messages) in the browser and respond to checks for connection to the brier. ICE is a fairly complex state machine, but it is doable.

0
source share

You do not need to reinvent the wheel. STUN / TURN servers are external components. Use as is. WebRTC source code is available, which you can use in your application code and invoke related methods.

Pls. refer to a similar message - Server as WebRTC data feed

-one
source share

All Articles