[Kamailio-Users] switch to TCP when UDP message is bigger than MTU

Sandro Bordacchini sandro.bordacchini at dexgate.com
Mon Apr 20 18:03:13 CEST 2009


Hi all.

I am doing some test about tcp/udp transport protocols in SIP and IP 
fragmentation.

I would like to test this behaviour, as stated in par. 18.1.1 of rfc3261:

   If a request is within 200 bytes of the path MTU, or if it is larger
   than 1300 bytes and the path MTU is unknown, the request MUST be sent
   using an RFC 2914 [43] congestion controlled transport protocol, such
   as TCP. If this causes a change in the transport protocol from the
   one indicated in the top Via, the value in the top Via MUST be
   changed.  This prevents fragmentation of messages over UDP and
   provides congestion control for larger messages.  However,
   implementations MUST be able to handle messages up to the maximum
   datagram packet size.

To do this, I am running a OpenSer 1.3.2 with a "default" configuration 
(and very simple: no accounting, no auth, no DB) and I have two SIP 
phones registered on that server (for example, ext. 100 and ext. 101).

When 100 calls 101, the INVITE reaches the OpenSer that appends some 
"dummy" headers (I have added some append_hf in the route), just to let 
the message be bigger than the MTU.
The INVITE is routed towards 101 with UDP protocol and I have IP 
fragmentation.

Do you have some hint to get the OpenSer work as described in the RFC 
(i.e. switch automatically to TCP)?
Or is this only possible with UACs and not with proxies?

TIA

-- 
Ing. Sandro Bordacchini
Dexgate Sr. Tech. Engineer
P.zza Fermi 1 - Fornacette
IT-56012  Calcinaia (Pisa)
Tel. +390587424145 ext 580




More information about the Users mailing list