# mediasoup 3.17.0 released

**URL:** <https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805>\
**Category:** Announcements\
**Created:** [July 29, 2025, 9:51am UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805 "2025-07-29T09:51:38Z")\
**Posts on this page:** 5\
**Page:** 1

<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:** [July 29, 2025, 9:51am UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805/1 "2025-07-29T09:51:38Z")

</div>

mediasoup 3.17.0 has been released. It comes with a new option `exposeInternalIp` in [`TransportListenInfo`](https://mediasoup.org/documentation/v3/mediasoup/api/#TransportListenInfo) object:

> `exposeInternalIp`: In transports with ICE candidates, this field determines whether to also expose an ICE candidate with the IP of the `ip` field when `announcedAddress` is given.

**Usage example:**

```javascript
const webRtcServer = await router.createWebRtcServer({
  listenInfos: [
    {
      protocol: 'udp',
      ip: '192.168.1.101',
      announcedAddress: '9.8.7.6',
      exposeInternalIp: true,
      port: 55555,
    },
  ],
});

```

Related PR: [`ListenInfo`: Add `exposeInternalIp` field by ibc · Pull Request #1583 · versatica/mediasoup · GitHub](https://github.com/versatica/mediasoup/pull/1583)

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [July 29, 2025, 8:04pm UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805/2 "2025-07-29T20:04:10Z")

</div>

I honestly like this, some further context may help with the documentation.

**`exposeInternalIp`** :

When using ICE candidates and an `announcedAddress` is set (e.g., a public IP or domain), this option controls whether to **also include the internal/local IP address** in the candidate list.

- If `true`, both the local IP and announced address are advertised.

- If `false`, only the announced address is used.

This can improve connection options for peers on the same local network. However, remote peers might receive internal IPs they cannot use, so disabling this can reduce unnecessary connection attempts.

—  
Curious as I know this isn’t ideal solution (github); will this at all conflict with pipe transports or treat those the same still?

---

<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:** [July 29, 2025, 11:23pm UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805/3 "2025-07-29T23:23:05Z")

</div>

Thanks, changes pushed.

> [@BronzedBroth](#):
>
> Curious as I know this isn’t ideal solution (github); will this at all conflict with pipe transports or treat those the same still?

This option doesn’t affect plain or pipe transports because there are no ICE candidates in those transports so setting that option to `true` has no effect.

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [July 30, 2025, 2:40am UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805/4 "2025-07-30T02:40:15Z")

</div>

Thank you for clarification! I thought so was just being sure.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/b/b318c4d3397e65af9535f79c605b80b9ceb066c8.png) [@system](https://mediasoup.discourse.group/u/system)\
**Post date:** [July 31, 2025, 9:52am UTC](https://mediasoup.discourse.group/t/mediasoup-3-17-0-released/6805/5 "2025-07-31T09:52:22Z")

</div>

This topic was automatically closed after 2 days. New replies are no longer allowed.
