# Set SSRC in consumer of PlainRTP transport

**URL:** <https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405>\
**Category:** mediasoup libraries\
**Created:** [November 14, 2019, 4:35pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405 "2019-11-14T16:35:04Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [November 14, 2019, 4:35pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/1 "2019-11-14T16:35:04Z")

</div>

From what I see the SSRC is randomly generated by mediasoup when creating a plainRTPtransport consumer. Is there a way to set it to a different value?

---

<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:** [November 14, 2019, 4:41pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/2 "2019-11-14T16:41:24Z")

</div>

No, there is not.

---

<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:** [November 14, 2019, 4:43pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/3 "2019-11-14T16:43:04Z")

</div>

If you need it for something, please clarify why and, if it makes sense, we’ll add an API option for that.

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [November 14, 2019, 5:03pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/4 "2019-11-14T17:03:46Z")

</div>

Connecting two mediasoups together. Ideally with SRTP 😃

---

<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:** [November 14, 2019, 11:19pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/6 "2019-11-14T23:19:19Z")

</div>

If you check how `router.pipeToRouter()` method is internally implemented, it does not need to decide the SSRC of the consumers, so the same is possible when interconnecting two routers in different hosts:

1. Have router\_1 in worker\_1 in host\_1.
2. Have router\_2 in worker\_2 in host\_2.
3. Create pipeTransport\_1 in router\_1.
4. Create pipeTransport\_2 in router\_2.
5. Connect them by exchanging their binding IP and port and call `connect()` with them in each side.
6. Create webRtcTransport\_1 in router\_1.
7. Create producer\_1 in webRtcTransport\_1.
8. Call `pipeTransport_1.consume({ producerId: producer_1.id })` =\> consumer\_1.
9. Get `consumer_1.rtpParameters` and exchange them with router\_2 (in host\_2).
10. Create producer\_2 in pipeTransport\_2 by passing those `consumer_1.rtpParameters` to `pipeTransport_2.produce()`.
11. Also exchange consumer\_1 events to producer\_1 via signalling.
12. Then consume in router\_2 from producer\_2.

So, in step 9-10 you can see that the SSRC already exists in the `consumer_1.rtpParameters`. There is no need for the application to set the consumer SSRC.

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [November 15, 2019, 8:28am UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/8 "2019-11-15T08:28:26Z")

</div>

Thanks!

Since it’s possible to produce and consume RTP from mediasoup, I tried to connect the two mediasoups via the plain RTP transports, not the pipe to router. Which I was able to do, the only problem being mediasoup complaining about not matching the producer because of the unknown SSRC.

---

<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:** [November 15, 2019, 10:04am UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/9 "2019-11-15T10:04:56Z")

</div>

Definitely you need to use a `PipeTransport` (and not a `PlainRtpTransport`) to intercommunicate Routers, no matter that happens in the same host (so you can use `router.pipeToRouter()` method) or between different hosts (in that case you need to implement your own logic that must behave similar to `pipeTpRouter()` as I explained in my previous response). There is an obvious reason for using PipeTransport to achieve that, as explained in the doc:

> **[mediasoup :: API](https://mediasoup.org/documentation/v3/mediasoup/api/#PipeTransport)**
>
> Cutting Edge WebRTC Video Conferencing

> [@copiltembel](#):
>
> the only problem being mediasoup complaining about not matching the producer because of the unknown SSRC.

Please don’t assume you need to set the Consumer SSRC due to that error. You are doing something wrong in your code. Please try to follow the steps I said before and check the `pipeToRouter()` code to implement something similar that connects routers in different hosts.

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [November 15, 2019, 2:40pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/10 "2019-11-15T14:40:48Z")

</div>

OK, just tried the pipe transport and that worked as described. Thank you!

There’s just one thing that I believe is misleading:

Step 6 I believe should be “Create producer\_1 in router\_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:** [November 15, 2019, 3:29pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/11 "2019-11-15T15:29:23Z")

</div>

Not exactly. Producers are created on a transport, and not directly in a Router. I’ve fixed steps 6 and 7 above.

---

<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:** [December 2, 2019, 11:11pm UTC](https://mediasoup.discourse.group/t/set-ssrc-in-consumer-of-plainrtp-transport/405/12 "2019-12-02T23:11:01Z")

</div>

Closed on December 2, 2019, 11:11pm UTC


