On Tue, Aug 11, 2009 at 1:17 AM, Alex Green
<alexg@etherstack.com> wrote:
Thanks Moises, do I need to do a flush_dtmf() or set values for DTMF
on/off period, or anything else?
I think default on/off times are good enough, but I suppose you may have to play with it. As of flushing, sounds like a good idea to do when the call starts, but that depends on your applications, if you are certain of consuming all DTMF always, then is not needed.
Are you using hw dtmf? are you using Sangoma boards?
I noticed that openzap behavior will be different from an API point of view when using hardware DTMF than when using software DTMF, since the callbacks (for span and channel) are currently not available when using hardware DTMF. That sounds like a bug to me, the behavior should be available regardless of the backend system used for DTMF. I will fix that asap.
zap_channel_dequeue_dtmf() correctly identifies the digit, but if the
digit is held down it is detected more than once. I am using a frame
size of 160 for the read.
More than once like in twice? 3 times, 4 times? ad infinitum if the digit is hold? I'd need to debug to try to figure out where that comes from. If you are using hardware dtmf in wanpipe boards you can go to src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c and search for WP_TDMAPI_EVENT_DTMF, then uncomment the log line there to see if the digit is detected twice by the drivers.
If using software DTMF, some logging in zap_channel_read when calling teletone_dtmf_detect() can be added to check if its detecting it twice.