which leg do you want to see the variable and which leg do you need to execute the extension

normally execute_on_answer is not used to do any prolonged activities since it will indeed block the progress of the call until the application you specified is done so it's normally just used to set a variable or schedule a call hangup etc.


if you only want the execute_on_answer to happen on the b-leg you can do the following in your existing code.

  <action application="export" data="nolocal:execute_on_answer=execute_extension ONANSWER XML default"/>


the nolocal: tells the system to only set the variables on the b-legs spawned from the current channel and never the A leg itself otherwise export will set the variable on both legs.

This is the same as using {execute_on_answer='execute_extension ONANSWER XML default'}
at the beginning of your dial string.
 
The variables you put in the [foo=bar] will only be set on the B-legs spawned off from that originate.

if you do it like i mentioned here you can eliminate all of the checks for a or b leg because you will be certain that the event is only triggered on the B legs



On Thu, Sep 25, 2008 at 1:57 PM, Jon Bruel <jbr@consiglia.dk> wrote:

Anthony, this is a simplified version dialplan, just for an illustration of the previous posts:


file default.xml:

<?xml version="1.0" encoding="utf-8"?>
<include>
  <context name="default">
    <extension name="Local_Extension">
      <condition field="destination_number" expression="^(10[01][0-9])$">
         <action application="set" data="leg=a"/>
         <action application="set" data="destination=user/$1@10.3.1.11"/>
         <action application="export" data="execute_on_answer=execute_extension ONANSWER XML default"/>
         <action application="bridge" data=" ="[NEWVARIABLE=AAABBBCCC]${destination}"/>
      </condition>
   </extension>


   <extension name="Call_Answered">
      <condition field="destination_number" expression="^ONANSWER$">
          <action application="execute_extension" data="INFO XML info"/>
      </condition>
   </extension>
  </context>
</include>

file info.xml:


<xml version="1.0" encoding="utf-8"?>
<include>
  <context name="info">
      <extension name="Call_Info">
            <condition field="destination_number" expression="^INFO$" />

            </condition>
            <condition field="${leg}" expression="^a$">
                  <!-- We are in the b-leg-->
                  <anti-action application="set" data="On_Answer_Is_It_Then_Passed=${NEWVARIABLE}"/>
                  <anti-action application="info"/>
            </condition>
      </extension>
  </context>
</include>

Sorry about my inconsistent use of the terms, the XML about should explain. /Jon

 


_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org




--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400