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