# Using AudioLevelObserver with multiple routers

**URL:** <https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749>\
**Category:** mediasoup libraries\
**Created:** [April 6, 2020, 7:43am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749 "2020-04-06T07:43:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vpalmisano](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/vpalmisano/32/43_2.png) [@vpalmisano](https://mediasoup.discourse.group/u/vpalmisano)\
**Post date:** [April 6, 2020, 7:43am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749/1 "2020-04-06T07:43:06Z")

</div>

Hi,  
I have a design question: when I use multiple routers, how can I monitor the audio level for a group of producers belonging to the same room and spanning different routers?  
A simple solution could be creating only one AudioLevelObserver per router and adding all audio producers to it, tracking audio “level” events and sending them to the corresponding rooms. The drawback is that the “silence” event does not make sense because producers can be part of different rooms. It’s not clear to me if this approach could lead to some performance issues.

---

<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:** [April 6, 2020, 8:04am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749/2 "2020-04-06T08:04:09Z")

</div>

You can just create an `AudioLevelObserver` in each Router by adding all audio Producers belonging to the same “meta-room” into them, and then correlate “volume” events in all them.

---

<div class="post-metadata">

**Author:** ![vpalmisano](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/vpalmisano/32/43_2.png) [@vpalmisano](https://mediasoup.discourse.group/u/vpalmisano)\
**Post date:** [April 6, 2020, 8:52am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749/3 "2020-04-06T08:52:33Z")

</div>

I found an error in the documentation: [https://mediasoup.org/documentation/v3/mediasoup/api/#rtpObserver-addProducer](https://mediasoup.org/documentation/v3/mediasoup/api/#rtpObserver-addProducer)  
The `addProducer` method requires a dictionary with `producerId` property set ([https://github.com/versatica/mediasoup-demo/blob/56c369e43c92217aca082544c4c0603ac59d32d8/server/lib/Room.js#L603](https://github.com/versatica/mediasoup-demo/blob/56c369e43c92217aca082544c4c0603ac59d32d8/server/lib/Room.js#L603)), but the `Producer` class has the `id` property, not `producerId`.

---

<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:** [April 6, 2020, 9:32am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749/4 "2020-04-06T09:32:18Z")

</div>

Thanks, fixed.

---

<div class="post-metadata">

**Author:** ![danisharora099](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/danisharora099/32/780_2.png) [@danisharora099](https://mediasoup.discourse.group/u/danisharora099)\
**Post date:** [August 31, 2021, 7:12am UTC](https://mediasoup.discourse.group/t/using-audiolevelobserver-with-multiple-routers/749/5 "2021-08-31T07:12:03Z")

</div>

Heyo.

How do you think one should go about “correlating” different ALOs?

I’m working on a similar problem that requires “aggregating” ALO states

Thanks!
