[reSIProcate] TcpTransport patch.
Shypytiak Taras
p-aladin at yandex.ru
Wed Sep 9 02:52:23 CDT 2015
Dear resip devels,
resiprocate 1.9.9
when sip stack has to send outgoing sip message through tcp transport
TcpBaseTrasnport does next steps:
1) makes lookup for the suitable connection by destination.(
TcpBaseTransport.cxx:300 )
2) if no connection exists - tcp connection for destination is being created.(
TcpBaseTransport.cxx:311 )
3) mapping looks like destination => Connection
The problem arrises during next scenario:
1) sip stack sends outgoing sip message trough tcp connection C1, C1 was
created by TcpBaseTransport, because it was not found. C1 is a Tuple [ V4
dest_host:5060 TCP ]
2) remote peer does not answer into C1. But it tries to create new incoming
conection C2 to this_proxy_host:5060. TcpBaseTransport produces an error
"TcpBaseTransport.cxx:183:Someone probably sent a reciprocal SYN at us." and
rejects it.
According to
http://tools.ietf.org/html/rfc3261#section-18.1.1, paragraph 8
==========================================
Under error conditions, the
server may attempt to open a new connection to send the response. To
handle this case, the transport layer MUST also be prepared to
receive an incoming connection on the source IP address from which
the request was sent and port number in the "sent-by" field.
==========================================
Could you please consider provided patch, which might resolve described issue?
Sincerely, Taras.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: resip.patch
Type: text/x-diff
Size: 9910 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20150909/6fcae3e3/attachment.patch>
More information about the resiprocate-devel
mailing list