Index: channels/chan_misdn.c =================================================================== --- channels/chan_misdn.c (revision 137184) +++ 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; @@ -1961,7 +1963,7 @@ struct ast_channel *ast; struct misdn_bchannel *bc; int port, hdlc = 0; - char lang[BUFFERSIZE + 1], localmusicclass[BUFFERSIZE + 1], faxdetect[BUFFERSIZE + 1]; + char lang[BUFFERSIZE + 1], faxdetect[BUFFERSIZE + 1]; char buf[256], buf2[256]; ast_group_t pg, cg; @@ -1983,8 +1985,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)); @@ -2528,7 +2529,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: