mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
res_fax: Don't consume frames given to fax gateway on write.
In a particular fax gateway scenario whereby it would have to translate using the read translation path on a channel the frame being translated would be consumed. When the frame is in the write path it is not permitted to free the frame as the caller expects it to continue to exist. This change makes it so that the frame is only consumed on the read path where it is acceptable to free it. ASTERISK-28900 Change-Id: I011c321288a1b056d92b37c85e229f4a28ee737d
This commit is contained in:
committed by
Friendly Automation
parent
0a4dffe6f8
commit
d2500c6273
@@ -3568,7 +3568,7 @@ static struct ast_frame *fax_gateway_framehook(struct ast_channel *chan, struct
|
||||
* translation is done, so we need to translate here */
|
||||
if ((f->frametype == AST_FRAME_VOICE) && (ast_format_cmp(f->subclass.format, ast_format_slin) != AST_FORMAT_CMP_EQUAL)
|
||||
&& (readtrans = ast_channel_readtrans(active))) {
|
||||
if ((f = ast_translate(readtrans, f, 1)) == NULL) {
|
||||
if ((f = ast_translate(readtrans, f, event == AST_FRAMEHOOK_EVENT_WRITE ? 0 : 1)) == NULL) {
|
||||
f = &ast_null_frame;
|
||||
return f;
|
||||
}
|
||||
|
Reference in New Issue
Block a user