[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