Index: channels/chan_misdn.c =================================================================== --- channels/chan_misdn.c (revision 161354) +++ channels/chan_misdn.c (working copy) @@ -214,6 +214,8 @@ int overlap_dial_task; ast_mutex_t overlap_tv_lock; struct timeval overlap_tv; + + char mohinterpret[BUFFERSIZE+1]; struct chan_list *peer; struct chan_list *next; @@ -1956,7 +1958,6 @@ int port; int hdlc = 0; char lang[BUFFERSIZE + 1]; - char localmusicclass[BUFFERSIZE + 1]; char faxdetect[BUFFERSIZE + 1]; char buf[256]; char buf2[256]; @@ -1981,8 +1982,7 @@ misdn_cfg_get(port, MISDN_CFG_LANGUAGE, lang, sizeof(lang)); ast_string_field_set(ast, language, lang); - misdn_cfg_get(port, MISDN_CFG_MUSICCLASS, localmusicclass, sizeof(localmusicclass)); - ast_string_field_set(ast, musicclass, localmusicclass); + misdn_cfg_get(port, MISDN_CFG_MUSICCLASS, &ch->mohinterpret, sizeof(ch->mohinterpret)); misdn_cfg_get(port, MISDN_CFG_TXGAIN, &bc->txgain, sizeof(bc->txgain)); misdn_cfg_get(port, MISDN_CFG_RXGAIN, &bc->rxgain, sizeof(bc->rxgain)); @@ -2525,7 +2525,7 @@ start_bc_tones(p); break; case AST_CONTROL_HOLD: - ast_moh_start(ast,data,ast->musicclass); + ast_moh_start(ast,data,p->mohinterpret); chan_misdn_log(1, p->bc->port, " --> *\tHOLD pid:%d\n", p->bc ? p->bc->pid : -1); break; case AST_CONTROL_UNHOLD: