Koozali.org: home of the SME Server

[Announce] Asterisk OSLEC echo cancellation

Offline SARK devs

  • *****
  • 2,806
  • +1/-0
    • http://sarkpbx.com
[Announce] Asterisk OSLEC echo cancellation
« on: July 16, 2007, 11:54:27 PM »
Hi

We have just put up a special beta test version of zappri with the advanced OSLEC echo cancellation algorithm.  In the tests we’ve conducted it is hugely better than the stock Digium echo cancellers.  Moreover, it will work with all Zaptel cards, including the X100P and clones.

The only downside we’ve found thus far is that it uses about 20Mips per active channel which can be quite significant on small CPU’s like the VIA Nehemiah.  

If you’re experiencing echo problems or you’d just like to give it a try, we’ve incorporated it into a special Zaptel 1.2.13 rpm which you can download from our contribs site.  

http://mirror.contribs.org/smeserver/contribs/selintra/RPMS/AsteriskForSail-2.1.14/None-ISDN/

The rpm you want is called smeserver-astzappri-osl-1.2.13-1.i686.rpm

It has been tested with 1.2.10 and 1.2.20 Asterisk without problems.

To fit it you must first remove zappri with

rpm –e smeserver-zappri-MPP –nodeps

Yes, yes – we know the “nodeps” is naughty, but these are our rpms so you’ll just have to trust us.

Next, remove any dangling “extra” directory that may have been left behind.

Use  “uname-r” to decide which kernel you are running then do…

Rm –rf /lib/modules/{uname-r}/extra

Substitute the correct kernel name for {uname –r}

OK, now you can install the new rpm.  Just use rpm –Uvh.  

Next;  run depmod

You need to replace any echo related zapata parameters in headers=>zapata.conf  (in server-manager) with the following

echocancel=yes
echocancelwhenbridged=no

In particular, make sure you remove any reference to echotraining.

Before you start asterisk, load the echo canceller with

modprobe  oslec.  

Start asterisk with /etc/init.d/asterisk start.

That’s it.  You'ree echo blues should be behind you at the expense of a significant lift in CPU consumption.

We’ll simplify all of this in a near release but for now you can try the canceller to see if you get results as good as we did.  

You can learn more about oslec at their website…

http://www.rowetel.com/ucasterisk/oslec


Let us know how you get on.

Kind Regards

S

Offline pfloor

  • *****
  • 889
  • +1/-0
[Announce] Asterisk OSLEC echo cancellation
« Reply #1 on: July 20, 2007, 02:37:45 AM »
I am running 1.2.10-5 with a TDM400 (4 port FXO card) and I can confirm that OSLEC is MUCH better and eliminates all echo.  I was almost ready to go back to my old PBX but this has cured my echo problems.

One thing I had to do different though:

Code: [Select]
Next, remove any dangling “extra” directory that may have been left behind.

Use “uname-r” to decide which kernel you are running then do…

Rm –rf /lib/modules/{uname-r}/extra


After deleting these old "extra" modules, "modprobe oslec" was throwing an error, "module oslec not found".  To get it working, I had to copy the modules directory from /etc/selintra/smp/extra to /lib/modules/2.6.9-42.0.10.ELsmp/ and then run "modprobe oslec" again.

Quote
That’s it. You'ree echo blues should be behind you at the expense of a significant lift in CPU consumption.

My production server (Athlon64 X2 4200 with 2Gig RAM) shows no noticable extra CPU load with all 4 FXO lines active.  I see about 8-10% CPU load with 4 calls to outside lines going on at the same time.  Looks pretty reasonable to me.
In life, you must either "Push, Pull or Get out of the way!"

Offline SARK devs

  • *****
  • 2,806
  • +1/-0
    • http://sarkpbx.com
[Announce] Asterisk OSLEC echo cancellation
« Reply #2 on: July 20, 2007, 09:13:20 PM »
Hi there

Quote
After deleting these old "extra" modules, "modprobe oslec" was throwing an error, "module oslec not found". To get it working, I had to copy the modules directory from /etc/selintra/smp/extra to /lib/modules/2.6.9-42.0.10.ELsmp/ and then run "modprobe oslec" again.


Hmmm.  The oslec load module should be moved into the load area with the other load modules from selintra/smp/extra whe you start asterisk (with /etc/init.d/.asterisk start).  Sounds like we might have a little bug there.  

Glad you've got it working tho'.  Like you, we've been incredibly impressed with the effectiveness of this canceller and with the "pleasentness" of the resulting sound.  We have it running at three or four sites where we had echo problems and it has fixed every one.  We have also ported the routine to Bristuff Asterisk (which we don't think anyone else has done yet) for a client who was getting echo on their ISDN circuit.  It completely cured the problem there as well.

As to CPU, that's a pretty fast chip you are using there so I'm not surprised that it is easily handling any OSLEC overheads.

Thanks very much for letting us know of your success with this add-on.

Kind Regards

Selintra

Offline Franco

  • *
  • 1,171
  • +0/-0
    • http://contribs.org
[Announce] Asterisk OSLEC echo cancellation
« Reply #3 on: July 30, 2007, 04:13:36 AM »
Hi Selintra,
I installed oslec with success using the above instructions without having to move the extra folder.
My question is regarding using oslec and not the default language. My system responds in english, for zaptel I had modified the zaptel headers, what should I modify for this version?
Many thanks,

S

Offline SARK devs

  • *****
  • 2,806
  • +1/-0
    • http://sarkpbx.com
[Announce] Asterisk OSLEC echo cancellation
« Reply #4 on: July 30, 2007, 08:54:05 AM »
Hi Stuntshell

Should be just the same

Best

S