[OpenSER-Users] Does t_realy chooseTCP/UDP protocol if it's necessary?

Iñaki Baz Castillo ibc at aliax.net
Sun Mar 2 12:36:28 CET 2008


El Domingo, 2 de Marzo de 2008, Juha Heinanen escribió:
> Iñaki Baz Castillo writes:
>  > Maybe OpenSer tries first with TCP (since the incoming INVITE uses
>  > TCP) and if it can't establish a connection then it tries UDP? Is it
>  > RFC 3261 mandatory?
>
> inaki,
>
> how to select ip/port/transport of next hop is described in
>
> J. Rosenberg and H. Schulzrinne, ÈSession initiation protocol (SIP):
> locating SIP servers,É RFC 3263, Internet Engineering Task Force, June
> 2002.

Thanks Juha, now I understand that the only way OpenSer to set TCP for the 
destination is by adding a RURI parameter "transport=tcp".

In fact, if I do:

  force_send_socket(tcp:MY_IP:5060);
  $rd = "ASTERISK_MEDIA_IP";
  t_relay();
  exit;

When I receive an INVITE via TCP OpenSer forwards it via UDP, the only way to 
force TCP is by using:

  add_uri_param("transport=tcp");
  $rd = "ASTERISK_MEDIA_IP";
  t_relay();
  exit;


So it makes sense tieh the RFC you told me:

--------------------------------------------------------------------
4.1 Selecting a Transport Protocol

   First, the client selects a transport protocol.

   If the URI specifies a transport protocol in the transport parameter,
   that transport protocol SHOULD be used.

   Otherwise, if no transport protocol is specified, but the TARGET is a
   numeric IP address, the client SHOULD use UDP for a SIP URI, and TCP
   for a SIPS URI.
--------------------------------------------------------------------

Thanks a lot, I'm starting testing SIP TCP now and have not experience yet.

Best regards.



-- 
Iñaki Baz Castillo




More information about the Users mailing list