Index: channels/chan_local.c =================================================================== --- channels/chan_local.c (revision 136783) +++ channels/chan_local.c (working copy) @@ -352,21 +352,14 @@ if (!p) return -1; - /* If this is an MOH hold or unhold, do it on the Local channel versus real channel */ - if (condition == AST_CONTROL_HOLD) { - ast_moh_start(ast, data, NULL); - } else if (condition == AST_CONTROL_UNHOLD) { - ast_moh_stop(ast); - } else { - /* Queue up a frame representing the indication as a control frame */ - ast_mutex_lock(&p->lock); - isoutbound = IS_OUTBOUND(ast, p); - f.subclass = condition; - f.data = (void*)data; - f.datalen = datalen; - if (!(res = local_queue_frame(p, isoutbound, &f, ast, 1))) - ast_mutex_unlock(&p->lock); - } + /* Queue up a frame representing the indication as a control frame */ + ast_mutex_lock(&p->lock); + isoutbound = IS_OUTBOUND(ast, p); + f.subclass = condition; + f.data = (void*)data; + f.datalen = datalen; + if (!(res = local_queue_frame(p, isoutbound, &f, ast, 1))) + ast_mutex_unlock(&p->lock); return res; }