[asterisk-dev] RFC: DAHDI echo canceller configuration change

Kevin P. Fleming kpfleming at digium.com
Wed Jun 18 18:11:06 CDT 2008


I'm working in a branch of DAHDI's 'linux' package:

http://svn.digium.com/svn/dahdi/linux/team/kpfleming/modular_ec

This branch contains modifications to allow one (or many) echo cancelers
to be built and loaded at the same time, and then runtime selection made
as to which one should be used on which channel(s). All of the existing
modules have been converted, and the core code is ready to use them, so
what I'm left with is deciding on a configuration method.

I'd like to just use the existing /etc/dahdi.conf and dahdi_cfg tools to
do the configuration, adding something like:

echocanceler=MG2

or

echocanceler=HPEC

Doing so would then apply that choice to all subsequent channels
configured in the file in *any* signaling mode (although obviously many
signaling modes don't support audio, and thus will never actually use
the echo canceler defined for those channels).

This seems pretty straightforward to me, however, it would be the *only*
parameter in /etc/dahdi.conf that 'inherits' into later definitions in
the file, which is probably not a wise choice.

An alternative would be for the syntax to be something like:

echocanceler=MG2,1-4
echocanceler=HPEC,8-12

This fits the existing model a bit more.

In addition to this, there is a need to find some way to set a default
echo canceler to be used if the configuration file does not specify one.
In Zaptel, this was done at compile time, but since all available echo
cancelers are compiled and installed now, there isn't any practical way
to do that, and I'd rather move away from compile-time configuration anyway.

I could certainly add an additional configuration parameter for this, or
make the 'echocanceler=<name>,<channels>' parameter accept *no channels*
as an argument, which would then apply it to all channels.

Thoughts? Whichever way this goes, I'll end up documenting it in
UPGRADE.txt in the source tree, because it will be a significant change
in behavior from Zaptel 1.4.

Another note: I won't require the user to forcibly load echo canceler
modules; if a name is provided and no module currently provides it, the
DAHDI core will attempt to 'autoload' that module to satisfy the request.

-- 
Kevin P. Fleming
Director of Software Technologies
Digium, Inc. - "The Genuine Asterisk Experience" (TM)



More information about the asterisk-dev mailing list