Hi All, I'm trying to implement subconference feature, to allow some participants go (or rather "gosub") to a another conference room to discuss something then get back to the main conference. I use FreeSWITCH Version 1.0.head (hacked-20110112T172836Z). Bellow some configure extracts:
From conference.conf.xml: ... <caller-controls> ... <group name="just_exit"> <control action="hangup" digits="#"/> <control action="hangup" digits="1"/> <control action="mute" digits="0"/> </group> ... </caller-controls> ... <profiles> .. <profile name="confX_M"> ... <param name="caller-controls" value="just_exit"/> ... </profile> <profile name="confX_S"> ... <param name="caller-controls" value="just_exit"/> ... </profile> </profiles> ...
From dialplan (own) public/confX.conf.xml: ... <extension name="confX_join"> <condition field="destination_number" expression="^confX_join$"/> <condition field="${confX_num}" expression="^1(\d{4})$"> <action application="bind_meta_app" data="1 a s execute_extension::subX_1"/> <action application="bind_meta_app" data="2 a s execute_extension::subX_2"/> <action application="bind_meta_app" data="3 a s execute_extension::subX_3"/> <action application="conference" data="confX_${cpnfX_num}@confX_M"/> </condition> </extension> ... <extension name="subX_1"> <condition field="destination_number" expression="^subX_1$"> <action application="set" data="pass_rfc2833=true"/> <action application="conference" data="confX_${cpnfX_num}_1@confX_S"/> </condition> </extension> <extension name="subX_2"> <condition field="destination_number" expression="^subX_2$"> <action application="set" data="pass_rfc2833=true"/> <action application="conference" data="confX_${cpnfX_num}_2@confX_S"/> </condition> </extension> <extension name="subX_3"> <condition field="destination_number" expression="^subX_3$"> <action application="set" data="pass_rfc2833=true"/> <action application="conference" data="confX_${cpnfX_num}_3@confX_S"/> </condition> </extension> ...
During connection user is first handled by IVR, where he enters conference number (assume: "1234") which is stored in "confX_num" variable. Then call is transfered to "confX_join". Here I assign actions for *1, *2 and *3 DTMF sequences then join main conference ("confX_1234_M"). When some user presses i.e. "*2" then he also enters subconf 2 ("confX_1234_2"). Those users attached to "confX_1234_2" are at the same time still attached also to "confX_1234_M", but found muted and deaf to other participants. Then, leaving subconference they will be back "alive" in master conference, which I tested by kicking them from "confX_1234_2" manually. Now my problem begins. Then user is on "confX_1234_M" dialing "#" forces user to leave conference, as defined in "just-exit" controls. But when user enters also "confX_1234_2" DTMF codes are no longer processed, neither by master conference nor by subconference. I set "pass_rfc2833=true" but it is not helpful. Did I missed to set something [1] in the dialplan or other config files, or [2] actually no DTMF codes can be processed while in "*2" leg? And if [2]==true: would it be possible to develop such DTMF handling? BTW: DTMFs are not processed while in subconference but if user is kicked off from subconf back to main conference, one can use DTMF codes again to (un)mute (0), join sub (*2) or leave (# or 1). TIA for your help or tips. Regards, Mariusz