diff --git a/main/channel.c b/main/channel.c index bfbe49f6ff..75d4f72dbf 100644 --- a/main/channel.c +++ b/main/channel.c @@ -2513,15 +2513,15 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio) ast_frame_dump(chan->name, f, "<<"); chan->fin = FRAMECOUNT_INC(chan->fin); - if (f && f->datalen == 0 && f->data) { + if (f && f->frametype == AST_FRAME_CONTROL && f->subclass == AST_CONTROL_HOLD && f->datalen == 0 && f->data) { /* fix invalid pointer */ f->data = NULL; #ifdef AST_DEVMODE - ast_log(LOG_ERROR, "Found frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); + ast_log(LOG_ERROR, "Found HOLD frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); ast_frame_dump(chan->name, f, "<<"); #else if (option_debug > 2) { - ast_log(LOG_DEBUG, "Found frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); + ast_log(LOG_DEBUG, "Found HOLD frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); } #endif }