[asterisk-users] [FIXED] Re: call-limit on a per destination basis

Klaus Darilion klaus.mailinglists at pernau.at
Fri Feb 27 09:54:26 CST 2009


Just a tip: throw extensions.conf away and use extensions.ael - much 
more easy:

_0262XXXXXX => {
   Set(GROUP()=Reunion);
   if( ${GROUP_COUNT(Reunion)} > 24) {
   NoOp(Total channels congested, retuning NOCAV);
   Congestion();
} else {
   NoOp(This channel is member of group: ${GROUP()});
   NoOp(Number of channels is ${GROUP_COUNT(Reunion)});
   Set(SPYGROUP=1003);
   Dial(IAX2/dedibox-etang-sale/${EXTEN});
   Congestion();
}



Further, I would use a macro:

macro checkMaxCallsMakro(groupid,limit) {
   if ( ${GROUP_COUNT(${groupid})} >= ${limit} ) {
     NoOp(ERROR: Limit ${hardlimit} reached for ${groupid}!);
     Hangup(34);     //Cause No. 34: no circuit/channel av. (SIP 503)
   }
   Set(GROUP()=${groupid});
}
context foobar {
   _0262XXXXXX => {
     &checkMaxCallsMakro(Reunion,24)
     Set(SPYGROUP=1003);
     Dial(IAX2/dedibox-etang-sale/${EXTEN});
     Congestion();
   }
}

regards
klaus

Jean-Michel Hiver schrieb:
> The correct syntax for GotoIf is:
> 
> exten => _0262XXXXXX,n,GotoIf($[${GROUP_COUNT(Reunion)}>24]?500)
> 
> Otherwise it seems to evaluate the string "number > 24" which is always 
> true.
> 
> Duh...
> 
> Thx
> JM
> 
> -- 
> Jean-Michel Hiver - Synapse co-founder & CTO
> GSM +262 692 828 070



More information about the asterisk-users mailing list