Sip.conf: call-limit question

After playing with call-limit a bit in the sip.conf file, I’ve come to the conclusion that if a call comes in to a sip extension that is already on the line, it will merely procede normally to the next priority, instead of jumping n+101 in the case when the line is busy.

This strikes me as counter-intuitive: The line is busy, and therefore it should to the priority jump.

Now, having said that, can anybody suggest a work around? I’d like to allow x calls per extension ( an arbitrary amount ), and if any other calls come in, go to “Busy” voicemail. If I have to I’ll work something up in extensions.conf, but I’d prefer to use call-limit if possible ( makes the configs cleaner to read ).


( asterisk 1.2.0 )

How about something like this:

exten => s,1,Answer()
exten => s,2,GotoIf(${NUMCALLS>4}?10)
exten => s,3,SetVar(NUMCALLS=$[${NUMCALLS} + 1])
exten => s,4,Dial(somewhere)
exten => s,5,SetVar(NUMCALLS=$[${NUMCALLS} - 1])
exten => s,6,Hangup()
exten => s,10,Voicemail(xxx)
exten => s,11,Hangup()