[Freeswitch-users] Confused about conferences

Bradley Brashier bjbrashier at gmail.com
Wed Aug 12 14:40:02 PDT 2009

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

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
        <action application="conference"
        <anti-action application="conference" data="$(conf-id)@default"/>

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.


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+" >
>       </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/d1592b64/attachment-0002.html 

More information about the FreeSWITCH-users mailing list