[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