Changes between Version 3 and Version 4 of Using_SIP_TCP


Ignore:
Timestamp:
Apr 25, 2012 9:48:46 AM (7 years ago)
Author:
bennylp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Using_SIP_TCP

    v3 v4  
    7575According to [http://tools.ietf.org/html/rfc3261#section-18.1.1 RFC 3261 section 18.1.1]:  
    7676 
    77   "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." 
     77  "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 congestion controlled transport protocol, such  as TCP." 
    7878 
    79 By this rule, PJSIP will automatically send the request with TCP if the request is larger than 1300 bytes. The switching is done on request by request basis, i.e. if an initial INVITE is originally meant to use UDP but end up being sent with TCP because of this rule, then only that initial INVITE is sent with TCP; subsequent requests will use UDP, unless of course if it's larger than 1300 bytes. In particular, the Contact header stays the same. Only the Via header is changed to TCP. 
     79By this rule, PJSIP will automatically send the request with TCP if the request is larger than 1300 bytes. This feature was first implemented in ticket #831. The switching is done on request by request basis, i.e. if an initial INVITE is originally meant to use UDP but end up being sent with TCP because of this rule, then only that initial INVITE is sent with TCP; subsequent requests will use UDP, unless of course if it's larger than 1300 bytes. In particular, the Contact header stays the same. Only the Via header is changed to TCP. 
    8080 
    8181It could be the case that the initial INVITE is sent with UDP, and once the request is challenged with 401 or 407, the size grows larger than 1300 bytes due to the addition of ''Authorization'' or ''Proxy-Authorization'' header. In this case, the request retry will be sent with TCP.