< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate-users] UserAgent using TCP and UDP transport


I think the real solution to this is to have the resiprocate stack automatically switch over to TCP if the SIP Message is too large.  

See RFC 18.1.1:  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. For UDP, this size is 65,535 bytes, including IP and UDP headers.

However to answer your question more directly.  If you enable both UDP and TCP transports the transport the stack chooses will depend on the SRV records present, etc.  Let's say the stack will default all messaging to use the TCP transport (ie. TCP SRV record is present).  You can add a ;transport=udp to end of the RequestUri for a particular outbound dialog that you would like to go out over UDP instead.  You could also use OutboundProxy settings on a UserProfile (with the ;transport=udp parameter) and use that user profile on the dialogs you want to out over UDP.

Scott

On Fri, Jun 25, 2010 at 7:02 AM, Maciej Kowalski <macius_13@xxxxx> wrote:
Hi,
First of all I'd like to thank you for delivering such a great software - many times Resiprocate has been the answer for my needs regarding SIP.
Keep up the good work:)

I've got following question:

Is it possible to setup UserAgent in such a way, where one class of Dialogs is sent out using UDP transport and other using TCP.
I work with subscriptions where the payload may be quite big (it exceeds the payload size of UDP) and at the same time I'd like to use UDP
as a main transport for other uses (Invites etc.)

I'd like to avoid a situation, where I have 2 UserAgents with 2 separate DUM threads.

I am using Resiprocate 1.6

Best Regards,

Maciek
_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/