[asterisk-dev] Correct usage of AST_FRAME_DTMF_*

Armin Schindler armin at melware.de
Sun Apr 24 06:11:25 CDT 2011


Hello,

in overlap dialing, the channel driver (here chan_capi) sends the
reveived digits as DTMF frames.
AST_FRAME_DTMF_END is used only (no _BEGIN), because the hardware has 
detected the dtmf digit.
If the digits come very fast, main/channel.c is using a mechanism to somehow 
defer or even drop digits if no AST_FRAME_DTMF_BEGIN was received before.

The question is what is the correct way for a channel driver to signal DTMF
digits without BEGIN and duration (if the hardware as fixed settings for 
correctly detecting dtmf)?
So far I see only the workaround to set the following for a AST_FRAME_DTMF_END:
  ast_set_flag(c, AST_FLAG_IN_DTMF);
  c->dtmf_tv = ast_tv(0,0);
to tell main/channel.c we already had a AST_FRAME_DTMF_BEGIN.
Or did I miss anything here for overlap digits?


Thanks,
Armin





More information about the asterisk-dev mailing list