[asterisk-bugs] [JIRA] (ASTERISK-17581) rtpkeepalive blocks incoming DTMF periodically
Sean Bright (JIRA)
noreply at issues.asterisk.org
Fri Apr 23 19:24:09 CDT 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-17581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Bright updated ASTERISK-17581:
-----------------------------------
Description:
When {{rtpkeepalive}} is not zero then comfort noise packets are sent periodically. During sending of comfort noise packets incoming DTMF is not processed.
These DTMF tones are lost.
The Function {{ast_rtp_sendcng}} in {{rtp.c}} mutes DTMF for a certain period here:
{noformat}
rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
{noformat}
DTMF tones received during this period are not processed by Asterisk.
I verified the problem in Asterisk 1.4.40. The code 1.6.2.17.1 seems to be the same.
*Additional Info*
RTP debug. The first "5" DTMF tone is processed by Asterisk but the second "5" is ignored because Asterisk sends comfort noise.
{noformat}
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004, mark 1, event 00000005, end 0, duration 00000)
[Mar 19 09:38:28] DTMF[21798]: channel.c:2530 __ast_read: DTMF begin '5' received on SIP/xswitch-000003ba
[Mar 19 09:38:28] DTMF[21798]: channel.c:2534 __ast_read: DTMF begin ignored '5' on SIP/xswitch-000003ba
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
[Mar 19 09:38:28] DTMF[21798]: channel.c:2449 __ast_read: DTMF end '5' received on SIP/xswitch-000003ba, duration 240 ms
[Mar 19 09:38:28] DTMF[21798]: channel.c:2515 __ast_read: DTMF end passthrough '5' on SIP/xswitch-000003ba
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
Sent Comfort Noise RTP packet to 200.21.22.9:21196 (type 13, seq 30686, ts 0, len 1)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004, mark 1, event 00000005, end 0, duration 00000)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
{noformat}
was:
When rtpkeepalive is not zero then comfort noise packets are sent periodically. During sending of comfort noise packets incoming DTMF is not processed.
These DMTF tones are lost.
The Function ast_rtp_sendcng in rtp.c mutes DTMF for a certain period here:
rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
DMTF tones received during this period are not processed by Asterisk.
I verified the problem in Asterisk 1.4.40. The code 1.6.2.17.1 seems to be the same.
****** ADDITIONAL INFORMATION ******
RTP debug. The first "5" DTMF tone is processed by Asterisk but the second "5" is ignored because Asterisk sends comfort noise.
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004, mark 1, event 00000005, end 0, duration 00000)
[Mar 19 09:38:28] DTMF[21798]: channel.c:2530 __ast_read: DTMF begin '5' received on SIP/xswitch-000003ba
[Mar 19 09:38:28] DTMF[21798]: channel.c:2534 __ast_read: DTMF begin ignored '5' on SIP/xswitch-000003ba
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
[Mar 19 09:38:28] DTMF[21798]: channel.c:2449 __ast_read: DTMF end '5' received on SIP/xswitch-000003ba, duration 240 ms
[Mar 19 09:38:28] DTMF[21798]: channel.c:2515 __ast_read: DTMF end passthrough '5' on SIP/xswitch-000003ba
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
Sent Comfort Noise RTP packet to 200.21.22.9:21196 (type 13, seq 30686, ts 0, len 1)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004, mark 1, event 00000005, end 0, duration 00000)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
> rtpkeepalive blocks incoming DTMF periodically
> ----------------------------------------------
>
> Key: ASTERISK-17581
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-17581
> Project: Asterisk
> Issue Type: Bug
> Components: Core/RTP
> Affects Versions: 1.4.40, 13.18.4
> Reporter: geejay
> Severity: Major
>
> When {{rtpkeepalive}} is not zero then comfort noise packets are sent periodically. During sending of comfort noise packets incoming DTMF is not processed.
> These DTMF tones are lost.
> The Function {{ast_rtp_sendcng}} in {{rtp.c}} mutes DTMF for a certain period here:
> {noformat}
> rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
> {noformat}
> DTMF tones received during this period are not processed by Asterisk.
> I verified the problem in Asterisk 1.4.40. The code 1.6.2.17.1 seems to be the same.
> *Additional Info*
> RTP debug. The first "5" DTMF tone is processed by Asterisk but the second "5" is ignored because Asterisk sends comfort noise.
> {noformat}
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044204, ts 1634395254, len 000004, mark 1, event 00000005, end 0, duration 00000)
> [Mar 19 09:38:28] DTMF[21798]: channel.c:2530 __ast_read: DTMF begin '5' received on SIP/xswitch-000003ba
> [Mar 19 09:38:28] DTMF[21798]: channel.c:2534 __ast_read: DTMF begin ignored '5' on SIP/xswitch-000003ba
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
> [Mar 19 09:38:28] DTMF[21798]: channel.c:2449 __ast_read: DTMF end '5' received on SIP/xswitch-000003ba, duration 240 ms
> [Mar 19 09:38:28] DTMF[21798]: channel.c:2515 __ast_read: DTMF end passthrough '5' on SIP/xswitch-000003ba
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044205, ts 1634395254, len 000004, mark 0, event 00000005, end 1, duration 01920)
> Sent Comfort Noise RTP packet to 200.21.22.9:21196 (type 13, seq 30686, ts 0, len 1)
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044206, ts 1634397174, len 000004, mark 1, event 00000005, end 0, duration 00000)
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
> Got RTP packet from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004)
> Got RTP RFC2833 from 200.21.22.9:21196 (type 101, seq 044207, ts 1634397174, len 000004, mark 0, event 00000005, end 1, duration 01680)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list