Daniel,
Thank you for the writeup. I tried the following:
tcp_reuse_port=yes
It did not seem to make any difference, in terms of using port 5060. I built and am running on kernel: 4.19.0-12. Do I need to do something special when I build kamailio for this feature?
It’s definitely my preference that Kamailio send requests from tcp port 5060 if that’s a listen port (I am also looking into the issue with Freeswitch separately).
I’m not entirely sure how Kamailio is supposed to *pick* 5060, as I have 3 tcp ports in my config (TCP on 5060, TLS on 5061, and TLS on 443).
Thanks!
~Noah
On Oct 29, 2020, at 6:22 PM, Alex Balashov abalashov@evaristesys.com wrote:
Hello,
confirming what Henning said that dispatcher is not using uac module, not to be any doubt about that. Actually, uac modules uses some of the TM-UAC functions as dispatcher module, but between dispatcher and uac module is no relation, no dependency. Sockets can be enforced in dispatcher via socket attribute (I think is also a modparam for a global need), however see next remarks about what can happen.
Besides that, I am writing to add on the original topic related to tcp local ports. Tipically they have nothing to do with the listen port (5060), the force socket for TCP is mainly a best-effort to use at least the same network interface, but the OS/kernel may use a different one, based on IP routing rules and priorities. The local ports are selected from ephemeral ports range, searching the web should reveal more details about, for example:
https://superuser.com/questions/1118735/how-are-source-ports-determined-and-...
On newer kernels there is an option to try to reuse ports even for tcp (which was possible for UDP before, but not for TCP), kamailio has a core parameter to enable it. See if enabling that gives what is wanted. But if one thinks of firewall rules, for tcp it should allow based on IP and eventually the ephemeral ports range of the source (which is hard to figure out if it is not another fully managed system).
Olle added relevant details, adding a bit more: the port in Via header is for "connect back here if the connection of the request is no longer available", otherwise the connection is reused and Via address is more for aesthetic purposes (e.g., think also about a device behind nat that has via with private ip address, in such case is not possible to connect back at all).
Cheers, Daniel
On 30.10.20 09:05, Henning Westerholt wrote:
Hi Alex,
this is not correct. The dispatcher module uses the uac function from TM module for the generation and sending out of OPTIONS requests.
So setting the mentioned function from the uac module will probably not help.
Cheers,
Henning
-- Henning Westerholt – https://skalatan.de/blog/ Kamailio services – https://gilawa.com
-----Original Message----- From: sr-users sr-users-bounces@lists.kamailio.org On Behalf Of Alex Balashov Sent: Thursday, October 29, 2020 9:11 PM To: sr-users@lists.kamailio.org Subject: Re: [SR-Users] Confusion about TCP worker ports
On 10/29/20 3:57 PM, Noah Mehl wrote:
Is there no way to send the requests from the listen port?
The OPTIONS pinging dispatcher does internally is opaque, so I'm not sure.
However, the source shows that dispatcher uses the UAC module for its internally generated OPTIONS pings, which is sensible:
https://github.com/kamailio/kamailio/blob/master/src/modules/dispatcher/disp...
If so, it stands to reason that loading 'uac' and setting this modparam may have some effect:
https://kamailio.org/docs/modules/5.4.x/modules/uac.html#uac.p.default_socke...
I am not sure if it applies only to requests synthesised within the config script and sent using uac_req_send(), or to any requests constructed by the UAC module, though.
And if they’re not going to come from the listen port, can you please help me with the a way to update the message for the worker chosen rport?
Try the above and see if it does anything.
-- Alex
-- Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users _______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- www.asipto.com www.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users