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.