Help me with features.conf

Hi. I have configured the option 34 to Transfer the call using a macro

MyFun1=>34,self/both,Macro,TransferTheCall

I have set the variable like this
[extensions]
exten=>_XXX,1,Set(DYNAMIC_FEATURES=MyFunc1)
exten=>_XXX,n,Dial(SIP/${EXTEN})
exten=>_XXX,n,Hangup

Ok, when I (The caller) dial to another extension (to a Callee) and the person in that extension answe my call, that person is able to use the feature 34 and me too BUT if I (the caller) transfer the call to myself and answer call, i’m not able to use the feature.

The POINT when I (the caller) call to another extension I’m able to use the feature just 1 time, the second time, it doesn’t recognize the feature, i dial and the callee (the other person) hear the digits. that just happen with the caller

The callee is able to use the feature as many time it want, but I’m (the caller) i’m able to just use the feature ONCE.
I really don’t know why the first time it works for me and the second try it doesn’t
I have configured the option for allow the callee and the caller to sue the feature but i have the same problem: Look:

Can u help me pleasE?

I think the problem is that everytime i dial a extension, it run in the context [extensions]
That means that everytime i dial a extension it set the

and maybe that’s the problem. So how can i avoid everytime i dial an extension to set that?
I mean, can i define the

in the SIP.CONF for each phone in sip.conf? How?

HEY! I fixed!!
I just set the var in the sip.conf for each phone
Like this:

[201]
type=friend
etc…
etc…
setvar=DYNAMIC_FEATURES=MyFunc1

IT WORKS! :smiley:
Thanks anyway…

You needed an _. As noted elsewhere, Macro is officially unsupported in featuremap.

Where i need the _?
Write the example bellow;


:wink:

really? Why? i am using the variable without the _ in front… is really need that or can i simple keep working with it without the _ ?

See doc/tex/channelvariables.tex (the section on inheritance).

Why is insecure to run macros in features?
The macro is deprecated?? What is the new name?

It is not insecure, it is unsafe. There is no guarantee that it will work correctly.

There is no new name for Macros. You should use GoSub instead, and, in fact, in the case of AEL, Macro is actually being simulated by subroutines, although not exactly.

From UPGRADE-1.6.txt:

[quote]* Macro() is now deprecated. If you need subroutines, you should use the
Gosub()/Return() applications. To replace MacroExclusive(), we have
introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
these functions in any location where you desire to ensure that only one
channel is executing that path at any one time. The Macro() applications
are deprecated for performance reasons. However, since Macro() has been
around for a long time and so many dialplans depend heavily on it, for the
sake of backwards compatibility it will not be removed . It is also worth
noting that using both Macro() and GoSub() at the same time is heavily
discouraged.[/quote]

From features.conf.sample:

[quote]; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
; applications. When applications are used in extensions.conf, they are executed
; by the PBX core. In this case, these applications are executed outside of the
; PBX core, so it does not make sense to use any application which has any
; concept of dialplan flow. Examples of this would be things like Macro, Goto,
; Background, WaitExten, and many more.
[/quote]