<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type>
<STYLE>BLOCKQUOTE {
        BORDER-LEFT: #cccccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex
}
P {
        PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
</STYLE>

<META name=GENERATOR content="MSHTML 8.00.6001.19019"></HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action 
application="set" 
data="hangup_after_bridge=false"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;action application="set" data="continue_on_fail=true"/&gt;</FONT><BR><FONT 
size=2>you don't need to specify continue_on_fail=tru since you don't hangup 
after bridge</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B> 
  <A title=manieq@wp.eu href="mailto:manieq@wp.eu">Mariusz Czulada</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=freeswitch-users@lists.freeswitch.org 
  href="mailto:freeswitch-users@lists.freeswitch.org">FreeSWITCH Users Help</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, April 15, 2011 8:23 
AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Freeswitch-users] 
  bind_meta_app blocks DTMFs?</DIV>
  <DIV><BR></DIV>
  <P>Hi all,</P>
  <P>&nbsp;</P>
  <P>I finally solved the problem (bind_meta_app do not block DTMF), so I'd like 
  to share the solution here, in case someone else is also interested in 
  similiar function. What I needed was to replace direct call to conference 
  app:</P>
  <P><SPAN style="FONT-FAMILY: courier new,courier"><SPAN 
  style="FONT-SIZE: x-small">&lt;action application="conference" 
  data="confX_${confX_num}_2"/&gt;<BR></SPAN></SPAN></P>
  <P>with call via loopback:</P>
  <P><SPAN style="FONT-SIZE: x-small"><SPAN 
  style="FONT-FAMILY: courier new,courier">&lt;action application="bridge" 
  data="loopback/app=conference:cx_${cx_num}_2"/&gt;</SPAN></SPAN></P>
  <P>Now my subX_2 extension looks like this:</P>
  <P>&nbsp;</P>
  <P><SPAN style="FONT-SIZE: x-small"></SPAN><SPAN 
  style="FONT-SIZE: x-small"><SPAN 
  style="FONT-FAMILY: courier new,courier">&nbsp; &lt;extension 
  name="subX_2"&gt;<BR></SPAN></SPAN></P>
  <P><SPAN style="FONT-SIZE: x-small"><SPAN 
  style="FONT-FAMILY: courier new,courier">&nbsp;&nbsp;&nbsp; &lt;condition 
  field="destination_number" 
  expression="^subX_2$"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action 
  application="set" 
  data="pass_rfc2833=true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action 
  application="set" 
  data="hangup_after_bridge=false"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;action application="set" 
  data="continue_on_fail=true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action 
  application="set" 
  data="bridge_terminate_key=2"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;action application="bridge" 
  data="loopback/app=conference:cx_${cx_num}_2"/&gt;<BR>&nbsp;&nbsp;&nbsp; 
  &lt;/condition&gt;<BR>&nbsp; &lt;/extension&gt;<BR></SPAN></SPAN></P>
  <P>&nbsp;</P>
  <P>Now after pressing "*2":</P>
  <P>* all parties which joined subconference can speak to/hear each other,</P>
  <P>* after pressing "2" they leave sub and return to main conference,</P>
  <P>* other participants of main conference hear no beeps - joining subconf is 
  like "mute" and returning to main conf like "unmute"</P>
  <P>&nbsp;</P>
  <P>Regards,</P>
  <P>&nbsp;</P>
  <P>Mariusz</P>
  <P>&nbsp;</P>
  <P>Dnia 18-01-2011 o godz. 18:33 Mariusz Czulada napisał(a):</P>
  <BLOCKQUOTE><!-- blockquote {padding-left: 1ex; margin: 0px 0px 0px 0.8ex; border-left: #cccccc 1px solid;} p {margin: 0px;padding: 0px;}  -->
    <P>Michael, Brian,</P>
    <P>&nbsp;</P>
    <P>The "hacked" version i used was not hacked indeed. I just tried to 
    correct the patch I send to Jira, but was totally unrelated to this case. 
    Now I use 1.0.7 with default configuration. Then, in conf/dialplan/default 
    folder I added following file (subtest.xml):</P>
    <P>&nbsp;</P>
    <P><SPAN style="FONT-FAMILY: courier new,courier"><SPAN 
    style="FONT-SIZE: x-small">&lt;include&gt;<BR>&nbsp;&nbsp;&nbsp; 
    &lt;extension name="test_subconf"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;condition field="destination_number" 
    expression="^(34\d{2})$"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="set" 
    data="confX_num=$1"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action 
    application="answer"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="transfer" 
    data="confX_join"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/condition&gt;<BR>&nbsp;&nbsp;&nbsp; 
    &lt;/extension&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;extension 
    name="confX_join"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;condition 
    field="destination_number" 
    expression="^confX_join$"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="bind_meta_app" data="1 a s 
    execute_extension::subX_1"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="bind_meta_app" data="2 a s 
    execute_extension::subX_2"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="conference" 
    data="confX_${confX_num}"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/condition&gt;<BR>&nbsp;&nbsp;&nbsp; 
    &lt;/extension&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;extension 
    name="subX_1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;condition 
    field="destination_number" 
    expression="^subX_1$"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="set" 
    data="pass_rfc2833=true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="conference" 
    data="confX_${confX_num}_1"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/condition&gt;<BR>&nbsp;&nbsp;&nbsp; 
    &lt;/extension&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;extension 
    name="subX_2"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;condition 
    field="destination_number" 
    expression="^subX_2$"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="set" 
    data="pass_rfc2833=true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;action application="conference" 
    data="confX_${confX_num}_2"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/condition&gt;<BR>&nbsp;&nbsp;&nbsp; 
    &lt;/extension&gt;<BR>&lt;/include&gt;</SPAN><BR></SPAN></P>
    <P>&nbsp;</P>
    <P>Feature I expected to achieve was to allow some users to enter sub 
    conference (i.e. "confX_3400_1") to discuss something on side, then get back 
    to the main one ("confX_3400"). During this time other participants should 
    treat them as they are still present in the conference, but probably 
    muted.</P>
    <P>&nbsp;</P>
    <P>What I observed was:</P>
    <P>* while joining "confX_3400_1" first user hears "you are the only..." 
    message, then MOH</P>
    <P>* when second user joins "confX_3400_1", both hear entry beep, and MOH 
    stops</P>
    <P>* while in sub conf, no DTMF codes are processed; no messages like 
    "switch_rtp.c:3113 RTP RECV DTMF 2:1600" appear on FSW console; no one is 
    able to leave using "#"</P>
    <P>* while in "confX_3400_1" no one can be hear; just like they were 
    muted</P>
    <P>* while in "confX_3400_1" they are still listed as 
    "confX_3400"participants</P>
    <P>* after they're kicked from "confX_3400_1" from&nbsp; the console, they 
    are again audible by other participants of "confX_3400", without any propt 
    or beep, just like the were unmuted; and can use *1 again to enter sub 
    conf.</P>
    <P>&nbsp;</P>
    <P>So at this moment I have two problems:</P>
    <P>* User cannot use "#" even if it is defined as a "hangup" action in 
    "default" configuration profile (used here).</P>
    <P>* Users cannot hear each other (or they cannot talk to each other, but 
    the result is the same).</P>
    <P>&nbsp;</P>
    <P>My question is: is there something I missed in a dialplan or this is the 
    way freeswitch works now?</P>
    <P>&nbsp;</P>
    <P>Regards,</P>
    <P>&nbsp;</P>
    <P>Mariusz</P>
    <P>&nbsp;</P>
    <P>Dnia 14-01-2011 o godz. 19:39 Michael Collins napisał(a):</P>
    <BLOCKQUOTE>Mariusz, 
      <DIV><BR></DIV>
      <DIV>After moving from the main conference to the second conference, when 
      the user presses digits, do any of them work? The way to test would be to 
      call in to the first conference then press #1 to go to the sub conference, 
      then press 0 a few times to see if you mute/unmute. Also, try pressing 
      &nbsp;1, 2, 3, etc. and watch the FS console. Be sure that you are in 
      debug mode on the console. (If you use fs_cli then you will be at loglevel 
      debug by default.)</DIV>
      <DIV><BR></DIV>
      <DIV>Question - what customizations have you made? I see that your version 
      is "hacked" so most likely you've done some tinkering. One thing you can 
      do to test is to update to latest git and don't do any "hacking" to the 
      code. Test your dialplan and see if the DTMFs work as expected. If your 
      DTMFs work on a plain install then you know that your customizations are 
      doing something. If not, then pastebin your output (<A 
      href="http://pastebin.freeswitch.org">pastebin.freeswitch.org</A>) and 
      we'll take a look.</DIV>
      <DIV><BR></DIV>
      <DIV>-MC</DIV>
      <DIV><BR>
      <DIV class=gmail_quote>On Fri, Jan 14, 2011 at 8:31 AM, Mariusz Czulada 
      <SPAN dir=ltr>&lt;<A 
      href="mailto:manieq@wp.eu">manieq@wp.eu</A>&gt;</SPAN> wrote:<BR>
      <BLOCKQUOTE 
      style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
      class=gmail_quote>Hi All,<BR><BR>I'm trying to implement subconference 
        feature, to allow some<BR>participants go (or rather "gosub") to a 
        another conference room to<BR>discuss something then get back to the 
        main conference. I use FreeSWITCH<BR>Version 1.0.head 
        (hacked-20110112T172836Z). Bellow some 
        configure<BR>extracts:<BR><BR>&gt;From 
        conference.conf.xml:<BR>&nbsp;...<BR>&nbsp;&lt;caller-controls&gt;<BR>&nbsp; 
        &nbsp;...<BR>&nbsp; &nbsp;&lt;group name="just_exit"&gt;<BR>&nbsp; 
        &nbsp; &nbsp;&lt;control action="hangup" digits="#"/&gt;<BR>&nbsp; 
        &nbsp; &nbsp;&lt;control action="hangup" digits="1"/&gt;<BR>&nbsp; 
        &nbsp; &nbsp;&lt;control action="mute" digits="0"/&gt;<BR>&nbsp; 
        &nbsp;&lt;/group&gt;<BR>&nbsp; 
        &nbsp;...<BR>&nbsp;&lt;/caller-controls&gt;<BR>&nbsp;...<BR>&nbsp;&lt;profiles&gt;<BR>&nbsp; 
        &nbsp;..<BR>&nbsp; &nbsp;&lt;profile name="confX_M"&gt;<BR>&nbsp; &nbsp; 
        &nbsp;...<BR>&nbsp; &nbsp; &nbsp;&lt;param name="caller-controls" 
        value="just_exit"/&gt;<BR>&nbsp; &nbsp; &nbsp;...<BR>&nbsp; 
        &nbsp;&lt;/profile&gt;<BR>&nbsp; &nbsp;&lt;profile 
        name="confX_S"&gt;<BR>&nbsp; &nbsp; &nbsp;...<BR>&nbsp; &nbsp; 
        &nbsp;&lt;param name="caller-controls" value="just_exit"/&gt;<BR>&nbsp; 
        &nbsp; &nbsp;...<BR>&nbsp; 
        &nbsp;&lt;/profile&gt;<BR>&nbsp;&lt;/profiles&gt;<BR>&nbsp;...<BR><BR><BR>&gt;From 
        dialplan (own) public/confX.conf.xml:<BR>&nbsp; &nbsp;...<BR>&nbsp; 
        &nbsp;&lt;extension name="confX_join"&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;condition field="destination_number" 
        expression="^confX_join$"/&gt;<BR>&nbsp; &nbsp; &nbsp;&lt;condition 
        field="${confX_num}" expression="^1(\d{4})$"&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="bind_meta_app" data="1 a 
        s<BR>execute_extension::subX_1"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="bind_meta_app" data="2 a 
        s<BR>execute_extension::subX_2"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="bind_meta_app" data="3 a 
        s<BR>execute_extension::subX_3"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="conference" 
        data="confX_${cpnfX_num}@confX_M"/&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;/condition&gt;<BR>&nbsp; &nbsp;&lt;/extension&gt;<BR>&nbsp; 
        &nbsp;...<BR>&nbsp; &nbsp;&lt;extension name="subX_1"&gt;<BR>&nbsp; 
        &nbsp; &nbsp;&lt;condition field="destination_number" 
        expression="^subX_1$"&gt;<BR>&nbsp; &nbsp; &nbsp; &nbsp;&lt;action 
        application="set" data="pass_rfc2833=true"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="conference" 
        data="confX_${cpnfX_num}_1@confX_S"/&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;/condition&gt;<BR>&nbsp; &nbsp;&lt;/extension&gt;<BR>&nbsp; 
        &nbsp;&lt;extension name="subX_2"&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;condition field="destination_number" 
        expression="^subX_2$"&gt;<BR>&nbsp; &nbsp; &nbsp; &nbsp;&lt;action 
        application="set" data="pass_rfc2833=true"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="conference" 
        data="confX_${cpnfX_num}_2@confX_S"/&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;/condition&gt;<BR>&nbsp; &nbsp;&lt;/extension&gt;<BR>&nbsp; 
        &nbsp;&lt;extension name="subX_3"&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;condition field="destination_number" 
        expression="^subX_3$"&gt;<BR>&nbsp; &nbsp; &nbsp; &nbsp;&lt;action 
        application="set" data="pass_rfc2833=true"/&gt;<BR>&nbsp; &nbsp; &nbsp; 
        &nbsp;&lt;action application="conference" 
        data="confX_${cpnfX_num}_3@confX_S"/&gt;<BR>&nbsp; &nbsp; 
        &nbsp;&lt;/condition&gt;<BR>&nbsp; &nbsp;&lt;/extension&gt;<BR>&nbsp; 
        &nbsp;...<BR><BR><BR>During connection user is first handled by IVR, 
        where he enters<BR>conference number (assume: "1234") which is stored in 
        "confX_num"<BR>variable. Then call is transfered to "confX_join". Here I 
        assign actions<BR>for *1, *2 and *3 DTMF sequences then join main 
        conference<BR>("confX_1234_M"). When some user presses i.e. "*2" then he 
        also enters<BR>subconf 2 ("confX_1234_2"). Those users attached to 
        "confX_1234_2" are<BR>at the same time still attached also to 
        "confX_1234_M", but found muted<BR>and deaf to other participants. Then, 
        leaving subconference they will be<BR>back "alive" in master conference, 
        which I tested by kicking them from<BR>"confX_1234_2" 
        manually.<BR><BR>Now my problem begins. Then user is on "confX_1234_M" 
        dialing "#" forces<BR>user to leave conference, as defined in 
        "just-exit" controls. But when<BR>user enters also "confX_1234_2" DTMF 
        codes are no longer processed,<BR>neither by master conference nor by 
        subconference. I set<BR>"pass_rfc2833=true" but it is not helpful. Did I 
        missed to set something<BR>[1] in the dialplan or other config files, or 
        [2] actually no DTMF codes<BR>can be processed while in "*2" leg? And if 
        [2]==true: would it be<BR>possible to develop such DTMF 
        handling?<BR><BR>BTW: DTMFs are not processed while in subconference but 
        if user is<BR>kicked off from subconf back to main conference, one can 
        use DTMF codes<BR>again to (un)mute (0), join sub (*2) or leave (# or 
        1).<BR><BR>TIA for your help or 
        tips.<BR><BR>Regards,<BR>Mariusz<BR><BR><BR><BR>_______________________________________________<BR>FreeSWITCH-users 
        mailing list<BR><A 
        href="mailto:FreeSWITCH-users@lists.freeswitch.org">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></BLOCKQUOTE>
    <P>&nbsp;</P><BR></BLOCKQUOTE>
  <P><BR></P><BR>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>FreeSWITCH-users 
  mailing 
  list<BR>FreeSWITCH-users@lists.freeswitch.org<BR>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users<BR>UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users<BR>http://www.freeswitch.org<BR></BLOCKQUOTE></BODY></HTML>