# Mediasoup - Users Cannot Join Room (Media Blocked)

**URL:** <https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507>\
**Category:** Deployment & Scalability\
**Created:** [February 26, 2025, 8:34am UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507 "2025-02-26T08:34:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Math](https://avatars.discourse-cdn.com/v4/letter/m/ea666f/32.png) [@Math](https://mediasoup.discourse.group/u/Math)\
**Post date:** [February 26, 2025, 8:34am UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/1 "2025-02-26T08:34:59Z")

</div>

Hi everyone,

I’m using **mediasoup** in an **Express** project to build a video conferencing application.  
Sometimes, I’m facing an issue where some users **cannot join the room**. The media connection is blocked, likely due to firewall restrictions.

I use my own signaling server with coturn running on it.

If I’ve understood correctly, in Mediasoup, the iceServers parameter is used when creating a client-side WebRTC transport. It is used to configure the STUN/TURN servers that help establish a connection between the client and the mediasoup server.  
STUN/TURN helps clients to establish a connection despite NAT/Firewalls.

Do you have any ideas? Thanks !

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [February 26, 2025, 11:16am UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/2 "2025-02-26T11:16:32Z")

</div>

First you create the server side WebRtcTransport for the client (sending or receiving transport). You signal it’s information (including `transport.iceCandidates`) to the client. And in the client you create the sending or receiving transport by passing that server side info plus TURN URLs and credentials (`iceServers` field), being TURN stuff something completely independent from mediasoup server side.

---

<div class="post-metadata">

**Author:** ![Math](https://avatars.discourse-cdn.com/v4/letter/m/ea666f/32.png) [@Math](https://mediasoup.discourse.group/u/Math)\
**Post date:** [February 26, 2025, 12:46pm UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/3 "2025-02-26T12:46:14Z")

</div>

Thanks for your response! This is how I implemented it on the frontend:

```auto
const transportInfo = await this._protoo?.request('createWebRtcTransport', {
  forceTcp: this._forceTcp,
  producing: true,
  consuming: false,
  sctpCapabilities: this._useDataChannel
    ? this._mediasoupDevice.sctpCapabilities
    : undefined,
})

const { id, iceParameters, iceCandidates, dtlsParameters, sctpParameters } =
  transportInfo

this._sendTransport = this._mediasoupDevice.createSendTransport({
  id,
  iceParameters,
  iceCandidates,
  dtlsParameters,
  sctpParameters,
  iceServers: ICE_SERVERS,
  proprietaryConstraints: PC_PROPRIETARY_CONSTRAINTS,
})

```

I’m including `iceServers: ICE_SERVERS` when creating the send transport. Does this look correct, or is there something missing that could help with connectivity issues behind NAT/firewalls?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [February 26, 2025, 1:00pm UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/4 "2025-02-26T13:00:10Z")

</div>

In theory it looks ok.

---

<div class="post-metadata">

**Author:** ![Math](https://avatars.discourse-cdn.com/v4/letter/m/ea666f/32.png) [@Math](https://mediasoup.discourse.group/u/Math)\
**Post date:** [February 26, 2025, 1:27pm UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/5 "2025-02-26T13:27:59Z")

</div>

Thanks, so the problem I’m having is with my turn/stun server configuration?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [February 26, 2025, 1:41pm UTC](https://mediasoup.discourse.group/t/mediasoup-users-cannot-join-room-media-blocked/6507/6 "2025-02-26T13:41:09Z")

</div>

I cannot assume that
