[asterisk-bugs] [JIRA] (ASTERISK-28957) chan_sip: chan_sip does not process 400 response to an INVITE.

Frederic LE FOLL (JIRA) noreply at issues.asterisk.org
Mon Jun 22 03:32:25 CDT 2020


    [ https://issues.asterisk.org/jira/browse/ASTERISK-28957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=251184#comment-251184 ] 

Frederic LE FOLL commented on ASTERISK-28957:
---------------------------------------------

Analysis :

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 also 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(), handle_response().
- 414/493 only in handle_response_invite()
This behaviour was observed with Asterisk 16.4 but it should also affect older versions, including Asterisk 13 since 13.1.0.

I propose to submit a patch to Gerrit.

> chan_sip: chan_sip does not process 400 response to an INVITE.
> --------------------------------------------------------------
>
>                 Key: ASTERISK-28957
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28957
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 16.4.0
>            Reporter: Frederic LE FOLL
>            Severity: Minor
>
> chan_sip does not process 400 response to an INVITE.
> This problem was observed during tests:
> - Ciaplan runs Dial() to generate an outgoing call with chan_sip.
> - chan_sip generates an outgoing INVITE request,
> - UAS returns a 400 response.
> - chan_sip does not ACK first 400 response, it only ACKs second occurrence.
> - Dial() exists only after timeout.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list