Hi Mailinglist,

for my future me and anybody that had the same issue, the new uac parameter default_socket + tcp_reuse_port fixed the issue for me. 

https://github.com/kamailio/kamailio/commit/27b6f0aba06796f0c52e32fad809d3781b17ce6b

Thanks to Henning. 

Cheers 
Karsten Horsmann 


Karsten Horsmann <khorsmann@gmail.com> schrieb am Do., 4. Juli 2019, 15:58:
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_socket
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


--
Mit freundlichen Grüßen
*Karsten Horsmann*