[Asterisk-Users] Any way to _always_ execute certain commands
	in a dialplan context?
    Kevin P. Fleming 
    kpfleming at backtobasicsmgmt.com
       
    Fri Sep  3 10:45:52 MST 2004
    
    
  
Kris Boutilier wrote:
> [foo-context]
> ; This needs to match the criteria for tollfree, say a 91800 prefix
> exten => _91800.,1,SetCIDNum(123)
> exten => _91800.,2,SetCIDName(XYZ)
> exten => _91800.,3,Goto(tollfree,${EXTEN},1)
This is the direction I started going; however, I need to implement this 
for multiple clients, and I'm not keen on duplicating the pattern 
matching in separate contexts for each client. That's why I was trying 
to find a solution that would let me use an "included" context, but 
still provide commands to be executed if that included context found a 
match. I may work on coding this up, as I think it could be very useful.
> It could also be implemented as:
> 
> [foo-context]
> ; This needs to match the criteria for tollfree, say a 91800 prefix
> exten => _91800.,1,Macro(setOutgoingCLID)
> exten => _91800.,2,Goto(tollfree,${EXTEN},1)
> 
> [macro-setOutgoingCLID]
> exten => s,1,SetCIDNum(123)
> exten => s,2,SetCIDName(XYZ)
I also considered this, and if there was any way to have something like:
exten => _91800.,1,Macro(setCID#${ACCOUNTCODE})
then it would work well. I have not yet tried this, but based on the way 
the dialplan is imported into Asterisk (and displayed via "show 
dialplan"), I don't think it's possible for the decision of which macro 
to call to be made at run-time (as opposed to config file parsing time).
Another option would be to use Goto(Local/${ACCOUNTCODE}-CLID), to make 
the "subroutine" call at runtime, but I'm leery of doing that for a 
couple of reasons: it could seriously mess up my CDR, and I don't know 
(without testing) if SetCIDNum/SetCIDName changes made in the called 
context will propagate back (since going to "Local" sort-of creates a 
new channel).
    
    
More information about the asterisk-users
mailing list