[asterisk-dev] Re: Passing DTMF through MeetMe

Tony Mountifield tony at softins.clara.co.uk
Wed Sep 27 07:20:46 MST 2006


In article <61575c810609270655g2afefdf5pe7d904b6009ded32 at mail.gmail.com>,
Matt Florell <astmattf at gmail.com> wrote:
> On 9/27/06, Tony Mountifield <tony at softins.clara.co.uk> wrote:
> >
> > Well, I just had a look through the code, and can see in member.c the
> > function process_incoming(), which looks like it distributes the DTMF
> > frames. One thing I noticed is that the condition starting with
> > "if (f->frametype == AST_FRAME_DTMF)" doesn't have an "else" clause,
> > so the DTMF frames appear to fall through to the code that processes
> > voice frames. I'm not sure what effect that would have, but it doesn't
> > look quite right.
> 
> You cannot send DTMF frames to voice so those are supposed to fall
> through. app_conference has some code that will output DTMF to manager
> API. The broadcast DTMF portion will do a separate send to each of the
> participants that has the flag set for RFC and for inband flagged
> participants it will go to a section that will play an audio file of a
> DTMF tone(to allow for SIP RFC participants to send DTMF to inband Zap
> participants for example).

I'm not sure you understood what I was saying.

As it stands, the DTMF frames, after being distrbuted, will ALSO be
passed to queue_incoming_frame(). Is that correct? I would have thought
only voice frames should be passed to queue_incoming_frame().

That was my point about a possibly missing "else". I have a feeling
you might want an "else {" on line 141 of member.c, and a "}" on
line 239, so that the code between those two lines is only executed
on voice frames.

Cheers
Tony
-- 
Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org


More information about the asterisk-dev mailing list