Hello Kamailio devs - I have a highly experimental implementation of  a
threaded TCP receiver mode - to match with the work on UDP receiver mode
that was done in the past years. This is motivated by Kamailio's UDP
receiver mode and I credit wider development in other SIP proxies.

At this point it builds and runs basic TCP connections (UAS/UAC). TLS is
definitely not supported yet. The branch is here

https://github.com/space88man/kamailio/tree/tcp-reactor

and is configured with

tcp_main_threads = 2 ; single process (threaded)TCP / TLS not working yet
# tcp_main_threads = 0 ; multiprocess TCP/TLS
# tcp_main_threads = 1; multiprocess TCP/ single-process (threaded)TLS

The main difference: all network IO handling is done in PROC_TCP_MAIN with
worker threads; this mode does not use socket passing by sendmsg(). In
addition, this means that all former TCP workers are pure SIP engines. The
receiver pool in PROC_TCP_MAIN is responsible for chunking complete SIP
messages before passing them to TCP workers. All writes are now "async" and
enqueued onto PROC_TCP_MAIN.  The TCP thread pool is hardcoded to 8

I would be very much interested in your feedback - and whether you have
some experience- based on your use of UDP receiver mode or other
reactor-style TCP servers.

I intend to keep this branch buildable until a proper MR can be prepared.
There is expected to be quite a lot of churn.

Regards
Richard Chan
_______________________________________________
Kamailio - Development Mailing List -- [email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to