Hi Frederico and Daniel.
Today i found also the "tcp_reuse_port" documentation. Thanks Federico for the hint. With that paramenter to yes - i have still the issue that kamailio generates on force_send_socket or $fs (which is the same IMHO at the end) generates UDP. It forced the right IP but the transport is wrong. Without tcp_reuse_port it was the same stuff.
I also tried a new listen param like "listen tcp:212.zz.xx.ab:8000" and point it to that direction. $fs and force_send_socket seems to be working with ip in that case. At the bottom I xlogged the du prameter.
It feels like an special special corner case with naptr overwrite, uac and empty du tcp.
$fs="212.zz.xx.ab"
13:07:35.839094 IP (tos 0x10, ttl 64, id 62416, offset 0, flags [none], proto UDP (17), length 472) 212.zz.xx.ab.sip > 217.0.26.67.sip: [bad udp cksum 0x9796 -> 0x68cb!] SIP, length: 444 REGISTER sip:sip-trunk.telekom.de SIP/2.0 Via: SIP/2.0/UDP 212.zz.xx.ab;branch=z9hG4bKc689.5afe94c5000000000000000000000000.0;i=0 To: sip:+49xxxxxxxx@sip-trunk.telekom.de From: <sip:+49xxxxxxxx@sip-trunk.telekom.de
;tag=0e37b8f111de3a41f982d1e82cae2fe3-b388
CSeq: 10 REGISTER Call-ID: 547d384144e9b23e-7166@212.zz.xx.ab Max-Forwards: 70 Content-Length: 0 User-Agent: SBC-OS Contact: sip:49xxxxxxxx@212.zz.xx.ab Expires: 360
Jul 4 13:10:01 siptrunk1 /usr/sbin/kamailio[9380]: INFO: <script>: [tm:local-request] request rm:[REGISTER] from fu:[ sip:+49xxxxxxxx@sip-trunk.telekom.de] to ru:[sip:sip-trunk.telekom.de] rP:[UDP] sut:[sip:212.zz.xx.ab:5060;transport=tcp] du:[sip: reg.sip-trunk.telekom.de] dP:[UDP] Jul 4 13:10:01 siptrunk1 /usr/sbin/kamailio[9380]: ERROR: <script>: its [REGISTER] [sip:sip-trunk.telekom.de] Jul 4 13:10:11 siptrunk1 /usr/sbin/kamailio[9380]: INFO: <script>: [tm:local-request] request rm:[REGISTER] from fu:[ sip:+49xxxxxxxx@sip-trunk.telekom.de] to ru:[sip:sip-trunk.telekom.de] rP:[UDP] sut:[sip:212.zz.xx.ab:5060;transport=tcp] du:[sip: reg.sip-trunk.telekom.de] dP:[UDP]
Am Do., 4. Juli 2019 um 10:50 Uhr schrieb Federico Cabiddu < federico.cabiddu@gmail.com>:
Actually you can force the TCP socket (e.g. sending from the same socket you are listening on) if the kernel has support for SO_REUSEPORT (linux > 3.9, FreeBSD, OSX) and you enable tcp_reuse_port in kamailio configuration ( https://www.kamailio.org/wiki/cookbooks/5.2.x/core#tcp_reuse_port).
Best,
Federico
On Thu, Jul 4, 2019 at 10:27 AM Daniel Tryba d.tryba@pocos.nl wrote:
On Wed, Jul 03, 2019 at 06:38:28PM +0200, Karsten Horsmann wrote:
any one here that can imagine why force sendsocket generates an udp
packet
if the target accept only tcp? And without fs it generates an tcp
packet.
For uac registrations outbound?
Reading the cookbook documentation of force_send_socket raises questions: Force to send the message from the specified socket (it _must_ be one of the sockets specified with the listen directive). If the protocol doesn't match (e.g. UDP message forced to a TCP socket) the closest socket of the same protocol is used.
It relates to the listen directive, but if you are listening on a TCP port/socket you can't use that port/socket to create new outbound connections (to the best of my knowledge).
You already tried $fs but without proto and port:
https://www.kamailio.org/wiki/cookbooks/5.2.x/pseudovariables#fs_-_forced_so... proto is taken from $du if missing and I guess port is 5060 if missing. So if you are listening on 5060 tcp that can't be used for the outbound message, 5060 from udp is the closed match perhaps.
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