Kamailio doesn't do any ICMP processing by itself. I noticed that some recent kernels do that when an app tries to send out via UDP to an invalid ip/port in the same network and sendto() fails immediately, but does detect for other target nodes not in the same local network.
You can lower the retransmission timeout to cope better with such case and fail over to next route faster.
Cheers, Daniel
On 08.04.20 15:19, James Browne wrote:
I've searched, but I cannot find anything recent about this.
My kamailio 5.0.8 proxy sends an INVITE downstream over UDP and gets an ICMP port-unreachable response from the UAS. Apparently ignoring this, it re-transmits the INVITEs and eventually times out and sends to the next host (from the SRV lookup).
According to RFC 3261 (https://tools.ietf.org/html/rfc3261#section-8.1.3.1), If a fatal transport error is reported by the transport layer (generally, due to fatal ICMP errors in UDP or connection failures in TCP), the condition MUST be treated as a 503 (Service Unavailable) status code.
Does kamailio support handling ICMP responses to INVITEs (and therefore either failing over immediately, or sending 503 upstream immediately)?
I don't know for sure the "correct" behavior because the RFC3261 is so old and because ICMP responses are limited in size and therefore can't guarantee to uniquely identify the transactions that caused them.
Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev