Echo cancellation

hello
i am developing 2 wire telephone line system with my IMX6DL and i have echo in line out and linein in alsamixer
i found " module-echo-cancel" in pulseaudio package that is exist in opkg repositories but i am facing with a lot of issue like below when i try to run pulseaudio command:
E: [pulseaudio] ltdl-bind-now.c: Failed to open module pulseaudio-module-sine.so: pulseaudio-module-sine.so: cannot open shared object file: No such file or directory
E: [pulseaudio] module.c: Failed to open module “pulseaudio-module-sine”.
E: [pulseaudio] main.c: Sink output does not exist.
E: [pulseaudio] main.c: Source input does not exist.
E: [pulseaudio] main.c: Module load failed.
E: [pulseaudio] main.c: Failed to initialize daemon.

is there any other package for echo cancellation or any guideline to solve pulseaudio error?

i am using :
Colibri imx6dl V1.1A
iris carrier board
linux BSP 2.8b7

appreciate your support…

Hi @me_ahani98 !

Seems like the package that you installed relies on a shared object that is not present on the image.

One way to solve it is to build your own image (which is pretty usual for embedded systems) with all you need.

Taking a look at OpenEmbedded Layer Index - pulseaudio recipe for Yocto Rocko version, there are two comments regarding echo canceling module that you are trying to use:

at line 8 pulseaudio.inc\pulseaudio\recipes-multimedia\meta - openembedded-core - OpenEmbedded Core layer :

# The "adrian" echo canceller variant has code under a non-standard permissive
# license. See src/modules/echo-cancel/adrian-license.txt for details. This
# recipe disables the adrian echo canceller to avoid hassle with the unusual
# license.

at line 102 pulseaudio.inc\pulseaudio\recipes-multimedia\meta - openembedded-core - OpenEmbedded Core layer :

# The "adrian" echo canceller implementation has a non-standard license
# (src/modules/echo-cancel/adrian-license.txt). It's a permissive license, so
# the licensing terms are probably not problematic, but it would be an extra
# hassle to add the license to OE-Core's set of licenses. The canceller isn't
# very good anyway, better alternatives exist (such as the webrtc canceller).
EXTRA_OECONF += "--disable-adrian-aec"

So, if you are going to build your own image, you could give a shot with this “webrtc canceller” also.

Best regards,