mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 03:50:31 +00:00
fastagi: record file closed after sending result
The fastagi record-file testsuite test sometimes fails reporting an empty recorded file. This was happening because Asterisk was sending the agi result notification prior to actually closing the file and the data, being buffered, had not been written to the file yet when the test attempts to check the file size. This patch makes it so the record file stream is closed prior to sending the agi result notification. ASTERISK-25593 #close Change-Id: I6b2b3be3ae37f7c7b18e672c419a89b3b8513cde
This commit is contained in:
@@ -2630,8 +2630,8 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, const
|
||||
}
|
||||
f = ast_read(chan);
|
||||
if (!f) {
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (hangup) endpos=%ld\n", -1, sample_offset);
|
||||
ast_closestream(fs);
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (hangup) endpos=%ld\n", -1, sample_offset);
|
||||
if (sildet)
|
||||
ast_dsp_free(sildet);
|
||||
return RESULT_FAILURE;
|
||||
@@ -2645,8 +2645,8 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, const
|
||||
ast_stream_rewind(fs, 200);
|
||||
ast_truncstream(fs);
|
||||
sample_offset = ast_tellstream(fs);
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (dtmf) endpos=%ld\n", f->subclass.integer, sample_offset);
|
||||
ast_closestream(fs);
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (dtmf) endpos=%ld\n", f->subclass.integer, sample_offset);
|
||||
ast_frfree(f);
|
||||
if (sildet)
|
||||
ast_dsp_free(sildet);
|
||||
@@ -2690,8 +2690,8 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, const
|
||||
ast_truncstream(fs);
|
||||
sample_offset = ast_tellstream(fs);
|
||||
}
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (timeout) endpos=%ld\n", res, sample_offset);
|
||||
ast_closestream(fs);
|
||||
ast_agi_send(agi->fd, chan, "200 result=%d (timeout) endpos=%ld\n", res, sample_offset);
|
||||
}
|
||||
|
||||
if (silence > 0) {
|
||||
|
Reference in New Issue
Block a user