livekit / client-sdk-js

LiveKit browser client SDK (javascript)
https://livekit.io
Apache License 2.0
345 stars 147 forks source link

Livekit/client-sdk-js supports configuring the specific IP address of the turnServer #1256

Open eroXianYin opened 1 week ago

eroXianYin commented 1 week ago

Describe the problem

Hello, I am currently studying and researching the Livikit project. I have combined several similar products on the market, namely Tencent TRTC and OpenVidu, both of which can achieve WebRTC real-time communication functionality. I have noticed that currently livekit does not seem to support specifying the specific IP address of the turnServer. Both of the two models I mentioned above support this feature.

For example, Tencent TRTC can configure the specific IP address of the Cotton server in the following configuration turnServer: {url:

proxy: {
    websocketProxy: 'wss://proxy.example.com/ws/',
    // Set up a turn server to transfer media packets between SDK and TRTC backend. 14.3.3.3:3478 is the IP and port of the 
    //turn server.
    turnServer: { url: '14.3.3.3:3478', username: 'turn', credential: 'turn', credentialType: 'password' },
    iceTransportPolicy: 'all', 
    loggerProxy: 'https://proxy.example.com/logger/',
  }

OpenVidu can configure ICE Server when starting OpenVidu deployment. Specify 'url=turn: 111. xxx. xxx.141:3478' in the following command to configure the specific IP address of the turnServer. ` Then configure the turnServer service address in openvidu-webcomponent-2.27.0.js 1

I think our project can also add this feature to validate network links in complex testing environments.

My current issue is: My current environment is that the livekit server is deployed on the internal network. I use one device on the external network to access the turnServer, and another device can access both the external and internal turnServer. But this server, which can access both the external and internal networks at the same time, discovered some problems in the selection of network links through packet capture tools. If this problem cannot be thoroughly understood, it will pose a great risk to me. Therefore, we want Livekit to support the specific IP address of the turnServer for further functional verification.

Describe the proposed solution

The project supports configuring the specific IP address of the turnServer for drilling holes

Alternatives considered

No response

Importance

I cannot use LiveKit without it

Additional Information

My current issue is: My current environment is that the livekit server is deployed on the internal network. I use one device on the external network to access the Coturn server, and another device can access both the external and internal Coturn servers. But this server, which can access both the external and internal networks at the same time, discovered some problems in the selection of network links through packet capture tools. If this problem cannot be thoroughly understood, it will pose a great risk to me. Therefore, we want LiveKit to support the specific IP address of the turnServer for further functional verification

davidzhao commented 7 hours ago

you should be able to specify ICE servers used by passing them in during room.connect, see RoomConnectOptions