From herlesupreeth@gmail.com Thu Feb 27 14:39:54 2020 From: supreeth herle To: sr-users@lists.kamailio.org Subject: [SR-Users] Dynamically change the transport protocol from UDP to TCP to avoid fragmentation Date: Thu, 27 Feb 2020 14:39:38 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0508194034==" --===============0508194034== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hello Everyone, I have an IMS setup using Kamailo and is working as expected when the 4G Core Network and IMS is running in a single VM. However, when running in two different VMs registration is successful but calling fails. As per the scripts in kamailio ims example folder for P-CSCF, uac module is used to generate OPTIONS message to achieve a kind of NATPINGING to UEs. The ping achieved in this way times out with 408 when IMS and Core Network is run in different VMs. I suspect that the increasing packets size could be the issue for UE not responding to OPTIONS from P-CSCF (I have verified that OPTIONS message from P-CSCF is reaching the eNB). In this aspect, I would like to switch the transport protocol to TCP when MTU is greater than 1300 (please guide me if my thinking of switching to TCP to tackle NAT issue is wrong). I have explored the following options: tcp_reuse_port=yes udp_mtu=1300 udp_mtu_try_proto=TCP But, when I use these options, any request message which hit 1300 MTU mark are not sent out at all (in my case it is the NOTIFY request from SCSCF) and Kamailio has a warning saying that binding to address failed as the address is already in use. Following is the small part of the log: Feb 27 14:31:15 epc-ims /usr/local/sbin/kamailio[19712]: DEBUG: ims_registrar_scscf [registrar_notify.c:2275]: notification_event_process(): About to free notification Feb 27 14:31:15 epc-ims /usr/local/sbin/kamailio[19730]: NOTICE: