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

Torrey Searle (JIRA) noreply at issues.asterisk.org
Wed May 9 08:21:55 CDT 2018


Torrey Searle created ASTERISK-27845:
----------------------------------------

             Summary: 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