From: kodokaii Date: Thu, 3 Jul 2025 17:40:10 +0000 (+0200) Subject: chan_websocket: Reset frame_queue_length to 0 after FLUSH_MEDIA X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9219284cb0076bf84fb7bbd4eb9049fc00fbaf5;p=thirdparty%2Fasterisk.git chan_websocket: Reset frame_queue_length to 0 after FLUSH_MEDIA In the WebSocket channel driver, the FLUSH_MEDIA command clears all frames from the queue but does not reset the frame_queue_length counter. As a result, the driver incorrectly thinks the queue is full after flushing, which prevents new multimedia frames from being sent, especially after multiple flush commands. This fix sets frame_queue_length to 0 after flushing, ensuring the queue state is consistent with its actual content. Fixes: #1304 --- diff --git a/channels/chan_websocket.c b/channels/chan_websocket.c index 58728af32a..1600871842 100644 --- a/channels/chan_websocket.c +++ b/channels/chan_websocket.c @@ -476,6 +476,7 @@ static int process_text_message(struct websocket_pvt *instance, while ((frame = AST_LIST_REMOVE_HEAD(&instance->frame_queue, frame_list))) { ast_frfree(frame); } + instance->frame_queue_length = 0; instance->bulk_media_in_progress = 0; instance->leftover_len = 0; AST_LIST_UNLOCK(&instance->frame_queue);