[asterisk-bugs] [JIRA] (ASTERISK-29436) core/channel : DTMF emulation doesn't queue the end when last RTP received is the END frame

Arnaud Willem (JIRA) noreply at issues.asterisk.org
Thu May 20 02:05:17 CDT 2021


Arnaud Willem created ASTERISK-29436:
----------------------------------------

             Summary: core/channel : DTMF emulation doesn't queue the end when last RTP received is the END frame
                 Key: ASTERISK-29436
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29436
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Core/Channels
    Affects Versions: 16.2.1
         Environment: Debian/stable - Xen HVM - Linux 4.19
            Reporter: Arnaud Willem
            Severity: Major
         Attachments: ast_bugreport.txt

In this specific context, a PJSIP peer (peerA) is sending RFC4733 DTMF towards Asterisk.
Asterisk then forwards it to the PSTN over chan_pjsip (peerB).

peerA sends sequences of 2-3 DTMF digits. When the last digit is sent, it stops sending RTP frames and awaits responses from the called party.

This appears to trigger an odd "off-by-one" bug in main/channel.c:__ast_read() where an additional frame is expected to stop DTMF emulation in the queue.

Attached log shows this happening twice, around lines 92 (begin emulation of DTMF 8 to peerB ... but no END until line 257 where a new rfc4733 frame has previously been received from peerA.) and 286, (begin emulation of DTMF C to peerB, then the call is hung up after a while.)

A pcap dump can also be provided if necessary.



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



More information about the asterisk-bugs mailing list