[Freeswitch-dev] Detecting in-band DTMF Digits in Openzap?
Alex Green
alexg at etherstack.com
Mon Aug 10 22:17:58 PDT 2009
Thanks Moises, do I need to do a flush_dtmf() or set values for DTMF
on/off period, or anything else?
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.
Thanks again, -alex
Moises Silva wrote:
> On Mon, Aug 10, 2009 at 10:26 PM, Alex Green <alexg at etherstack.com
> <mailto:alexg at etherstack.com>> wrote:
>
> For FXO I switch back to the dialtone state and collect the digits via
> the ZAP_SIGEVENT_COLLECTED_DIGIT call back (which is a little bit ugly
> and does not allow dial ahead, but it works).
>
>
> Sounds way too ugly, I don't think you should be doing that.
>
>
> DIALTONE' is printed if you try). Openzap must be able to detect digits
> during a call, but I am having trouble figuring out how.
>
> ie. How do you use Openzap to detect in-band DTMF digits during a call?
>
>
> Take a look at mod_openzap/mod_openzap.c, on_clear_channel_signal()
>
> It seem to me you should do the same.
>
> zap_channel_command(sigmsg->channel, ZAP_COMMAND_ENABLE_DTMF_DETECT,
> &tt); where tt = ZAP_TONE_DTMF and sigmsg->channel is the zap_channel_t
>
> That will enable the DTMF detection feature in the channel (either in
> software or hardware if its available).
>
> After enabling that feature, you can use zap_channel_dequeue_dtmf(zchan,
> dtmf, sizeof(dtmf)); to dequeue DTMF after calling zap_channel_read(),
> since there is where dtmf (if any) is enqueued. Check zap_channel_read
> so you can see how the DTMF is detected and enqueued.
>
> If you don't want to call zap_channel_dequeue_dtmf on each read (or you
> can't), then register an event callback for the span with
> zap_span_set_event_callback(), then your code will be called with
> ZAP_EVENT_DTMF when dtmf is received in any channel on that span.
>
> Hope that helps,
>
> --
> Moises Silva
> Software Developer
> Sangoma Technologies Inc. | 50 McIntosh Drive, Suite 120, Markham ON L3R
> 9T3 Canada
> t. 1 905 474 1990 x 128 | e. moy at sangoma.com <mailto:moy at sangoma.com>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org
More information about the FreeSWITCH-dev
mailing list