[OpenSIPS-Users] Transport follow up

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Apr 15 17:44:48 CEST 2010


So, the transport to be used is chosen as follows:
    A)  if "transport" in URI -> use it
    B)  if no port in URI, try to use NAPTR
    B1) if NAPTR -> use the advertised protocols as per weight and 
priority in NAPTR records (in the given order)
    B2) if no NAPTR -> it is up to the proxy to choose the protocol 
(obeying the URI scheme, like sips).

I guess you are referring to B2 case, which you can do in script, using 
a serial forking scenario (forcing different protos via $du ).


Daniel Goepp wrote:
> I did, but I don't see anything that says it would be a violation of 
> SIP to try a number of transports in sequence, and to determine that 
> sequence by the proxy.  And I do understand that this is not a problem 
> with OpenSIPS, just trying to find a way to accomplish something new 
> perhaps.  We are working with some other networks which use a 
> different method of selecting transport.  And we are trying to 
> implement a similar method to select transport using OpenSIPS.  Very 
> similar to how route advancing works, but at the transport level.  I 
> am working now to do it at the scripting level, but just thought this 
> might be something to consider actually implementing as functionality 
> at the application level.  Perhaps it is just too unique of a problem 
> and not worth it.  The problem I believe is UDP is clearly the most 
> commonly used transport, but as devices get more capable (for example 
> in our situation with large SDPs for video, and traversing multiple 
> proxies adding record routes), packet sizes get larger, and TCP 
> becomes a more reliable transport.  Additionally many folks we work 
> with would prefer that is a secure connection is available, then it 
> should be used.  So the defaults on their network proxies will attempt 
> in the order of TLS, TCP then UDP to place a call.
> I will continue my work to try to get this going, but thought I would 
> post for comments here to get thoughts on the matter, or 
> recommendations on how this would be best implemented using OpenSIPS.
> Thanks.
> -dg
> On Thu, Apr 15, 2010 at 1:59 AM, Bogdan-Andrei Iancu 
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>     Hi Daniel,
>     Have you read RFC3263 about Locating SIP Servers  (with proto
>     selection)  ?
>        http://www.ietf.org/rfc/rfc3263.txt
>     Regards,
>     Bogdan
>     Daniel Goepp wrote:
>     > I had a previous question regarding default transport, and the
>     > response I got was that the RFC says the order should be UDP,
>     TCP then
>     > TLS.  However after reading into this further (and some recent
>     > experiences with other platforms) I'm wondering if I have a new
>     > feature request for OpenSIPS.  >From the RFC 3263 - Section 4.1
>     > Selecting a Transport Protocol, I read it as saying:
>     >
>     > 1.  If specified in the RURI it SHOULD use this (but doesn't
>     have to)
>     > 2.  Bunch of stuff on NAPTR (which we are not doing)
>     > 3.  The section related to what we are doing:
>     >
>     > -----clip-----
>     > If no NAPTR records are found, the client constructs SRV queries for
>     > those transport protocols it supports, and does a query for each.
>     > Queries are done using the service identifier "_sip" for SIP
>     URIs and
>     > "_sips" for SIPS URIs. A particular transport is supported if the
>     > query is successful. The client MAY use any transport protocol it
>     > desires which is supported by the server.
>     >
>     > This is a change from RFC 2543. It specified that a client would
>     > lookup SRV records for all transports it supported, and merge the
>     > priority values across those records. Then, it would choose the
>     > most preferred record.
>     >
>     > If no SRV records are found, the client SHOULD use TCP for a SIPS
>     > URI, and UDP for a SIP URI. However, another transport protocol,
>     > such as TCP, MAY be used if the guidelines of SIP mandate it for
>     this
>     > particular request. That is the case, for example, for requests that
>     > exceed the path MTU.
>     > -----clip-----
>     >
>     > The way I read this is that OpenSIPS MAY select whatever
>     transport it
>     > likes, and if no DNS SRV is found, then it would default to
>     using UDP
>     > first for SIP.  But in our set, DNS SRV does exist, and there
>     are both
>     > TCP and UDP records.  We would like to decide the default transport
>     > order to use, starting with TLS then TCP then UDP.  I think I
>     can try
>     > to write something in the script to do this, but I'm not sure
>     yet.  I
>     > don't want to rewrite the RURI, I just want to specify the
>     transport.
>     > It would be great if there was a global variable defined in the
>     config
>     > that was something like "transport_order=TLS,TCP,UDP"
>     >
>     > Thoughts?
>     >
>     > -dg
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > Users mailing list
>     > Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>     > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >
>     --
>     Bogdan-Andrei Iancu
>     www.voice-system.ro <http://www.voice-system.ro>
>     _______________________________________________
>     Users mailing list
>     Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>     http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> ------------------------------------------------------------------------
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Bogdan-Andrei Iancu

More information about the Users mailing list