[Freeswitch-dev] How to route a single channel to multiple conference rooms...

Jean-Pierre Poulin jeanpierrepoulin at yahoo.com
Thu Mar 17 05:31:30 MSK 2011


Hello Freeswitch devs…
First of all, congratulations on a solid telephony platform… I am particularly 
impressed with your modular architecture, the careful attention to thread 
safety, the clean API and the fact that the code can be built from both Linux & 
windows without a hitch.
I need to be able to route a call to several conference rooms simultaneously.  
Can this be done in Freeswitch?
The channel that needs to be multiplied to several conference rooms is input 
only (i.e. only the person’s voice is fed into the many conference rooms), and 
that person would not hear any output from any of the conference rooms.  (For 
simplicity below, let’s call this source channel “Channel S”)
Seeing that the public api implies that a given channel can only be present in 
one conference call at a time, I think this needs to be done by hacking the 
code…
Studying the code for mod_conference, I am thinking of approaching this task in 
one of three ways:
	1. Insert ‘Channel S’ into the list of conference participants in multiple 
conferences.
	1. Create a normal conference #1 with channel S as a participant, and other 
conferences without channel S.
	2. Extract the “conference_member” structure for channel S from conference #1 
and copy this structure into the other conference rooms.
	3. Trap deletion of “channel S” on conference #1 and duplicate the deletion to 
other conferences as needed.
	4. QUESTION: Would issues between the timing between conference rooms or thread 
issues interfere?
	2. Have ‘Channel S’ join a one person conference, record that conference, and 
instead of routing the outgoing sound packets to disk, patch 
“conference_play_file” in all conference rooms to insert the latest sound packet 
from channel S into each conference room.
	1. QUESTION: This would only work if the sampling rate & timing is the same 
between record and “conference_play_file”.  Is it?
	3. Any other suggestion you might have… perhaps there is a non-public call I 
could invoke that could create this effect?
Which of the above three do you think has the highest probability of working?
Any ideas?
   Jean-Pierre





More information about the FreeSWITCH-dev mailing list