From 1dabc61bb57fb43f720a7c0105f1a87466c99e27 Mon Sep 17 00:00:00 2001 From: Frederic LE FOLL Date: Mon, 22 Jun 2020 11:08:47 +0200 Subject: [PATCH] chan_sip: chan_sip does not process 400 response to an INVITE. chan_sip handle_response() function, for a 400 response to an INVITE, calls handle_response_invite() and does not generate ACK. handle_response_invite() does not recognize 400 response and has no default response processing for unexpected responses, thus it does not generate ACK either. The ACK on response repetition comes from handle_response() mechanism "We must re-send ACKs to re-transmitted final responses". According to code history, 400 response specific processing was introduced with commit "channels/chan_sip: Add improved support for 4xx error codes" This commit added support for : - 400/414/493 in handle_response_subscribe() handle_response_register() and handle_response(). - 414/493 only in handle_response_invite(). This fix adds 400 response support in handle_response_invite(). ASTERISK-28957 Change-Id: Ic71a087e5398dfc7273946b9ec6f9a36960218ad --- channels/chan_sip.c | 1 + 1 file changed, 1 insertion(+) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index afc555da6a..6872dc6121 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -24427,6 +24427,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest } break; + case 400: /* Bad Request */ case 414: /* Bad request URI */ case 493: /* Undecipherable */ case 404: /* Not found */ -- 2.47.2