On Tuesday 05 August 2008 10:47:34 Thomas Winter wrote:
> Hi all,
>
> Iam using an DIAL Command wird Macro if callee is answer the call.
>
> exten => 123,n,DIAL(SIP/[EMAIL PROTECTED],180,gM(test_connect))
> exten => 123,n,NoOp( ${var_from_macro})
>
>
> In Macro test_connect Iam generating an new variable var_from_macro and
> would like to use this var in the original dialplan.
> I tried also __var_from_macro but didnt work. How can I set vars in macros
> called by DIAL so that I can use these vars in the Dialplan or in the h
> extention.

There isn't any good way to do that, period.  When it comes to inheritance,
variables are only inherited from a master channel to a slave channel.  In the
case of the Macro operating within the Dial, that Macro is occurring
exclusively on the slave channel.  You cannot directly set variables on other
channels (for obvious race-condition reasons).

However, you could do this in a roundabout way, either by using a database or
by using shared variables in trunk.  You'd need to first set (in the master
channel, before the Dial) an inherited variable containing the name of the
master channel, i.e. Set(_masterchan=${CHANNEL(name)}), then use that
inherited variable to set the shared variable in the master channel from the
slave channel, i.e. Set(SHARED(foo,${masterchan})=...).  Finally, you would
be able to access the shared variable in the master channel with
${SHARED(foo)}.  Again, the SHARED function is only available in trunk at this
time, although you could probably backport it to 1.4 with minimal trouble.

-- 
Tilghman

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to