[Freeswitch-users] Confused about conferences
Bradley Brashier
bjbrashier at gmail.com
Wed Aug 12 15:18:48 PDT 2009
Whoops. All of my parens () should be curly braces {}. Wasn't paying
attention.
BB
On Wed, Aug 12, 2009 at 2:40 PM, Bradley Brashier <bjbrashier at gmail.com>wrote:
> You've thought through some of the difficult points, which is good. You're
> right that the moderator can't have different controls (unless you're
> controlling the conference yourself from outside, using, say, the event
> socket).
>
> Before I go further, I want to make sure I understand what you're
> proposing. What you're essentially saying is that when the command to kick
> someone is pressed the person should be transferred out of the conference,
> checked for moderator status, asked whom to kick (if so), and then let back
> in while the system kicks that person. The other commands would work
> similarly. Does this sound like a correct summary?
>
> If so, I think what you've got is mostly right, but I'm not sure it will
> work, having not tried to do it that way myself (I went the event socket
> route). In theory, it should look something like this:
>
> In the scripts entering the conference, you'll need to save the current
> conference number. Something like (in both cases):
>
> <action application="set" data="conf-id=$1"/>
>
> "Extension" doesn't actually check for anything, so you'll need to check
> for "kick" with a condition. Try this:
>
> <extension name="kick">
> <condition field="destination_number" expression="^kick$"/>
> <condition field="$(i_am_moderator)" expression="true">
> <action application="play_and_get_digits" data="3 3 3 7000 #
> /ask-for-extension.wav /invalid.wav conf-user-id \d+" >
>
> Followed by (I picked up the "kick" syntax from the wiki):
>
> <action application="conference" data="$(conf-id) kick
> $(conf-user-id)"/>
> <action application="conference"
> data="$(conf-id)@default+flags{mod}"/>
> <anti-action application="conference" data="$(conf-id)@default"/>
> </condition>
> </extension>
>
> In theory, then, you've transferred out with the "9" key, you check the
> moderator flag you've made, and do stuff based on the conf-id and the data
> you enter. Obviously, if this works, the moderator won't be able to hear
> what's going on in the conference while he's entering stuff.
>
> Bigger problem: the conf-user-id he enters has to be the member ID that FS
> chose for the user he's trying to kick. That number will make sense if
> you're following the system closely, but for someone who doesn't know FS
> internals, it will be impossible to know unless you broadcast it to him
> somehow. To my knowledge, there's no way to use any other identifier (like
> caller-id) to kick them with.
>
> BB
>
> On Wed, Aug 12, 2009 at 10:56 AM, Alan Chandler <
> alan at chandlerfamily.org.uk> wrote:
>
>> I have been reading all the docs about conferences I can find and am
>> getting somewhat confused. What I am trying to do is set up a dialplan
>> where I have subscribers with extensions in the 1xx range, and then to
>> set an ability to have a series of conference rooms for each subscriber
>> in the 21xx range where if the user enters is "own" conference he is the
>> moderator, but if not he is just a normal user.
>>
>> I want to be able for the moderator to do things like mute or kick people.
>>
>> So dialplan would probably have something like this in it
>>
>>
>>
>> <extension name="user_conference">
>> <condition field="destination_number"
>> expression="^(2${caller_id_number})$">
>> <action application="set" data="i_am_moderator=true">
>> <action application="answer"/>
>> <action application="conference" data="$1 at default
>> +flags{moderator}"/>
>> </condition>
>> <condition field="destination_number" expression="^(21\d{2})^">
>> <action application="set" data="i_am_moderator=false">
>> <action application="answer"/>
>> <action application="conference" data="$1 at default"/>
>> </condition>
>> </extension>
>> <extension name="kick">
>> <condition field="i_am_moderator" expression="true">
>> <action application="play_and_get_digits" data="3 3 3 7000 #
>> /ask-for-extension.wav /invalid.wav conf-user-id \d+" >
>>
>> WHAT GOES HERE???
>>
>> </condition>
>> </extension>
>>
>>
>> in the conference.conf.xml file, I would change the caller controls to
>> include
>>
>> <caller-controls>
>> <group name="somekeys">
>> <control action="transfer" digits="9" data="kick XML default"/>
>> </group>
>> </caller-controls>
>>
>>
>> My question (at the moment) is
>>
>> In the WHAT GOES HERE place how do it
>>
>> Kick extension ${conf-user-id} (DOES IT REQUIRE A SCRIPT TO CALL THE
>> Conference API?)
>> Re-Enter the moderator back into the conference
>> Re-Enter the ordinary user who happened to press 9 back into the
>> conference
>>
>> I am assuming I can't stop the non moderator getting the control - since
>> all users get the same controls.
>>
>>
>> --
>> Alan Chandler
>> http://www.chandlerfamily.org.uk
>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090812/19f5c765/attachment-0002.html
More information about the FreeSWITCH-users
mailing list