[asterisk-bugs] [JIRA] (ASTERISK-27845) Codec-Change Re-INVITE during DTMF can cause marker bit error

Asterisk Team (JIRA) noreply at issues.asterisk.org
Wed May 9 08:21:56 CDT 2018


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

Asterisk Team commented on ASTERISK-27845:
------------------------------------------

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

> Codec-Change Re-INVITE during DTMF can cause marker bit error
> -------------------------------------------------------------
>
>                 Key: ASTERISK-27845
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27845
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_rtp_asterisk
>    Affects Versions: 13.20.0
>            Reporter: Torrey Searle
>
> There is a race condition between Codec changing re-invites and DTMF.
> If a call is transcoding (in simple_bridge) and during relaying a DTMF digit a RE-INVITE that caused a migration to native bridge arrives the marker bit could be set on the wrong packet.
> What happens is that re-invite arrives and the local bridge is activated.  At this time FLAG_NEED_MARKER_BIT gets set on the B leg by ast_rtp_local_bridge
> the A leg afterwards stops sending the DTMF and resumes sending audio.  This packet arrives into bridge_p2p_rtp_write  however as the B leg is still in the middle of the DTMF (it still has to send the 3 end frames) the function returns -1 and the packet is forwarded via the simple bridge with the old ssrc.  However despite this packet still being associated with the old source,  the FLAG_NEED_MARKER_BIT will get cleared in rtp_raw_write.
> When the next packet  of audio get sent by the A leg, it will be forwarded by the local bridge as the DTMF is over.  This will be the first RTP packet B receives with the SSRC of A but the marker bit won't be set because the flag has already been consumed by the previous packet



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



More information about the asterisk-bugs mailing list