On Wed, 15 Aug 2007, Nicholas Blasgen wrote: > I have 10 SIP trunks that I'd really like to round-robin load balance. > Currently I have a macro that switches between available lines, but there > really must be a function in Asterisk to do this on its own. So my question > is just that, are there any easy ways for Asterisk to either balance between > SIP trunks or even just a built in function to find the next available SIP > trunk. I think using a macro to test the state of each trunk is silly, but > it's the only method I've found.
I wonder (and sometimes question!) the wisdom of putting everything into asterisk when it can be implemented in the dial-plan (or as I posted recently putting stuff out of the dialplan into AGI when it can be done in the dialplan) I'm sure there are cases where both are valid, but I'm a great believer in the KISS principle, and if we keep the "core" of asterisk clean and simple, then we can develop add-ons in the dialplan, or elsewhere... (And after saying that, I have to say that the dial-plan programming language is one of the more esoteric programming languages I've used in the 26 years or so I've been programming!) So, if we have sip-outX as out 10 sip trunks (0-9), then: (untested ;-) [globals] sipTrunk=9 ... [macro-dialSipTrunk] exten => s,1,Noop(Dialling out via round-robin SIP trunk) exten => s,n,Set(sipTrunk=$[${sipTrunk}+1]) exten => s,n,GotoIf($[${sipTrunk}=10],skip) exten => s,n,Set(sipTrunk=0) exten => s,n(skip)Noop(SIP dialling on trunk: ${sipTrunk}) exten => s,n,Dial(SIP/sip-out${sipTrunk},${ARG1},${ARG2}) ... maybe stuff here to deal with result of the DIAL. ... eg. on congestion you might to jump back to step 2 ... but if you did that then you might want to start a 2nd counter ... which when it reached 10, you're SOL and can return congestion ... to the caller..... Maybe I've just been writing too much dialplan stuff lately!!! Gordon _______________________________________________ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users