[asterisk-users] Trying to get sample applicationmap to work (*1.4)

Mark Michelson mmichelson at digium.com
Thu Mar 12 18:54:54 CDT 2009


David Ruggles wrote:
> I don't really think that's a problem, because I'm able to use the other
> built in options: *1 to record; ## transfer (I changed this from a single
> pound) and there have been a couple times that I wouldn't hit them quickly
> enough.
> 
> Thanks,

Ah, sorry about that. The featuredigittimeout burns so many people that it's 
pretty much a knee-jerk reaction on my part now to suggest that as a potential fix.

To test out, I set up the same feature and gave it a try with a current 
subversion checkout of Asterisk 1.4. I placed a call from SIP/2001 to SIP/2000 
and here's what I found.

When SIP/2001 pressed #9, tt-monkeys played on SIP/2000's channel
When SIP/2000 pressed #9, nothing happened.

I tried modifying the features.conf line to have "peer/callee" instead of just 
"peer" and that caused neither side to successfully use the dynamic feature. 
There appears to be a bug which does not allow for the callee to use dynamic 
features. The problem appears to be that when DTMF is pressed, we try to 
interpret the presses to determine if there is a corresponding feature. The 
DYNAMIC_FEATURES variable has been set on the caller's channel, but has not been 
set on the callee's channel. As a result, we don't properly read the value of 
the DYNAMIC_FEATURES variable if the callee is the one to press DTMF.

You can work around the bug, although it's not exactly optimal. What you can do 
is to modify your dialplan as follows:

exten => 301,n,Set(DYNAMIC_FEATURES=monkey)
exten => 301,n,Dial(SIP/DavidR1,,M(dynamic_features))

[macro-dynamic_features]
exten => s,1,Set(DYNAMIC_FEATURES=monkey)

By doing this, the dynamic_features macro will be called on SIP/DavidR1 when he 
answers. This will allow for the DYNAMIC_FEATURES variable to be set on both 
channels so both sides can use the feature you have set.

This is a bug, and so there needs to be action to fix it correctly. What I've 
suggested is just a workaround, but it should get you through your problem for now.

Mark Michelson



More information about the asterisk-users mailing list