chan_websocket.c: Tolerate other frame types

Currently, if chan_websocket receives an un supported frame like comfort noise it will exit the websocket. The proposed change is to tolerate the other frames by not sending them down the websocket but instead just ignoring them.

Resolves: #1587
This commit is contained in:
Joe Garlick
2025-11-12 11:47:38 +00:00
parent 006d7f8f01
commit 2d11bb044e

View File

@@ -1168,10 +1168,14 @@ static int webchan_write(struct ast_channel *ast, struct ast_frame *f)
return -1; return -1;
} }
if (f->frametype == AST_FRAME_CNG) {
return 0;
}
if (f->frametype != AST_FRAME_VOICE) { if (f->frametype != AST_FRAME_VOICE) {
ast_log(LOG_WARNING, "%s: This WebSocket channel only supports AST_FRAME_VOICE frames\n", ast_log(LOG_WARNING, "%s: This WebSocket channel only supports AST_FRAME_VOICE frames\n",
ast_channel_name(ast)); ast_channel_name(ast));
return -1; return 0;
} }
if (ast_format_cmp(f->subclass.format, instance->native_format) == AST_FORMAT_CMP_NOT_EQUAL) { if (ast_format_cmp(f->subclass.format, instance->native_format) == AST_FORMAT_CMP_NOT_EQUAL) {