[Freeswitch-users] bind_meta_app blocks DTMFs?

Madovsky infos at madovsky.org
Fri Apr 15 20:51:43 MSD 2011


      <action application="set" data="hangup_after_bridge=false"/>
      <action application="set" data="continue_on_fail=true"/>
you don't need to specify continue_on_fail=tru since you don't hangup after bridge


  ----- Original Message ----- 
  From: Mariusz Czulada 
  To: FreeSWITCH Users Help 
  Sent: Friday, April 15, 2011 8:23 AM
  Subject: Re: [Freeswitch-users] bind_meta_app blocks DTMFs?


  Hi all,



  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:

  <action application="conference" data="confX_${confX_num}_2"/>


  with call via loopback:

  <action application="bridge" data="loopback/app=conference:cx_${cx_num}_2"/>

  Now my subX_2 extension looks like this:



    <extension name="subX_2">


      <condition field="destination_number" expression="^subX_2$">
        <action application="set" data="pass_rfc2833=true"/>
        <action application="set" data="hangup_after_bridge=false"/>
        <action application="set" data="continue_on_fail=true"/>
        <action application="set" data="bridge_terminate_key=2"/>
        <action application="bridge" data="loopback/app=conference:cx_${cx_num}_2"/>
      </condition>
    </extension>




  Now after pressing "*2":

  * all parties which joined subconference can speak to/hear each other,

  * after pressing "2" they leave sub and return to main conference,

  * other participants of main conference hear no beeps - joining subconf is like "mute" and returning to main conf like "unmute"



  Regards,



  Mariusz



  Dnia 18-01-2011 o godz. 18:33 Mariusz Czulada napisał(a):

    Michael, Brian,



    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):



    <include>
        <extension name="test_subconf">
          <condition field="destination_number" expression="^(34\d{2})$">
            <action application="set" data="confX_num=$1"/>
            <action application="answer"/>
            <action application="transfer" data="confX_join"/>
          </condition>
        </extension>
        <extension name="confX_join">
          <condition field="destination_number" expression="^confX_join$">
            <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="conference" data="confX_${confX_num}"/>
          </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_${confX_num}_1"/>
          </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_${confX_num}_2"/>
          </condition>
        </extension>
    </include>




    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.



    What I observed was:

    * while joining "confX_3400_1" first user hears "you are the only..." message, then MOH

    * when second user joins "confX_3400_1", both hear entry beep, and MOH stops

    * 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 "#"

    * while in "confX_3400_1" no one can be hear; just like they were muted

    * while in "confX_3400_1" they are still listed as "confX_3400"participants

    * after they're kicked from "confX_3400_1" from  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.



    So at this moment I have two problems:

    * User cannot use "#" even if it is defined as a "hangup" action in "default" configuration profile (used here).

    * Users cannot hear each other (or they cannot talk to each other, but the result is the same).



    My question is: is there something I missed in a dialplan or this is the way freeswitch works now?



    Regards,



    Mariusz



    Dnia 14-01-2011 o godz. 19:39 Michael Collins napisał(a):

      Mariusz, 


      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  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.)


      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 (pastebin.freeswitch.org) and we'll take a look.


      -MC


      On Fri, Jan 14, 2011 at 8:31 AM, Mariusz Czulada <manieq at wp.eu> wrote:

        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 at 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 at 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 at 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



        _______________________________________________
        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














------------------------------------------------------------------------------


  _______________________________________________
  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/20110415/f086f941/attachment-0001.html 


More information about the FreeSWITCH-users mailing list