[BUG] musiconhold doesn't work when 'on hold' for chan_misdn

I’ve setup musiconhold correctly, I can hear it when I’m waiting in a queue, I can hear it when I dial a test extension with:

exten => 200,1,MusicOnHold()

BUT… I can’t hear it when I’m put on hold!!

If I flash the line I start the three way call fase, that’s ok. But who is calling hear NOTHING, no sound, no ring, nothing. I can dial another extension to ‘annunce’ the call and when I talk with this other extension the caller continue to hear nothing.

I use analog phones connected with a wctdm2400p digium card.
I had to modify the zconfig.h file uncommenting #define SHORT_FLASH_TIME
because I use european phones and with the standard setting asterisk the flash key didn’t work.

seems a bug in channel/chan_misdn.c

from row 2265:

[code]
case AST_CONTROL_HOLD:
chan_misdn_log(1, p->bc->port, " --> *\tHOLD pid:%d\n",p->bc?p->bc->pid:-1);
break;

case AST_CONTROL_UNHOLD:
chan_misdn_log(1, p->bc->port, " --> *\tUNHOLD pid:%d\n",p->bc?p->bc->pid:-1);
break; [/code]

I had to change it with this:

case AST_CONTROL_HOLD: 
 ast_moh_start(ast,data,ast->musicclass); 
 chan_misdn_log(1, p->bc->port, " --> *\tHOLD pid:%d\n",p->bc?p->bc->pid:-1); 
 break; 

case AST_CONTROL_UNHOLD: 
 ast_moh_stop(ast); 
 chan_misdn_log(1, p->bc->port, " --> *\tUNHOLD pid:%d\n",p->bc?p->bc->pid:-1); 
 break; 

Now it works! I submitted a bug http://bugs.digium.com/view.php?id=8899