I think I figured it out. TCP mode is only usable in client mode currently. I was expecting to see a bound tcp listener because I used eXosip_listen_addr(), but apparently that is not true anymore.
SipWitchQt actually had a hard requirement for a bound TCP listener, but I already vendor eXosip2 in it, so I can have that locally build with ENABLE_MAIN_SOCKET. Most of my more recent stuff actually does not, so until I noticed there was no bound socket, I did not even realize this change :). For example, in coventry, I want to do upstream/trunking as sip tcp, but even there I only look like a client registering to an upstream provider.
On Wed, 2022-02-23 at 08:48 -0500, David Sugar wrote:
There is a define now in the eXosip2 sources, "ENABLE_MAIN_SOCKET". There did not seem to be any configure option for doing this at build time. It also appears that support for TCP/TLS sip is effectively dead thru eXosip_listen_addr as the socket is never bound nor listen() called unless this is set. This define also touches epoll behavior a small bit in eXtl_udp.c.
Is this safe to enable/inject at build time? How else would one even get a working tcp sip service again without it? Should this be a configure option? I know I used to be able to use tcp with eXosip2 in earlier (?4.0?) releases and it worked back then, with some interesting limitations related to connection reuse.