[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