Hello
I have following use case:
Endpoint1 <------> NAT <------> SER <------> NAT <------> Endpoint2 10.0.0.10 TCP TCP 192.168.0.4
Both enpoints are behind a NAT, connected via TCP transport to SER. The problem is that no message can be routed between them. It looks like SER connot find open tcp connection. Here are the error messages copied from the log:
11(13977) build_req_from_req: id added: <;i=e71>, rcv proto=2 11(13977) parse_headers: flags=2048 11(13977) parse_headers: flags=2048 11(13977) parse_headers: flags=-1 11(13977) clen_builder: content-length: 281 (281) 11(13977) check_via_address(63.64.165.70, 10.0.0.10, 0) 11(13977) tcp_send: no open tcp connection found, opening new one 11(13977) ERROR: tcp_blocking_connect: SO_ERROR (113) No route to host 11(13977) ERROR: tcpconn_connect: tcp_blocking_connect failed 11(13977) ERROR: tcp_send: connect failed 11(13977) msg_send: ERROR: tcp_send failed 11(13977) ERROR: t_forward_nonack: sending request failed
The records for TCP subscribers behind a NAT contains local address like: Contact: 'sip:10.0.0.10:12451;transport=tcp' even if the function fix_contact() is called in registration.
So, how to configure SER for serving the TCP endpoints behind a NAT?
Martin