I recently compiled/installed OSLEC in our Asterisk 184.108.40.206 server using DAHDI 220.127.116.11 and I thought I would share some info and my experience as documentation out there is pretty sparse.
If you don’t know what you are doing, then I don’t suggest trying this. USE AT YOUR OWN RISK.
Step 1: Download the latest DAHDI and unpack it.
Step 2: Download Linux kernel source 2.6.28 or newer and unpack it.
Step 3: Make the staging/echo directories in your DADHI source tree.
Step 4: Copy the OSLEC code from the 2.6.28 source tree into your DAHDI source tree.
$cp linux-2.6.28/drivers/staging/echo/* /dahdi-linux-18.104.22.168/drivers/staging/echo/
Step 5: Uncomment the 2 OSLEC lines in the DAHDI Kbuild file.
The two lines are referenced for OSLEC. Uncomment them.
obj-m += dahdi_echocan_oslec.o
Step 6: Modify the second commented line and include your path to the kernel code and the module echo.o. It should look like this:
obj-m += …/staging/echo/echo.o
Step 7: compile DAHDI
One of the lines that will scroll by should look like this:
CC [M] /usr/src/asterisk/dahdi-linux-22.214.171.124/drivers/dahdi/dahdi_echocan_oslec.o
If you get the following error messages: WARNING: “oslec_create” [/usr/src/asterisk/dahdi-linux-126.96.36.199/drivers/dahdi/dahdi_echocan_oslec.ko] undefined!
WARNING: “oslec_free” [/usr/src/asterisk/dahdi-linux-188.8.131.52/drivers/dahdi/dahdi_echocan_oslec.ko] undefined!
WARNING: “oslec_update” [/usr/src/asterisk/dahdi-linux-184.108.40.206/drivers/dahdi/dahdi_echocan_oslec.ko] undefined!
It means that the second line in Kbuild is incorrect and not pointing to the echo.o code/module. Check your path.
Step 8: install DAHDI
Step 9: edit your DADHI config file. Change mg2 to oslec
Span 1: WCT1/0 “Digium Wildcard TE110P T1/E1 Card 0” (MASTER) B8ZS/ESF
Step 10: Restart DAHDI
Step 11: Check your config
DAHDI Tools Version - 220.127.116.11
DAHDI Version: 18.104.22.168
Echo Canceller(s): OSLEC, MG2
SPAN 1: ESF/B8ZS Build-out: 0 db (CSU)/0-133 feet (DSX-1)
Channel 01: Clear channel (Default) (Echo Canceler: oslec) (Slaves: 01)
Channel 02: Clear channel (Default) (Echo Canceler: oslec) (Slaves: 02)
Channel 23: Clear channel (Default) (Echo Canceler: oslec) (Slaves: 23)
Channel 24: D-channel (Default) (Slaves: 24)
Setting echocan for channel 1 to oslec
Setting echocan for channel 2 to oslec
Setting echocan for channel 22 to oslec
Setting echocan for channel 23 to oslec
Step 12: Launch Asterisk
Your system should be using the OSLEC algorithm now I hope that helps out some people. It took me a bit to figure it all out.
And part of the reason I’m posting this is to ask some questions now that I have it installed and running. The Zaptel OSLEC module has some settings that you can configure. But now that I have it compiled into DAHDI is it possible to adjust those same settings? And if so, how do I do that?
Reason being is that while echo is now at a minimum, we do get an occasional occurrence of echo, and wanting to see if I can eliminate those cases.
Thanks in advance!