[asterisk-dev] Re: Passing DTMF through MeetMe

Matt Florell astmattf at gmail.com
Wed Sep 27 06:55:48 MST 2006


On 9/27/06, Tony Mountifield <tony at softins.clara.co.uk> wrote:
> Hi Matt,
>
> Thanks for the response....
>
> In article <61575c810609270442t18f90bdfu7b3f0ad4c78020db at mail.gmail.com>,
> Matt Florell <astmattf at gmail.com> wrote:
> > I've been over this one many times. From what I've found the pseudo
> > zap channels(what all VOIP channels have to use to get into a meetme)
> > can't do DTMF with any measure of reliability at all. So what I did
> > was program into app_conference the ability to do DTMF broadcasting of
> > both inband and RFC DTMF.
> > http://www.eflo.net/files/VD_app_conference_0.6.zip
>
> Unfortunately I can't move from app_meetme to app_conference, as I have
> quite a lot of customisation already invested in meetme. But it may well
> be useful as a source of ideas.

app_conference is really very different and was much easier to work
with because of it's simplicity and the fact that there is a lot less
in the way of admin functions to work around like in meetme.

> > It does still have a random double-free memory that I can't find
> > anyone to fix which will crash Asterisk if you use inband DTMF
> > broadcasting a lot, but it has worked for me for periods of time as
> > long as 2 weeks without crashing.
>
> 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).

> There is an awful lot of commented-out code in there!

There is a lot of commented-out code, and a ton of
WARNING/NOTICE/ERRORs that will show up in the normal operation of
app_conference. A lot of people that use this will actually go in and
comment out most of these as well.


MATT---

> > To do DTMF broadcasting, make sure you read the README which has
> > instructions on the flags for Conference in the dialplan.
> >
> > MATT---
>
> Thanks
> Tony
>
> > On 9/27/06, Tony Mountifield <tony at softins.clara.co.uk> wrote:
> > > I have a system in the field which uses MeetMe to conference parties,
> > > all of whom are connected via Zap channels on a T1 PRI.
> > >
> > > One of the important features the client uses is the ability to press
> > > DTMF tones on their phone and for the tones to pass out to the other
> > > party(ies). This is for outgoing calls made using a control screen, that
> > > arrive on an IVR at the called party. Since MeetMe is invoked without
> > > any menus enabled, the AST_OPTION_TONE_VERIFY option is not set, and
> > > the Zap channel allows the in-band DTMF to pass through.
> > >
> > > I now need to replicate this functionality for SIP channels (and possibly
> > > IAX too), where the DTMF arrives at Asterisk already out-of-band
> > > (e.g. SIP INFO or RFC2833).
> > >
> > > I can think of several ways to achieve this, but am not sure which is
> > > the most correct or achievable:
> > > - Take the incoming AST_FRAME_DTMF frames in MeetMe and queue them up
> > >   for output on all other channels in the conference. This assumes they
> > >   would then be converted back to inband somewhere between Meetme and
> > >   the remote party. (what happens if you queue an AST_FRAME_DTMF on a
> > >   Zap channel?)
> > > - Somehow act on incoming AST_FRAME_DTMF frames by generating the DTMF
> > >   tones and playing them into the conference.
> > > - Have the tones converted from out-of-band to inband audio by the
> > >   incoming channel driver (chan_sip or chan_iax).
> > >
> > > Any pointers on the best way to approach this would be gratefully received.
> > >
> > > Cheers
> > > Tony
> > > --
> > > Tony Mountifield
> > > Work: tony at softins.co.uk - http://www.softins.co.uk
> > > Play: tony at mountifield.org - http://tony.mountifield.org
> > > _______________________________________________
> > > --Bandwidth and Colocation provided by Easynews.com --
> > >
> > > asterisk-dev mailing list
> > > To UNSUBSCRIBE or update options visit:
> > >    http://lists.digium.com/mailman/listinfo/asterisk-dev
> > >
> > _______________________________________________
> > --Bandwidth and Colocation provided by Easynews.com --
> >
> > asterisk-dev mailing list
> > To UNSUBSCRIBE or update options visit:
> >    http://lists.digium.com/mailman/listinfo/asterisk-dev
> >
>
>
> --
> Tony Mountifield
> Work: tony at softins.co.uk - http://www.softins.co.uk
> Play: tony at mountifield.org - http://tony.mountifield.org
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>


More information about the asterisk-dev mailing list