Brian, Michael, Thanks for the help - I had read that but not fully comprehended it until you spun it the way you did. Here's what I ended up with - if there's optimization that could be done let me know. Happy to update the wiki if this is a common request. <!-- Provide an internal ext # for Sales --> <extension name="RS-Sales-x2002"> <condition field="destination_number" expression="^2002$"> <action application="transfer" data="RS-Sales"/> </condition> </extension> <!-- Setup variables prior to transfering to call handler for sales --> <extension name="RS-Sales" continue="true"> <!-- man strftime - M-F, 9AM to 5PM --> <condition field="destination_number" expression="^RS-Sales$"/> <condition field="${strftime(%w)}" expression="^([1-5])$"/> <condition field="${strftime(%H%M)}" expression="^((09|1[0-6])[0-5][0-9]|1700)$"> <action application="set" data="RS-Sales_open=true"/> <action application="transfer" data="xfer-to-sales"/> <anti-action application="set" data="RS-Sales_open=false"/> <anti-action application="transfer" data="xfer-to-sales"/> </condition> </extension> <!-- Handle Sales Call --> <!-- If Sales is open then route to extension first then vMail; else direct to vMail --> <extension name="xfer-to-sales"> <condition field="destination_number" expression="^xfer-to-sales$"/> <condition field="${RS-Sales_open}" expression="^true$"> <action application="bridge" data="user/1001@${domain_name}"/> <action application="answer"/> <action application="sleep" data="2000"/> <action application="voicemail" data="default ${domain_name} 2001"/> <anti-action application="voicemail" data="default ${domain_name} 2001"/> </condition> </extension> Thx, Chris. From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Michael Collins Sent: Wednesday, April 22, 2009 13:10 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Using Variables in Dialplans On Wed, Apr 22, 2009 at 12:19 PM, Chris Fowler <chris@fowler.cc> wrote: I have the following defined: <!-- Billing Open? --> <extension name="billing_open" continue="true"> <!-- man strftime - M-F, 9AM to 5PM --> <condition field="${strftime(%w)}" expression="^([1-5])$"/> <condition field="${strftime(%H%M)}" expression="^((09|1[0-6])[0-5][0-9]|1700)$"> <action application="set" data="billingopen=true"/> </condition> </extension> <!-- billing line --> <extension name="billing"> <condition field="destination_number" expression="^billing$|^2001$"/> <condition field="billingopen" expression="^true$"> <...> But despite the "Billing Open" ext firing correctly: Action set(billingopen=true) The Billing extenstion fails to get the data: Regex (FAIL) [billing] billingopen() =~ /^true$/ break=on-false Please could someone point me in the right direction for using variables correctly in a dialplan? I must be missing something simple... Thanks, Chris. This is a classic case of "dialplan is parsed all at once." The reason that it is failing is because ${billingopen} is not defined when the extension named "billing" is parsed. You need another pass through the dialplan, for example by adding a transfer app to your "billing_open" extension: <!-- Billing Open? --> <extension name="billing_open" continue="true"> <!-- man strftime - M-F, 9AM to 5PM --> <condition field="${strftime(%w)}" expression="^([1-5])$"/> <condition field="${strftime(%H%M)}" expression="^((09|1[0-6])[0-5] <action application="set" data="billingopen=true"/> <action application="transfer" data="billing"/> </condition> </extension> This will send the call back through the dialplan and into the "billing" extension, this time with the value of ${billing_open} == "true" so you can now work with it. The originally dialed number is now available in the ${rdnis} channel variable in case you need it. Have fun and let us know how it goes. -MC