Douglas Garstang
2006-Jun-14 16:21 UTC
[Asterisk-Users] DUNDi Not Able to Handle Complex Failover Situations
This is driving me nuts. Why doesn't the DUNDILOOKUP function return the weight of a path to a number? The CLI 'dundi lookup' command does. What about the mac address and expiry period? The CLI command returns those, but the DUNDILOOKUP function does not. Why? We absolutely need this in order to perform out routing logic. It has become quite apparent to me that DUNDi is _NOT_ suited to performing failover applications. It is suited to situations where you want to check a number on a series of peers before routing the call through an expensive PSTN gateway. It is not suited to situations where you want to dynamically discover where a number is located within a cluster of Asterisk systems. In our particular scenario, we have ACD queues. Our phones register with a primary Asterisk box. The primary Asterisk box for company A may be different to the primary Asterisk box for company B. In the event that a user in company B wants to reach Company A's queue, we need to use DUNDi to perform a lookup that returns it's company A's primary Asterisk box. However, the primary Asterisk box may have failed, it which case the DUNDi lookup should return the secondary Asterisk system for Company A to the dial plan routing the call. This may have not made sense.... brain is fried after dealing with this all day. DUNDi seems to be falling really short in performing complex discovery and failover applications like this. If the DUNDILOOKUP fuction returned a weight, it would help a lot. Oh... also.... when you call the dundi lookup CLI command, you get multiple results. The DUNDILOOKUP function only returns one value. How can I get _all_ DUNDi paths with DUNDILOOKUP? Doug.
Terry Wilson
2006-Jun-14 17:03 UTC
[Asterisk-Users] DUNDi Not Able to Handle Complex Failover Situations
pbx/pbx_dundi.c in dundifunc_read(). shouldn't be too hard to have it set some variables (i.e. DUNDI_RESULT_n) and add the the weight in a CUTable string. Can't return multiple results in a nice manner with the result from a custom dialplan function... I'm working on some other projects right now, but I'm sure the Digium folks would welcome a patch from you if you really want it. On 6/14/06, Douglas Garstang <dgarstang@oneeighty.com> wrote:> > This is driving me nuts. > > Why doesn't the DUNDILOOKUP function return the weight of a path to a > number? The CLI 'dundi lookup' command does. What about the mac address and > expiry period? The CLI command returns those, but the DUNDILOOKUP function > does not. Why? > > We absolutely need this in order to perform out routing logic. > > It has become quite apparent to me that DUNDi is _NOT_ suited to > performing failover applications. It is suited to situations where you want > to check a number on a series of peers before routing the call through an > expensive PSTN gateway. It is not suited to situations where you want to > dynamically discover where a number is located within a cluster of Asterisk > systems. > > In our particular scenario, we have ACD queues. Our phones register with a > primary Asterisk box. The primary Asterisk box for company A may be > different to the primary Asterisk box for company B. In the event that a > user in company B wants to reach Company A's queue, we need to use DUNDi to > perform a lookup that returns it's company A's primary Asterisk box. > However, the primary Asterisk box may have failed, it which case the DUNDi > lookup should return the secondary Asterisk system for Company A to the dial > plan routing the call. This may have not made sense.... brain is fried after > dealing with this all day. > > DUNDi seems to be falling really short in performing complex discovery and > failover applications like this. If the DUNDILOOKUP fuction returned a > weight, it would help a lot. > > Oh... also.... when you call the dundi lookup CLI command, you get > multiple results. The DUNDILOOKUP function only returns one value. How can I > get _all_ DUNDi paths with DUNDILOOKUP? > > Doug. > > _______________________________________________ > --Bandwidth and Colocation provided by Easynews.com -- > > Asterisk-Users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20060614/edf80c6e/attachment.htm
Aaron Daniel
2006-Jun-14 18:09 UTC
[Asterisk-Users] DUNDi Not Able to Handle Complex Failover Situations
On Wed, 14 Jun 2006, Douglas Garstang wrote:> Why doesn't the DUNDILOOKUP function return the weight of a path to a number? The CLI 'dundi lookup' command does. What about the mac address and expiry period? The CLI command returns those, but the DUNDILOOKUP function does not. Why?Correct me if I'm wrong, but DUNDi is doing all the failover work for you. It decides based on the weights what route is best. If you want one route to be higher than another, set it up that way. That's the benefit of using DUNDILOOKUP to handle it, no more work for you after the initial routing. If that doesn't work for you, program the routes directly into the dialplan instead of using DUNDi, it seems like you'll get better results that way. We did that for a while until we decided to move to DUNDi. Some people will find it more suited to their needs, some won't. -- Aaron Daniel Computer Systems Technician Sam Houston State University amdtech@shsu.edu (936) 294-4198