<div dir="ltr">I believe the main bottleneck of mod_conference is on the input thread.<div><br></div><div>Regardless of which approach you take, you still need CPU capacity to push out the audio to all listeners. I don't think that mod_conference is any less efficient than any other module is at doing that.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 23, 2018 at 10:46 AM, Abaci B <span dir="ltr"><<a href="mailto:abaci64@gmail.com" target="_blank">abaci64@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Agree that mod_conference should probably be optimized to only loop unmuted members, but that only applies to the input thread the thread handling the output still needs to exist for everybody (except maybe for deaf members) but it would still be a savings since right now each conference member uses at least 3 threads if i understand correctly (1 for the channel, 1 for the input and another one for the output).<br></div>the most optimal solution would probably be to either use shoutcast to stream for conferences where the latency isn't critical, and develop a streaming option for conferences, maybe something like conference_stream://conf_name that would be like local_stream and not like additional conference members with high overhead. I hope to 1 day either develop or sponsor development of such a feature, if there are others interested in the same functionality we maybe able to sponsor it together, I would offer $500 as a starter.<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 23, 2018 at 10:28 AM, Duvid Rottenberg <span dir="ltr"><<a href="mailto:adrottenberg@gmail.com" target="_blank">adrottenberg@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have a similar scenario, and my solution was to create several conferences. I have one master conference, that serves to connect all sub-conferences. So when a user calls in to the conference I add him to a sub conference, then I do an outdial to an extension that joins the sub conference to the master conference (this connection should not be muted). Once the sub conference has 250 participants, I create a new sub conference. I control all of this via ESL, this also requires some additional logic to handle conference commands, as I need to make sure it propogates to all sub conferences.<div><br></div><div>The advantage of this approach is that instead of having one loop running on 1 CPU core looping through all listeners we now have multiple conference loops running on different cores. The issue with large conferences is that the conference loop runs every 20 ms by default and the main conference loop is not (and probably can't be) multi-threaded. <br><br></div><div>Since on any large conference, there will most likely be only a handful of speakers, the best solution would probably be to optimize mod_conference to have a separate list of unmuted participants and only loop through those, but I was afraid to undertake such a change myself.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-1286088260878507233h5">On Thu, Apr 19, 2018 at 12:09 PM, Abaci B <span dir="ltr"><<a href="mailto:abaci64@gmail.com" target="_blank">abaci64@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-1286088260878507233h5"><div dir="ltr"><div>Hi,<br>I'm trying to set up a large audio conference of over 1000 users where only 1 or 2 users are talking and the rest are just listening, but after 600-700 users the CPU usage gets too high and the audio gets choppy, I understand that mod_conference is not optimized for my use case but was wondering if someone has any suggestions on what can be done to optimize for my use case.<br>I was also thinking that maybe there is a better alternative for what I look for, such as having just the talkers on the conference and the listeners should listen to it via mod_local_stream or maybe use something like eavesdrop for the listeners but not sure if and how much performance I would gain.<br></div>Thanks for any help or input<br><br></div>
<br></div></div><span>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions<wbr>.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.o<wbr>rg</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswi<wbr>tch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/ma<wbr>ilman/listinfo/freeswitch-user<wbr>s</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.frees<wbr>witch.org/mailman/options/free<wbr>switch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></span></blockquote></div><br></div>
<br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions<wbr>.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.o<wbr>rg</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswi<wbr>tch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/ma<wbr>ilman/listinfo/freeswitch-user<wbr>s</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.frees<wbr>witch.org/mailman/options/<wbr>freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.<wbr>freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.<wbr>org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.<wbr>freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/<wbr>mailman/listinfo/freeswitch-<wbr>users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.<wbr>freeswitch.org/mailman/<wbr>options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>