Index: channels/chan_dahdi.c =================================================================== --- channels/chan_dahdi.c (revision 291724) +++ channels/chan_dahdi.c (working copy) @@ -1851,6 +1851,8 @@ } static int save_conference(struct dahdi_pvt *p); +static void enable_dtmf_detect(struct dahdi_pvt *p); +static void disable_dtmf_detect(struct dahdi_pvt *p); static int my_callwait(void *pvt) { @@ -1862,6 +1864,7 @@ } if (!(p->cidspill = ast_malloc(2400 /* SAS */ + 680 /* CAS */ + READ_SIZE * 4))) return -1; + disable_dtmf_detect(p); save_conference(p); /* Silence */ memset(p->cidspill, 0x7f, 2400 + 600 + READ_SIZE * 4); @@ -5120,6 +5123,7 @@ } if (!(p->cidspill = ast_malloc(2400 /* SAS */ + 680 /* CAS */ + READ_SIZE * 4))) return -1; + disable_dtmf_detect(p); save_conference(p); /* Silence */ memset(p->cidspill, 0x7f, 2400 + 600 + READ_SIZE * 4); @@ -8792,6 +8796,7 @@ if (p->cidcwexpire == 1) { ast_verb(3, "CPE does not support Call Waiting Caller*ID.\n"); restore_conference(p); + enable_dtmf_detect(p); } if (p->subs[idx].linear) { p->subs[idx].f.datalen = READ_SIZE * 2;