Thank you everyone, I appreciate that input. With the line changed to the following it does distribute load evenly; we'll try adding different sets soon.
#!define RTPENGINE_ADDR "udp:22.22.22.22:7724 udp:33.33.33.33:7724" On Fri, 10 Nov 2023 at 05:11, Daniel-Constantin Mierla via sr-users < [email protected]> wrote: > You might be right. > > I haven't used second parameter for set_rtpengine_set(), I don't recall > who implemented it, but maybe someone else can confirm if it is like that > and eventually add a clearer sentence there. > > Cheers, > Daniel > On 09.11.23 16:26, Ben Kaufman wrote: > > From a strictly linguistic point of view the sentence, “This is supported > by all rtpengine commands except rtpengine_manage()” is at the end of the > second paragraph, which is in reference to the second argument. I would > take it to mean that the second argument is not supported by > rtpengine_manage() – not that the entire function is not supported. Does > that seem correct? > > > > > > As reference the full section: > > > > --- > > 5.1. set_rtpengine_set(setid[, setid]) > > > > Sets the ID of the RTP proxy set to be used for the next > rtpengine_delete(), rtpengine_offer(), rtpengine_answer() or > rtpengine_manage() command. The parameter can be an integer or a config > variable holding an integer. > > > > A second set ID can be specified to daisy-chain two RTP proxies. The two > set IDs must be distinct from each other and there must not be any overlap > in the proxies present in both sets. In this use case, the request (offer, > answer, etc) is first sent to an RTP proxy from the first set, which > rewrites the SDP body and sends it back to the module. The rewritten SDP > body is then used to make another request to an RTP proxy from the second > set, which rewrites the SDP body another time and sends it back to the > module to be placed back into the SIP message. This is useful if you have a > set of RTP proxies that the caller must use, and another distinct set of > RTP proxies that the callee must use. This is supported by all rtpengine > commands except rtpengine_manage(). > > --- > > > > > > > > *From:* Daniel-Constantin Mierla via sr-users > <[email protected]> <[email protected]> > *Sent:* Thursday, November 9, 2023 2:25 AM > *To:* Kamailio (SER) - Users Mailing List <[email protected]> > <[email protected]> > *Cc:* Daniel-Constantin Mierla <[email protected]> <[email protected]> > *Subject:* [SR-Users] Re: Sharing load between rtpengine servers > > > > *CAUTION:* This email originated from outside the organization. *Do not > click links or open attachments* unless you recognize the sender and know > the content is safe. > > > > Hello, > > not sure why that remark is there, because contradicts with the first > paragraph that has: > > "Sets the ID of the RTP proxy set to be used for the next > rtpengine_delete(), rtpengine_offer(), rtpengine_answer() or > rtpengine_manage() command." > > - > https://www.kamailio.org/docs/modules/stable/modules/rtpengine.html#rtpengine.f.set_rtpengine_set > > I don't think that the last statement is good, maybe it propagated without > notice from a very old version. From code point of view, there is no reason > for set_rtpengine_set() not to work for rtpengine_manage(), this function > is a pretty simple wrapper for rtpengine_offer()/_answer()/_delete(). > > I am going to remove that last statement from docs. > > Cheers, > Daniel > > On 09.11.23 01:06, David Cunningham via sr-users wrote: > > Hi Alex, > > > > It's on the page that you linked to: "This is supported by all rtpengine > commands except rtpengine_manage()." > > > > Thanks. > > > > > > On Thu, 9 Nov 2023 at 12:55, Alex Balashov <[email protected]> > wrote: > > Hi David, > > Whence the impression that sets aren't compatible with rtpengine_manage()? > > > https://kamailio.org/docs/modules/5.7.x/modules/rtpengine.html#rtpengine.f.set_rtpengine_set > > "Sets the ID of the RTP proxy set to be used for the next > rtpengine_delete(), > rtpengine_offer(), rtpengine_answer() or rtpengine_manage() command. > The parameter > can be an integer or a config variable holding an integer." > > Or are you using an earlier version of Kamailio in which this may not have > been true? > > -- Alex > > > On 8 Nov 2023, at 18:52, David Cunningham <[email protected]> > wrote: > > > > Hi Alex, > > > > Thank you for the reply. We use a large weight of 99999999 to send > almost all calls to the 22.x and 33.x servers without using sets. We > avoided sets because our Kamailio configuration uses rtpengine_manage(), > which according to the documentation is not compatible with > set_rtpengine_set(). I'll try it without the 11.x server and the large > weights, and see if the calls are evenly distributed between the 22.x and > 33.x servers then. > > > > Thanks again. > > > > > > On Thu, 9 Nov 2023 at 10:25, Alex Balashov via sr-users < > [email protected]> wrote: > > Hi, > > > > From the docs: > > > > "The balancing inside a set is done automatically by the module based on > the weight of each RTPEngine from the set. The default weight is 1, if > another RTPEngine should be used twice as often as the first one, one would > specify the weight 2 for this server, for example." > > > > I am unsure as to what effect such large values as 99999999 might have > on this arithmetic. > > > > It seems to me that if what you really want to accomplish is to evenly > distribute calls between 22.22.22.22 and 33.33.33.33, with 11.11.11.11 only > as a last-resort backup, then you should put the first two into one naive > set without any weights, e.g. > > > > modparam("rtpengine_sock", "1 == udp:22.22.22.22:7724 udp: > 33.33.33.33:7724") > > > > Then put 11.11.11.11 into a set of its own: > > > > modparam("rtpengine_sock", "2 == udp:11.11.11.11:22724") > > > > By default, set 1 should be invoked: > > > > set_rtpengine_set("1"); > > rtpengine_{offer,manage}("..."); > > > > According to the docs, rtpengine_offer() will return a negative value if > there is a failure of both: > > > > "The function will return true on success and false (-1) on various > failures, like > > using rtp_engine_offer() on a SIP MESSAGE request or communication > with rtpengine fails." > > > > Presumably, rtpengine_manage() does the same. Accordingly, you can do > something like: > > > > set_rtpengine_set("1"); > > > > if(!rtpengine_offer("...")) { > > if($rc == -1) { > > set_rtpengine_set("2"); > > rtpengine_offer("..."); > > } > > } > > > > Exact details and your mileage may vary. > > > > -- Alex > > > > > On 8 Nov 2023, at 15:33, David Cunningham via sr-users < > [email protected]> wrote: > > > > > > Hello, > > > > > > We have a Kamailio configuration with the following, however all the > load is going to the server at 22.22.22.22 (hiding the real IP obviously) > instead of being shared evenly between 22.22.22.22 and 33.33.33.33. Can > anyone please tell me why? The rtpengine server at 11.11.11.11 is intended > to only receive calls if the other two are offline. Thank you very much. > > > > > > #!define RTPENGINE_ADDR "udp:11.11.11.11:7724=1 > udp:22.22.22.22:7724=99999999 udp:33.33.33.33:7724=99999999" > > > > > > modparam( "rtpengine", "rtpengine_sock", RTPENGINE_ADDR ) > > > > > > -- > > > David Cunningham, Voisonics Limited > > > http://voisonics.com/ > > > USA: +1 213 221 1092 > > > New Zealand: +64 (0)28 2558 3782 > > > __________________________________________________________ > > > Kamailio - Users Mailing List - Non Commercial Discussions > > > To unsubscribe send an email to [email protected] > > > Important: keep the mailing list in the recipients, do not reply only > to the sender! > > > Edit mailing list options or unsubscribe: > > > > -- > > Alex Balashov > > Principal Consultant > > Evariste Systems LLC > > Web: https://evaristesys.com > > Tel: +1-706-510-6800 > > > > __________________________________________________________ > > Kamailio - Users Mailing List - Non Commercial Discussions > > To unsubscribe send an email to [email protected] > > Important: keep the mailing list in the recipients, do not reply only to > the sender! > > Edit mailing list options or unsubscribe: > > > > > > -- > > David Cunningham, Voisonics Limited > > http://voisonics.com/ > > USA: +1 213 221 1092 > > New Zealand: +64 (0)28 2558 3782 > > -- > Alex Balashov > Principal Consultant > Evariste Systems LLC > Web: https://evaristesys.com > Tel: +1-706-510-6800 > > > > -- > > David Cunningham, Voisonics Limited > http://voisonics.com/ > USA: +1 213 221 1092 > New Zealand: +64 (0)28 2558 3782 > > > > __________________________________________________________ > > Kamailio - Users Mailing List - Non Commercial Discussions > > To unsubscribe send an email to [email protected] > > Important: keep the mailing list in the recipients, do not reply only to the > sender! > > Edit mailing list options or unsubscribe: > > -- > > Daniel-Constantin Mierla (@ asipto.com) > > twitter.com/miconda -- linkedin.com/in/miconda > > Kamailio Consultancy and Development Services > > Kamailio Advanced Training - Online - Nov 14-16, 2023 -- asipto.com > > -- > Daniel-Constantin Mierla (@ asipto.com)twitter.com/miconda -- > linkedin.com/in/miconda > Kamailio Consultancy and Development Services > Kamailio Advanced Training - Online - Nov 14-16, 2023 -- asipto.com > > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > To unsubscribe send an email to [email protected] > Important: keep the mailing list in the recipients, do not reply only to > the sender! > Edit mailing list options or unsubscribe: > -- David Cunningham, Voisonics Limited http://voisonics.com/ USA: +1 213 221 1092 New Zealand: +64 (0)28 2558 3782
__________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe:
