[OpenSIPS-Users] using load balancer and lookup together
Michael Vale
masked at vale.ski
Mon Apr 6 01:58:29 EST 2020
Thanks David and thanks Ben,
I have implemented a failure route that works now.
I will rectify the duplicate lb_start calls and I'm good.
regards,
Michael.
On Sun, 2020-04-05 at 19:08 +0000, Ben Newlin wrote:
> That is what failure_routes are for. You can “catch” the 404 in a
> failure_route and choose somewhere else to attempt to send the call.
> You don’t have to just send back the response all the time.
>
> But what I think David was trying to ask is just why you are
> combining the lb_start and lookup calls always into a single if
> statement. This is very confusing and will end up with lb_start
> and/or lookup being called more than once in many
> cases. I don’t use the load_balancer module, but I think calling
> lb_start multiple times in the same call/transaction may skew the
> load balancing stats.
>
> In your code snippet, you are even calling both lb_start and lookup
> again within if legs where their return values have already been
> checked.
>
> Ben Newlin
>
>
> From: Users <users-bounces at lists.opensips.org> on behalf of Michael
> Vale via Users <users at lists.opensips.org>
>
> Reply-To: Michael Vale <masked at vale.ski>, OpenSIPS users mailling
> list <users at lists.opensips.org>
>
> Date: Sunday, April 5, 2020 at 9:57 AM
>
> To: David Villasmil <david.villasmil.work at gmail.com>, OpenSIPS users
> mailling list <users at lists.opensips.org>
>
> Subject: Re: [OpenSIPS-Users] using load balancer and lookup together
>
>
>
>
>
> Ok, to explain,
>
>
>
>
>
> Using your logic,
>
>
>
>
>
> To call say '555' will goto Voicemail, if I disable voicemail it will
> return a 404 instead of going to the load balancer.
>
>
>
>
>
> That's fine, if 555 is an extension, but if it's (for this example) a
> PSTN number (or a all-else catch all, like I'm trying to achieve)
> thats not OK because I get a 404 rather than it getting routed to the
> load balancer.
>
>
>
>
>
> If 555 is an extension/user the call will go through to the
> registered extension, but if it's not registered in the usrloc table,
> it goes to 404, instead of the load balancer.
>
>
>
>
>
> If I reverse the logic, It will goto the load balancer even if it's a
> registered extension, or Too Many Hops, depending on how I adjust the
> logic.
>
>
>
>
>
> I cannot seem to create a catch all for non-usrloc registered
> extension calls to goto the load balancer otherwise return a 404.
>
>
>
>
>
> I hope I explained it well enough. I will keep trying,
>
>
>
>
>
> Regards,
>
>
>
>
>
> Michael.
>
>
>
>
>
> On Sun, 2020-04-05 at 11:47 +0100, David Villasmil wrote:
>
> >
> > Why are you trying to do all at once?
> >
> >
> >
> >
> >
> > Why not first do the lookup
> >
> >
> >
> >
> >
> >
> > https://github.com/davidcsi/kamailio-private-public/blob/a81d7f777a8c5ee2dbb32311f7e6b5a3cf94bf32/kamailio.cfg#L771
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > and then start load balancing?
> >
> >
> >
> >
> >
> >
> > https://github.com/davidcsi/kamailio-private-public/blob/a81d7f777a8c5ee2dbb32311f7e6b5a3cf94bf32/kamailio.cfg#L1109
> >
> >
> >
> >
> >
> >
> >
> > Do you have some special need to fulfill?
> >
> >
> >
> >
> >
> > David
> >
> >
> >
> >
> >
> >
> > On Sun, 5 Apr 2020 at 06:34, Michael Vale via Users <
> > users at lists.opensips.org> wrote:
> >
> > > hi,
> > >
> > >
> > >
> > > perhaps this can be solved with a failure route and or a check
> > > status
> > >
> > > but i dont know and it would be nice if i could do it without it.
> > >
> > >
> > >
> > > no matter how i write the script, either a uac to uac call goes
> > > to the
> > >
> > > load balancer or the load balancer is stuck with a 404 reply from
> > > the
> > >
> > > script or uac to uac works but when one end is not registered it
> > > goes
> > >
> > > to the load balancer instead of getting a 404.
> > >
> > >
> > >
> > > i've tried failure routes and get the same problem. here is a
> > > snippet.
> > >
> > >
> > >
> > > if (!lb_start(1,"pstn")) && (!lookup("location","m",)) {
> > >
> > > lb_disable_dst();
> > >
> > > #route(relay);
> > >
> > > #send_reply(404,"No user or gateway");
> > >
> > > if (lb_start(1,"pstn")) {
> > >
> > > send_reply(500,"SIPSIPSIPS");
> > >
> > > # t_relay();
> > >
> > > exit;
> > >
> > > }
> > >
> > > # exit;
> > >
> > > } else if (lookup("location","m")) &&
> > >
> > > (!lb_start(1,"pstn")) {
> > >
> > > lb_disable_dst();
> > >
> > > route(relay);
> > >
> > > exit;
> > >
> > > } else if (lb_start(1,"pstn")) &&
> > >
> > > (lookup("location","m")) {
> > >
> > > lb_disable_dst();
> > >
> > > route(relay);
> > >
> > > exit;
> > >
> > > } else if (!lookup("location","m")) &&
> > >
> > > (!lb_start(1,"pstn")) {
> > >
> > > send_reply(404,"Not Found");
> > >
> > > exit;
> > >
> > > } else if (lb_start(1,"pstn")) &&
> > >
> > > (!lookup("location","m")) {
> > >
> > > # #lb_disable_dst();
> > >
> > > if (!lookup("location","m")) {
> > >
> > > route(relay);
> > >
> > > exit;
> > >
> > > }
> > >
> > > if (lookup("location","m")) {
> > >
> > > lb_disable_dst();
> > >
> > > route(relay);
> > >
> > > exit;
> > >
> > > }
> > >
> > > }
> > >
> > >
> > >
> > > thanks in advance,
> > >
> > >
> > >
> > > michael.
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > >
> > > Users mailing list
> > >
> > > Users at lists.opensips.org
> > >
> > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
> >
> > --
> >
> >
> >
> > Regards,
> >
> >
> >
> >
> > David Villasmil
> >
> > email:
> > david.villasmil.work at gmail.com
> >
> >
> > phone: +34669448337
> >
> >
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20200406/b4f2c09f/attachment.html>
More information about the Users
mailing list