[asterisk-bugs] [JIRA] (ASTERISK-29373) res_rtp_asterisk: Flash events are duplicated
Joshua C. Colp (JIRA)
noreply at issues.asterisk.org
Mon Mar 29 15:18:15 CDT 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-29373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=254371#comment-254371 ]
Joshua C. Colp commented on ASTERISK-29373:
-------------------------------------------
As I've said before, you're in uncharted seldom used noone has given it a thought territory. Flash is rarely, if ever, sent through Asterisk.
I think though that introducing an AST_CONTROL_FLASH_END isn't really needed. It should be possible to change res_rtp_asterisk such that it only passes through a single flash event upon end - which is what the INFO implementation does. AST_CONTROL_FLASH is already effectively AST_CONTROL_FLASH_END.
The create_dtmf_frame already shows how to return a null frame and do nothing, it should be as simple as adding an if (type == AST_FRAME_DTMF_BEGIN) into the if (rtp->resp == 'X') block that returns &ast_null_frame.
> res_rtp_asterisk: Flash events are duplicated
> ---------------------------------------------
>
> Key: ASTERISK-29373
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-29373
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_rtp_asterisk
> Affects Versions: 18.3.0
> Environment: Debian 10
> Reporter: N A
> Assignee: N A
> Labels: patch
> Attachments: res_rtp_asterisk.patch
>
>
> I noticed that for RFC2833 hook flash events, they were all getting duplicated. I found this is due to the way RFC2833 events work, where there is a start and end for each event. However, unlike DTMF events, for which there are beginning and end events, Asterisk has no notion of the beginning or end of a hook flash - there is only one hook flash (AST_CONTROL_FLASH). Thus, incoming RTP packets create duplicate flash events, which channel.c is not expecting. The attached patch fixes this bug by ensuring that only flash starts become AST_CONTROL_FLASH and flash end events are not duplicated, thus aligning what res_rtp_asterisk.c is doing with what channel.c expects.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list