[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