diff --git a/channel.c b/channel.c index 00c863b75a78c3d9633aae1fdf7e3fc9a82d41cd..6a4a177dec4e9d2ae1f04c67a59c5d9ed137ad1a 100755 --- a/channel.c +++ b/channel.c @@ -1363,7 +1363,11 @@ int ast_write(struct ast_channel *chan, struct ast_frame *fr) ast_log(LOG_WARNING, "Don't know how to handle control frames yet\n"); break; case AST_FRAME_DTMF: + chan->blocking = 0; + ast_mutex_unlock(&chan->lock); res = do_senddigit(chan,fr->subclass); + ast_mutex_lock(&chan->lock); + CHECK_BLOCKING(chan); break; case AST_FRAME_TEXT: if (chan->pvt->send_text)