[asterisk-users] vars in Macros called by DIAL with option M

Tilghman Lesher tilghman at mail.jeffandtilghman.com
Tue Aug 5 15:02:14 CDT 2008


On Tuesday 05 August 2008 14:19:44 Thomas Winter wrote:
> On Tuesday 05 August 2008 18:04, Tilghman Lesher wrote:
> > 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/123 at provider,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).
>
> I see..
>
> > 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.
>
> I dont want to use trunk, but thanks for info...

Just for the sake of showing how easy it was, I just backported func_shared
to 1.4.  Took all of 5 minutes:
http://svncommunity.digium.com/view/tilghman/branches/1.4/

-- 
Tilghman



More information about the asterisk-users mailing list