<div>Whoops.  All of my parens () should be curly braces {}. Wasn&#39;t paying attention.</div>
<div> </div>
<div>BB<br><br></div>
<div class="gmail_quote">On Wed, Aug 12, 2009 at 2:40 PM, Bradley Brashier <span dir="ltr">&lt;<a href="mailto:bjbrashier@gmail.com">bjbrashier@gmail.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>You&#39;ve thought through some of the difficult points, which is good. You&#39;re right that the moderator can&#39;t have different controls (unless you&#39;re controlling the conference yourself from outside, using, say, the event socket).</div>


<div> </div>
<div>Before I go further, I want to make sure I understand what you&#39;re proposing. What you&#39;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?<br>

</div>
<div> </div>
<div>If so, I think what you&#39;ve got is mostly right, but I&#39;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:</div>
<div> </div>
<div>In the scripts entering the conference, you&#39;ll need to save the current conference number. Something like (in both cases):</div>
<div> </div>
<div>        &lt;action application=&quot;set&quot; data=&quot;conf-id=$1&quot;/&gt;</div>
<div> </div>
<div>&quot;Extension&quot; doesn&#39;t actually check for anything, so you&#39;ll need to check for &quot;kick&quot; with a condition. Try this:</div>
<div> </div>
<div>    &lt;extension name=&quot;kick&quot;&gt;</div>
<div>      &lt;condition field=&quot;destination_number&quot; expression=&quot;^kick$&quot;/&gt; 
<div class="im"><br>      &lt;condition field=&quot;$(i_am_moderator)&quot; expression=&quot;true&quot;&gt;<br>        &lt;action application=&quot;play_and_get_digits&quot; data=&quot;3 3 3 7000 #<br>/ask-for-extension.wav /invalid.wav conf-user-id \d+&quot; &gt;</div>

</div>
<div> </div>
<div>Followed by (I picked up the &quot;kick&quot; syntax from the wiki):</div>
<div> </div>
<div>        &lt;action application=&quot;conference&quot; data=&quot;$(conf-id) kick $(conf-user-id)&quot;/&gt;<br>        &lt;action application=&quot;conference&quot; data=&quot;$(conf-id)@default+flags{mod}&quot;/&gt;</div>


<div>        &lt;anti-action application=&quot;conference&quot; data=&quot;$(conf-id)@default&quot;/&gt;</div>
<div>      &lt;/condition&gt;</div>
<div>    &lt;/extension&gt;</div>
<div> </div>
<div>In theory, then, you&#39;ve transferred out with the &quot;9&quot; key, you check the moderator flag you&#39;ve made, and do stuff based on the conf-id and the data you enter.  Obviously, if this works, the moderator won&#39;t be able to hear what&#39;s going on in the conference while he&#39;s entering stuff. </div>


<div> </div>
<div>Bigger problem: the conf-user-id he enters has to be the member ID that FS chose for the user he&#39;s trying to kick. That number will make sense if you&#39;re following the system closely, but for someone who doesn&#39;t know FS internals, it will be impossible to know unless you broadcast it to him somehow. To my knowledge, there&#39;s no way to use any other identifier (like caller-id) to kick them with.</div>


<div> </div><font color="#888888">
<div>BB </div></font>
<div>
<div></div>
<div class="h5">
<div> </div>
<div class="gmail_quote">On Wed, Aug 12, 2009 at 10:56 AM, Alan Chandler <span dir="ltr">&lt;<a href="mailto:alan@chandlerfamily.org.uk" target="_blank">alan@chandlerfamily.org.uk</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">I have been reading all the docs about conferences I can find and am<br>getting somewhat confused.  What I am trying to do is set up a dialplan<br>

where I have subscribers with extensions in the 1xx range, and then to<br>set an ability to have a series of conference rooms for each subscriber<br>in the 21xx range where if the user enters is &quot;own&quot; conference he is the<br>

moderator, but if not he is just a normal user.<br><br>I want to be able for the moderator to do things like mute or kick people.<br><br>So dialplan would probably have something like this in it<br><br><br><br>    &lt;extension name=&quot;user_conference&quot;&gt;<br>

      &lt;condition field=&quot;destination_number&quot;<br>expression=&quot;^(2${caller_id_number})$&quot;&gt;<br>        &lt;action application=&quot;set&quot; data=&quot;i_am_moderator=true&quot;&gt;<br>       &lt;action application=&quot;answer&quot;/&gt;<br>

       &lt;action application=&quot;conference&quot; data=&quot;$1@default+flags{moderator}&quot;/&gt;<br>      &lt;/condition&gt;<br>      &lt;condition field=&quot;destination_number&quot; expression=&quot;^(21\d{2})^&quot;&gt;<br>

        &lt;action application=&quot;set&quot; data=&quot;i_am_moderator=false&quot;&gt;<br>       &lt;action application=&quot;answer&quot;/&gt;<br>       &lt;action application=&quot;conference&quot; data=&quot;$1@default&quot;/&gt;<br>

      &lt;/condition&gt;<br>    &lt;/extension&gt;<br>    &lt;extension name=&quot;kick&quot;&gt;<br>      &lt;condition field=&quot;i_am_moderator&quot; expression=&quot;true&quot;&gt;<br>        &lt;action application=&quot;play_and_get_digits&quot; data=&quot;3 3 3 7000 #<br>

/ask-for-extension.wav /invalid.wav conf-user-id \d+&quot; &gt;<br><br>WHAT GOES HERE???<br><br>      &lt;/condition&gt;<br>    &lt;/extension&gt;<br><br><br>in the conference.conf.xml file, I would change the caller controls to<br>

include<br><br>  &lt;caller-controls&gt;<br>    &lt;group name=&quot;somekeys&quot;&gt;<br>       &lt;control action=&quot;transfer&quot; digits=&quot;9&quot;   data=&quot;kick XML default&quot;/&gt;<br>    &lt;/group&gt;<br>

  &lt;/caller-controls&gt;<br><br><br>My question (at the moment) is<br><br>In the WHAT GOES HERE place how do it<br><br>Kick extension ${conf-user-id}  (DOES IT REQUIRE A SCRIPT TO CALL THE<br>Conference API?)<br>Re-Enter the moderator back into the conference<br>

Re-Enter the ordinary user who happened to press 9 back into the conference<br><br>I am assuming I can&#39;t stop the non moderator getting the control - since<br>all users get the same controls.<br><br><br>--<br>Alan Chandler<br>

<a href="http://www.chandlerfamily.org.uk/" target="_blank">http://www.chandlerfamily.org.uk</a><br><br><br>_______________________________________________<br>FreeSWITCH-users mailing list<br><a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>

<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>

<a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div></div></blockquote></div><br>