Prototype IP08

This week I have been working on one of the first Atcom IP08s, an 8 port version of the popular IP04 Embedded Asterisk IP-PBX. The IP08 combines the BlackfinOne and two 4fx designs onto a single board the same size as the IP04.

Features include:

  • Dual port modules that are the same size as the regular single port modules. The guys at Atcom have used a clever layout so that single or dual port modules can be used and automatically detected and configured.
  • Dual Ethernet ports.
  • USB. This is pretty cool. I have some ideas about combining this with wireless USB keys to create a tiny, low power wireless VOIP PBX.
  • MMC slot for up to 4GB storage. Thanks to Alex Tao, we can now run MMC cards and Zaptel hardware at the same time.
  • 64MByte SDRAM.
  • 256MByte Flash.

So far we have brought up most of the IP08 hardware. The 8 analog ports are working, as well as new features like USB and both Ethernet ports. Compared to earlier designs I have blogged on, the IP08 bring-up was kinda boring – the open hardware approach we are taking means that everything “just works”!

To make life more interesting I have been using the new Blackfin Asterisk Package System (baps). This is a package based system (like apt-get) for the Blackfin. So basically I flash a small kernel/root file system then boot the IP08. Then, to install Zaptel/Asterisk, telnet into the IP08 and:
ip08$ ipkg install zaptel-sport
ip08$ ipkg install asterisk
ip08$ /etc/init.d/zaptel start
ip08$ /etc/init.d/asterisk start

Baps is an itch I am scratching – I couldn’t help thinking there was a better way to develop and maintain embedded systems than the buildroot/uClinux-dist approach of building “one big uImage”. More on baps in another post.

Some work remains:

  • Further optimisation of the wcfxs driver and Oslec echo canceller so the system can comfortably support 8 analog channels at the same time.
  • Testing the dual Ethernet and USB ports in realistic scenarios, for example WAN/LAN QoS routing and maybe a USB wireless interface.
  • Repeat of the load tests that were performed on the IP04 to give the system a good work out.

How much and when you all ask? The price of the IP08 is yet to be decided, however I am sure it will be competitive with other Asterisk Appliance type products out there. I would guess that the IP08 will be available for purchase around March 2008.

You can follow our IP08 progress by monitoring the IP08.txt task list file in IP04/IP08 SVN.


IP04 Open Hardware IP-PBX
Survey of Asterisk Appliance type products
IP04/IP08 Hardware SVN
1320 loans19 online faxing 27 payday loanrate federal student loans 2003 interest21 payday hour loan228 loan informationhour short loans term 24loans in mortgage 2nd london3 000 risk high personal loansauto 3000 loanspayday 39 56 online canadian loanhome 184 loanshome approval garanteed loan 100private new loans agriculture mexicoconsolidation services academic loanloans equity affordable home1000 installment loanpayments for loan yearly schedules amortizationapproval 99 loan paydayloan all-in-oneconforming 2008 loan limitfree teen clips moviefree vintage porn moviesfree movies wifeywmv movies free sexfucking machines moviesfucking movie clipsmovies porn full freefucking movie gay men clips blackgay sample moviegirl movieleicester allliance cards credittechnician surgical accredited programscard aib centre credit25,000 loan credit unsecured poorsurgical technician acredited programsaffirmitive card defenses suit creditcredit union 5pointacpe accredited Mapblack teens 14sex group photos amateuradult male sex 3d freeamature video pornoand sex adolescents15 free mins pornsex free adult gayyoutube porn adult Mapctu ringtone from 24nokia ringtone 3410 freeringtone nokia free downloadable 3390ringtone free kyocera alltel3410 download nokia ringtone freenokia free 1220 ringtone99 cents ringtonesringtone 3390 free nokia Map

Asterisk Appliance Survey

In a few weeks I will be attending the GK3 conference in Malaysia on ICT for the developing world (ICT4D) with Louise and Alberto from IT 46. Part of our preparation was writing a document describing how the IP04 can be used in developing world scenarios.

Anyway, Alberto and I put together this table comparing Asterisk “Appliance” class products.

The IP04 is a leading edge embedded IP-PBX, equivalent to anything developed by traditional (closed development) commercial companies. The open hardware pedigree means that the hardware has been reviewed by “many eyes”. This means (just like open software) that the IP04 is likely to be more stable and have higher quality comparable “closed” products.

Note that the IP04 is one of first embedded Asterisk “Appliance” type devices to be offered for commercial sale (production status in the survey) – community based development (open hardware and software) gave the development team a time-to-market edge!


The IP04: Open Hardware for Developing Regions
IP04 and the Asterisk Appliance
IP04 Open Hardware IP-PBX
deep movie thenh in movie theatersmovie xxx freepantyhose mature movies ladies of inmovies men sample xxx muscle ebonynaked movie beachnatsuko tohno movienikki movies fritzmovie ninja download scrollmovies women nudecredit military bad all loans personalonline accredited course organic chemistryunsecured bad loan credit $3000report preparer credit 1 in 3texas merchant account card accepting credithomes nursing of accreditationaustin federal union plus credit a0 cards credit transfer balance interest Mapmovies free scatsample clips movie sexsex movie clipsexpress polar movieporn classic moviesadult japanese moviesmovie mtv awardstheater movie amc Mapgreen jaidon codrington allanallblacks haka ringtone555 ave leveringtonleverington ave philadelphia 100north 1601 corrington city mo kansaspa fold warrington klear agird wa 83516 west harrington richlandcarrington pictures amerlink 1 Mapmovie deep throatloan sfas definition impairment 114house hr loans 40misused 11 recovery loan 9403b loans 403katv s 4×4 motorcycle loangreenlight loans 295loans 120 day Map

Asterisk on a FPGA

Over the past couple of years a few people have suggested running Asterisk on an FPGA using an embedded processor core. I must admit I had always assumed that the processor would be too slow to be useful, certainly much slower than a regular embedded processor at the same price.

However my friend Stelios Koroneos and the team at Digital OPSiS have proved me wrong! They have managed to implement Asterisk on a Xilinx Virtex 4 FPGA, running a 300MHz Power PC core. These FPGAs cost about the same as an embedded processor, e.g. around $12 in Qty 1000.

They have the whole system running on a Xilinx development board:

Many clever tricks are possible with a FPGA, for example you can just “compile in” a floating point unit, include all your system glue logic on the same FPGA, or provide hardware acceleration for application specific tasks. In this case, FIR filters used for echo cancellation have been sped up by a factor of 300, using a little custom hardware implemented on the FPGA.

The build process is interesting, you first “build” (synthesise) the actual CPU (!), then build the kernel, applications etc to suit. Booting is also interesting. On power up the first step is to configure the RAM-based FPGA, then like magic it turns into a CPU and the regular boot loader plus Linux boot process can commence. Both the FPGA configuration data and Linux can be stored on a SD card (and presumably be updated by Linux at run time).

This is pretty amazing stuff, and opens up some really interesting possibilities. For example you could include an E1 framer on the FPGA and possibly even the DSP side of analog interfaces. The Bill of Materials BOM can also be reduced by absorbing system functions into the FPGA. Stelios and team are also working on hardware-acceleration for codecs like G729.

CPU cores embedded on an FPGA represents a “third way” to build embedded IP-PBX systems. Earlier designs used a host processor + specialised DSP architecture, later systems (like Asterisk on an x86 or the IP04) use a host-processing approach where a single CPU with DSP capabilities is employed.

I really like the Digital OPSiS guys think – they are digging into the key issues of Asterisk (like the drawbacks of it’s threaded design and bottlenecks like echo cancellation) and coming up with fascinating new ways to optimise the system.

Nice work Digital OPSiS!

Floatron for a Low Energy Pool

I recently did an energy audit of my house and discovered that my pool was a major energy hog. Due to the salt chlorination system we need to run the filter/chlorinator for between 2 and 10 hours a day to maintain high chlorine levels. We run it longer in summer as the chlorine gets removed by sunlight (even with stabiliser chemicals).

We use a salt-chlorinated system (common in Australia) where about 20A at 12V is passed through a special salt cell that causes chlorine gas to be made from the slightly-salty pool water. You dump a few 25kg bags of pool salt into the pool every year to provide the chlorine ions, the salt cell adds electrons to make dissolved chlorine. If you keep the chlorine levels high enough, it kills the algae that would other wise make your pool bright green after about a week.

I attached my power meter to the pump/chlorinator and measured 860W (200W for the chlorinator cell, 660W for the filter pump). Based on an average run-time of 6 hours/day that’s over 5 kW-hrs a day or around $300/year at my current tariffs. Added to this is a new salt-cell every 3 years (at $300 each) plus a legion of algicides, stabilisers, and other exotic potions from the pool shop. All up I would estimate around $700/year, plus maybe $150 for every “green pool event” which occurs if (well, when, actually) we are not diligent.

But it’s the 5kW-hrs a day that really bugs me. You see I want to install a PV solar array for my house that will generate perhaps 9 kW-hr/day total. No way I want to use a good chunk of that power on a pool we hardly use. That sort of energy waste is just so 20th century! To be honest I would be happy to cover the top of the pool and turn it into a 60,000 litre rainwater tank, but on a good day it does look kinda nice:

So I started looking around for alternatives to chlorine. Some Googling brought me to the Floatron. This gadget uses a completely different principle to zap algae – ionisation. Rather than using chlorine it injects small amounts of copper ions into the water, which apparently kills algae but doesn’t bother us much. The cool thing is that copper ions last for 3 weeks, regardless of how hot it is. This also means that the copper ionisation process can be solar powered, as just a minute amount of electricity is required.

The testimonials looked good, so I tracked down the Australian distributor and bought one. It wasn’t cheap, about $450 delivered. There was much “wailing a gnashing of teeth” over the price by my wife, sick of spending money on that (add choice Italian swear word) POOL, but I convinced her that if it worked it would pay for itself quickly. I was a little bit nervous about the purchase, I mean, if it’s that good why can’t I buy one in my pool shop? More on that question later.

So I threw it in the pool about 2 months ago and duly followed the instructions. As the copper levels built up I reduced the chlorine by lowering the time we ran the pool filter/chlorinator each day. So far so good, the pool is healthy and my energy use is way down. After 2 months I now feel I know how to manage the pool using the Floatrons ionisation method.

With the Floatron you still need trace amounts of chlorine (about 20% of what is normally required). As well as killing algae chlorine also acts to keep the water clear. Initially, in my rush to reduce energy consumption I reduced the filter/chlorinator run time to just 1 hour a day. However the pool water tended to be a little blue-green and cloudy (e.g. objects on the bottom of the deep end were fuzzy). Any sort of green in normally a sign of algae breeding madly, so there was a moment of panic!

However I think it was more a case of dissolved (but benign) particles in the water rather than a run-away algae event. I upped the filter/chlorinator run time to 2 hours a day and after about 3 days: clear blue water, about as good as I have ever seen our pool. The chlorine level was still very low (maybe 0.3ppm, way lower than 1.5ppm required normally), but the water was clear. Normally at this time of year (November) we would be running the filter/chlorinator 6-8 hours/day.

Now this management of the residual chlorine level gives me an added level of control. I could drop back to 1 hr/day on the pump if I wanted to. I would get cloudy water but who cares if I am not using it? No risk of an algae attack so I can rest easy. Then, if we have an imminent party or kid invasion coming up, I just up the run time to 2 hours a day to get clear water. I like having this choice – previously I was forced to keep the run time (and expense) up, waste power and effort, as if my pool ever went green it would take me 2 weeks and $150 of algicide/shock treatment to fix it.

This got me thinking about the whole salt chlorination system and business model, and the reasons why using ionisation (rather than chlorination) isn’t that common. I mean the Floatron has been around for 15 years, so why aren’t we all using it?

Think about a salt chlorinated pool. If something goes wrong, e.g. the salt cell gets blocked or you flick a switch the wrong way and you don’t notice for a few days you get a green pool quickly, as the chlorine level drops immediately, especially in hot weather.

The warmer it gets, the more quickly the the chlorine breaks down, so the more you need to run your pump/filter/chlorinator. We varied between between 3 and 10 hours/day over the year, more in summer if the chlorine levels were low, or if the salt cell was nearing the end of its life. Plus you have the expense of a $300 salt cell every few years (we have gone through 2 in 7 years). Being chemically-challenged and slightly lazy we always end up with 1 or 2 “green pool” events a year. This means a trip down to the pool shop, $150 worth of shock treatments, algicides, and much stress and head scratching while we work out what we did wrong this time.

There are other benefits apart from reduced energy costs. Running the filter and chlorinator for a only a few hours a day reduces lots of wear and tear on expensive equipment, perhaps as much as 80%. Using ionisation to kill bugs means less risk of the pool quickly spinning out of control and going green as the copper ions last 3 weeks compared to chlorine in summer that lasts just a few hours. Now all we really need to buy is a few litres of acid a month to keep the PH between 7.2 and 7.8.

So the Floatron is a great thing for a pool owner but a very bad thing for a Pool Shop owner. Just about every dollar we spend at the pool shop is related to chlorine in some way, for example pool salt, algicide, new salt-cell, stabiliser. It even saves on filter sand and kreepy-krawly (automatic pool vacuum) replacement parts as they wear in proportion to filter use. This works against the Floatron – what pool shop would stock a “product of death” to their other lines?

I have two minor criticisms of the Floatron. Despite paying for itself quickly I think at AUD$450 here in Australia it is too expensive. I would suggest something closer to the US price of US$270. Having said that I would happily buy another one tomorrow at AUD$450, just my gut feels says it should be a little cheaper. The printed manual is well written and tells you everything you need to know but is written entirely in UPPER CASE. THIS MAKES IT HARD TO READ GUYS :-) (note however the on-line manual from the Floatron web site makes good use of lower case).

So in conclusion I think the Floatron is a great product, and ionisation is a fantastic way of maintaining a pool compared to chlorination. I figure with energy prices rising the energy costs of luxuries like pools need more attention. Ionisation is low on energy, low on chemicals, less chance of algae, less irritants, and less visits to the Pool Shop!


Low Energy Pool – How I used an old salt cell and the Floatron to reduce my pool energy consumption by 75%!

Peak Oil

Yesterday I helped two other grown men push a small van up a slight hill. Together, the three of us moved it maybe 30cm before giving up. Have you ever considered how much energy is contained in a single drop of oil?

For the past few months I have been reading all I can about Peak Oil. The basic idea is that the global oil supply will soon (around 2010) be less than oil demand. As oil is so fundamental to our lives (all transport, manufacturing, fertilisers for agriculture) this will cause big problems. Some people think modern society will end (literally), others predict a global depression, and some the death of the suburbs as the world reconfigures itself for a low energy lifestyle.

Here are some common predictions that I rate as plausible:

  • Oil prices will sky rocket, like over $150/barrel, causing the price of everything to increase, i.e. high inflation.
  • Stock markets tumble as every stock is based on the assumption of continuing economic growth sustained by cheap energy.
  • Widespread unemployment as whole industries collapse, i.e. “demand destruction”. Starvation in less developed countries (no fertilisers)
  • People with very high debt levels (the norm in Australia) will be in deep trouble. Overpriced housing markets collapse. The “perfect storm” for a modern economy.
  • As the taxation base decreases the government will be less help. For example they won’t be able to fund a switch to renewables, pay unemployment benefits, fix blackouts.

After a few months of research I am convinced Peak Oil is for real. While I am not in the survivalist camp (I think modern society will pull through) my best guess is that there will be very tough times for the world economy.

A powerful DVD on the subject which I recommend is A Crude Awakening. A really good book is Half Gone by Jeremy Legget, which nicely explains both Peak Oil and Global Warming. Or just Google on Peak Oil.

Governments (except Sweden) are ignoring the problem. This means that if Peak Oil hits, we will be largely unprepared, as we will have squandered the time required to prepare for transitioning from fossil fuels. So it’s probably up to individuals and communities to do what they can to cushion the blow.

You know what scares me about the Peak Oil problem? As an engineer I am used to solving problems. Software doesn’t work, you fix it. Hardware bug? Start debugging. You know that there is always a fix, somewhere. Peak Oil scares me because I just can’t see the fix. Anywhere.

So I am thinking about what I can do to “kick the carbon habit” and prepare for Peak Oil. Tactics like reducing debt, an electric vehicle (EV) conversion, improving my household energy budget, re-arranging my stock portfolio, and getting a grid-connect Photovoltaic (PV) array for my household electricity. All good stuff, even if Peak Oil isn’t for real. More on this later.

I am also interested in the possibilities of using Free Telephony to help a post Peak Oil world. I figure if people are moving around less and have less money, then low cost, low power telephony based on open hardware and software may be very useful for connecting the world.
to adding ringtones slide sidekickadp ringtoneslg sprint ringtone pcs 1200scp 8100 sanyo ringtone freearrington adleralf ringtonespolyphonic free nec 525 ringtonebarrington good in advocate shepherd Map

Open Hardware Battery Charger

I am very interested in open hardware and the capacity it has to help the developing world. Now I could visit a developing country and work on projects in that local area. However I figure that the biggest impact I can have is injecting a little free IP into the world. A well engineered design can be multiplied a million times over. Open software is a good example.

I am particularly interested in hardware that can be made locally in developing countries. My friends at Air Jaldi in Dharamsala, India agree. Pauli Nç?rhi has recently developed the Jaldi Charger. This charger has been custom designed to deal with the very demanding realities of rural India (and rural areas elsewhere), for example wildly varying AC line voltages and lightning strikes.

The charger has been designed to be constructed in India using a single layer PCB and parts that are largely available locally – important considerations that those of us in fully developed countries seldom understand.

Nice work Pauli!

alaska loans developer-development alaska autoand alliance leisti loans eragloan calculatoralcp college program loan alabamaadminastrater loansmortgage cheap mortgagesloans info abbey mortgagesmotg 223 loansloans 102 home finansure Mapaccredited chemistry onlinenew colleges hampshire in accreditedcredit account sol reportbuyers accredited representative courseinternet credit casino account merchant cardwashington merchant account credit card cheapcare achieve aged accreditation inair force joint credit tour Mapnaked free movieshuge movies dildomovie clips hardcoreporn dans moviesblow movies job free bestnaked movies womenteen girls free moviespenetration double free movies Mapgirls hooterorgies showergay toonnude girlfriendxxx dvdsex monsterasian twinksteen latina Map

Building an Embedded Asterisk PBX Part 4

About 2 weeks ago I received the first batch of 50 production IP04s from the guys at Atcom. I would have blogged about this earlier but to be honest I have been so busy testing and shipping that I haven’t had time! Here the IP04 is pictured on the bottom, with a WRT54G for size comparison:

I now have now been using the IP04 for a few months (both prototype and production models). Here are a couple of things I really like:

  1. The IP04 is actually easier to set up than an x86 Asterisk system, as it comes with uClinux and Asterisk pre-installed. Apply power and 60 seconds later you have dial tone. You can telnet in and edit Asterisk config files just like a regular x86 box.
  2. The tiny embedded form factor is very cool. You can see from the photo above it is about the same size as a WRT54G (the WRT is a little deeper, the IP04 a little wider). The IP04 is fanless, and draws just 4.5W
  3. Compared to other embedded systems, the IP04 has a huge amount of NAND flash – 256 Mbytes. This means plenty of room for prompts, voicemail, and even your own programs. My experience with most other embedded systems is that you are always running out of flash. The IP04 feels more like a hard disk based system.
  4. The yaffs file system is working really well. It even appears that no special shut down procedure is required to ensure data is written to the NAND flash. For example if I edit a file then pull the power plug out the data is still there when I re-boot!

FXS Noise

After some initial testing we discovered a hardware bug – the FXS ports had relatively high levels of background noise. This was especially obvious on FXS to FXS calls. Over a busy weekend I worked with Alex Tao (Shenzen, China) and Alen Chen (Atcom) on this bug.

Alex discovered that if we used an external 3V3 power supply then the noise went away. This led us to a fix – insert some inductance (in the form of a ferrite bead) in the 3V3 rail of each FXS module to block noise getting into the module. This part was actually suggested by the Silicon Labs Si3210 datasheet, but most FXS module designs tend to leave it out. Anyway, I have retrofitted these beads to the IP04s I am shipping so now the FXS ports sound much better.

This was another example of “open hardware” in action. Alex, Alen and I working together to bounce ideas off each other and solve tough bugs together, using email and chat.

I must admit that I have been impressed by the quality of the Atcom IP04 hardware. I used to own a telephony hardware company, and the first batches of our products had far more issues than these IP04s. Virtually every IP04 I fire up works first time. Of course there are still a few software glitches – but I am sure we can fix these over the next few months.

Here is a picture “under the hood” – you can see the four FXS/FXO modules (in this case two modules of each type):

You can also see the little green RS232 daughter board that is used for console access.

Strong Sales

After about two weeks I am nearly out of stock, maybe only 5 left. Some new stock is due in mid September, and hopefully an 8 port version later in the year. I intend to spend the rest of this year maintaining the IP04 and chasing down any bugs, plus work on a few other projects like the $10 ATA.

The Oslec open source echo canceller seems to be working well on the Blackfin (as well as on x86 machines).

Just like the prototype IP04s, the Atcom production units have proven very reliable. I have had one running for several weeks without any stability problems. Like any new product there are lots of improvements we can think of, for example expansion to 8 ports, fixing a few software bugs, speeding up boot time, improving speech quality etc.

Important Milestone

The release of the production IP04 is an important milestone in the Free Telephony Project as no hardware assembly (like soldering) is required. To date much of the technology we have been developing required hardware assembly. Fun for us, but not for everybody!

There are many more software hackers out there than hardware hackers, so for the growth of the project it was important to develop production, pre-assembled hardware. Now you can experiment with embedded Asterisk on a powerful DSP-enabled platform at a very reasonable cost (around $450). This is less that it would cost to buy a 4 port PCI card and a x86 PC!

This strategy seems to be working. The first batch of IP04s have sold out very quickly, and the forum traffic and contributions are growing steadily. Bugs are being solved, and exciting new project like embedded E1/T1 and BR-ISDN Appliances have been kicked off.

It was exactly two year ago when I started working on this project (Asterisk on the Blackfin). I wasn’t sure if Asterisk would run on uClinux – back then uClinux didn’t even support shared libraries! Since then, with the help of many people, we have developed a range of open hardware designs, and even sprouted a small industry of people who are earning income from this area through product manufacture, sales, development, and consultancy.

The future looks even brighter – the technology is maturing rapidly and will soon be deployed to the mass market. This is possibly a first: a commerical, mass market product developed from free software and open hardware.


IP04 home page
Buy an IP04 from the Free Telephony Project on-line store
Blackfin Asterisk Forum
Building an Embedded Asterisk PBX Part 1
Building an Embedded Asterisk PBX Part 2
Building an Embedded Asterisk PBX Part 3
IP04 and the Asterisk Appliance
shemale clips movieteen free sex moviestinas moviesmovies usedxxx movies cheerleaderxxx movies teenever most scariest 10 moviesadult search movie Map$5000 loans credit bad100 guaranteed loans student200 loan pay dayquick loans 300502 loan directloan 9 nursing studentloan uk aaadjustable rate texas loan Map

Great Experience with Toshiba Laptop Repair

This is a bit off my regular topics, but I just wanted to thank Toshiba publicly for the amazingly fast repair they performed on my daughters laptop.

My daughters CD/DVD driver was skipping on her laptop. Thinking back to my previous experience with warranty repairs to anything electronic, I told her to kiss her laptop good bye for a few months. So I reluctantly phoned the Toshiba service centre on Wednesday, and the call centre told me to hit their warranty repairs web site. About 20 minutes after I filled in the form a guy phoned me and said their would be a courier arriving shortly. They even had a PDF address label that I just downloaded and printed. Fortunately I had the original packing so it was easy to get it ready. Sure enough, a few hours later a courier turned up and off it went. I waved it a teary fair well, wondering if I would ever see it again! The repair depot was in Perth, about 3000km away.

A day later I get an email that says the repair is complete! WTF?

At 9am Friday morning the laptop is back, about 40 hours after it left my house, despite a round trip of 6000 km. And the repair was completed and it worked fine. I must admit I was amazed at this sort of service.

Well done Toshiba!
eroticas Chicas Fotoskostenlos Asian scatBehaarte hegenLehre Mom zu teen fuckpics Ebony kostenlos pussyPissing verstecktBilder Transsexuelle Vaginaxxx Clits reife Mappics alia shawkat sexyrumble essex 1929 seattgp 3dpornteen model alekanymph sex allentown101 positons sexanalysis strategic alditeen fiction amputee Mapchemistry accredited onlineaccredited colleges hampshire in newcredit sol report accountaccredited buyers representative coursecard merchant account credit casino internetwashington merchant credit account card cheapachieve care in accreditation agedforce air joint tour credit Mapon credit purchases 1940 scredit carpet abbeyace credit program recoverycourses credits students degree institution accreditedave auto sales mass credit 1258derivatives isda credit 2003 definitionsloans wheel 5thaccredited credits degree institution courses students Mapcartoon free movies pornprivate movies pornsexy stars moviehorse free movie sexaebn movies streamingmovies porn cartoon freemovies free asian sexmovie job hand Map

Open Source Echo Canceller Part 5 – Ready for Beta Testing

The continued trials and tribulations of echo canceller development! Since the last post the echo canceller (named Oslec) has been tested at several alpha sites. Oslec is performing well and is now ready for Beta testing. See the Oslec home page for the current status of the echo canceller.

The core of Oslec is the echo.c file.

Why X100P Cards Have Echo Problems

After the good results I obtained in the previous post I asked a few friends to test Oslec on their Asterisk systems. These guys were using X100P cards for the FXO interface. Oslec performed poorly so I asked them to collect some samples of the echo signal so I could analyse them off line. As part of the development strategy Oslec has built in echo sampling code.

Here is a plot of the X100P signals. Open it in another window or tab. Note that the green receive signal has a slight DC offset, it doesn’t quite sit on the zero line. Note also that the echo canceller output (blue) is quite large, i.e. the cancellation is poor.

There is also a series of small spikes on the green and blue signals – this is 60Hz hum that the X100P has mistakenly delivered to us. We don’t normally hear this hum as the phones we use tend to filter it out.

The combination of DC offset and 60 Hz hum confuses the echo canceller algorithm and make it converge slowly. This means poor performance and lots of echo.

The trick was to remove the hum and DC with a simple high pass filter. Here is a plot of the X100P signals with the high pass filter. To see the effect of the filter use your browsers forward and backward buttons to flick between the two images (with and without filtering).

See how the hum and DC offset have gone away after filtering? The green and blue lines are both now on the 0 line. But best of all the echo level (blue) has been greatly reduced, as without the hum and DC offset the echo canceller can do a much better job. Pretty cool, huh? DSP in action :-)

The observant will also note a DC offset on the (red) transmit signal. I am not sure why this is present, it’s in the signal from the SIP phone in this particular test. Perhaps a DC offset in the SIP phone electronics.

Since the filter was added Oslec has been in constant use on a X100P home IP-PBX system in Ottawa with great results.

This is an exciting result – it means low cost ($10) FXO hardware can have high quality echo cancellation.

Handling Background Noise

Inside echo cancellers there is an animal called a “Non Linear Processor” or NLP. After the adaptive filter part of the echo canceller has done it’s best this gizmo is used to remove any remaining echo.

Initially Oslec had a very simple mute algorithm – if the residual echo level was low enough the output would be muted. You can see this muting in action in the X100P plot above. Around sample 1000, the blue line “flat lines” as the NLP cuts off any residual echo.

The problem is that muting is crude – it removes echo but also throws out the background noise. Without background noise the calls sounds unnatural.

I experimented with a couple of ideas here. The first was to insert “comfort noise” instead of muting. The level of the noise is set to match that of the background noise level. However the noise I used sounded unnatural compared to the actual background noise (which in my office is computer fans).

The best NLP solution I have found so far is simply to clip the residual echo signal to the level of the background noise:
/* This sounds much better than CNG */
if (ec->clean_nlp > ec->Lbgn)
ec->clean_nlp = ec->Lbgn;
if (ec->clean_nlp < -ec->Lbgn)
ec->clean_nlp = -ec->Lbgn;

This works surprisingly well, even very weird background noise like a lawnmower working in my backyard came through fine and I still couldn’t hear any echo. BTW I found the idea of clipping on the data sheet of a commercial “hardware” echo cancellation chip.

I struggled with the code to estimate the background noise level for some time before settling on a really simple algorithm. I just average the level using a slow (1 second time const) filter if the current level is less than a (experimentally derived) constant:
if (ec->Lclean < 40) {
ec->Lbgn_acc = abs(ec->clean) - ec->Lbgn;
ec->Lbgn = (ec->Lbgn_acc (1<<11)) >> 12;

The 40 was measured experimentally, and is roughly the lowest level of any near end speech. The idea is that we don’t want to include any near end speech (which is generally higher in level than background noise) in our estimate of the background noise level. This estimator has worked well to date however I would welcome feedback from beta testers on Oslec background noise performance.

Fun with Soft Phones

One gentleman (Pavel) who tested Oslec complained of echo break through with pop sounds like “P” in Peter. He was using a kiax soft phone connected to an FXO port via Asterisk. The problem was due to a interesting combination of high quality audio (the microphone and sound blaster) and the telephone network.

Pavel had initially thought his microphone was faulty is some way, however it turns out it was too good! The microphone/sound blaster combination lets low frequency signals (e.g. down to 20Hz) through to the FXO Port. However the FXO port electronics (in particular the hybrid) is designed for telephone bandwidth signals (300-3300Hz). The results was a temporary failure of the hybrid, which let some echo slip through.

Figure 1 is a close up of the “pop” waveform. The red line (tx) is the microphone signal. Note how around sample 300 it goes down off the screen then comes back up around sample 400. This signal is very low frequency compared to normal speech (it changes slowly compared to other parts of the red tx signal).

In Figure 2 the lower brown line shows how well the FXO port hybrid is working. It normally varies between 6-15dB. However near the pop it first goes up to 60 then down to 0 dB. The low frequency pop signal is messing up the hybrid, making it non-linear. This means the echo canceller cannot cope, in fact it resets the coefficients. Echo cancellers depend on the hybrid working in a linear mode all the time.

So the solution is to high pass filter the tx signal the microphone sends to your FXO port. By removing the low frequency pop energy your the hybrid will remain linear, and the echo canceller will work with soft phones like kiax.

Are 128ms Tails Really Needed?

There is a school of thought that says a “128ms tail” is required for “serious” echo cancellation. I am not sure where that requirement comes from. I have collected many echo samples from all over the world and 9/10 would have worked with a 16ms tail. The 10th was a long distance T1 line, and even that fits comfortably in a 32ms tail.

If any PSTN FXO phone line has a 128ms echo then an analog phone connected to that line would be unusable. My understanding (and experience) is that Telcos insert network echo cancellers after a certain delay, for example on long distance calls. That’s why you can make regular long distance calls without echo.

Perhaps 128ms tails are required for operating inside of Telco networks or when Telcos handle international trunks. Anyway I suspect that the 128ms requirement is just another piece of FUD that surrounds echo cancellation, like “hardware echo cancellation is superior to software” or “you must have a DSP chip”. Perhaps “128ms tail” has become confused with “a working echo canceller algorithm”.

So my alpha testers and I typically use Oslec with a 16 or 32ms tail and it works just fine. BTW I would love to see a sample that refutes this argument. If anyone can send me a sample that shows a tail greater than 32ms for a PSTN FXO line I will happily publish it here and recant my heresy against the church of the 128ms tail!

Open Development Works!

In Part One I spoke about the idea of people collecting and sending samples of bad echo. This has really worked well. Several times during testing something went wrong at an alpha site, and collecting a sample really helped me work out why and improve Oslec. Thanks especially to Mark, Pawel, and Pavel plus many others for sending in samples.

I have also had a lot of useful comments from my DSP “brains trust” – Steve, Jean-Marc and Ramakrishnan.

This was truly an open development effort. Echo cancellers are tricky voodoo, requiring lots or practical tricks on top of the standard DSP algorithms. I have tried off and on for 15 years to come up with a viable echo canceller. The Zaptel echo cancellers have been works-in-progress for 6 years. Other companies have invested 10’s of man years (e.g. teams of 20 people for several years).

So I think this is a great example of where open development techniques have been used to achieve excellent results in a short time.

How to Test an Echo Canceller

Testing an echo canceller can be tricky. This section explains how to test an echo canceller, along with some of the traps.

Set up a SIP phone to FXS call. This way there is plenty of delay in the circuit and you will get a nice echo. An analog to analog call (say FXS to FXS) might be TDM bridged and not have any delay.

Once the call is running mute the analog phone. Most phones have a button for this – if they don’t then unplug the handset from the phone base. To test an echo canceller is is important to have no near end speech present. If the FXS phone is in a different room it’s OK to leave it un muted – just make sure it can’t pick up anything you are saying into the SIP Phone.

Speak loudly into the SIP phone and listen for any echos. It is fun to try this with the Oslec control panel:

For example try the “Disable” and “Enable” buttons and listen to the echo with and without the echo canceller.

Another good test is double talk. Get a person in a different room to use the FXS phone while you use the SIP phone. Get them to speak constantly and try to talk on top of them. Double talk is a good test as it can confuse echo cancellers.

If you are testing a SIP to FXO call, make sure the phone at the other end of the connection (say a cell or desktop phone) is out of audio range of the SIP phone, for example in another room. Alternatively, mute the telephone.


A good quality line echo canceller has been a missing part of the open source telephony scene for a long time. Through the efforts of a team of DSP engineers and several alpha testers we have developed a good candidate for a free (as in speech) line echo canceller. Please try Oslec yourself and tell us what you think.

Reading Further

Oslec Home Page
Part 1 – Introduction
Part 2 – How Echo Cancellers Work
Part 3 – Two Prototypes
Part 4 – First Phone Calls
ringtone download free 100ringtone series tv 24add to mobile ringtones phoneringtone mp3 24for g 3 free ringtonealltel ringtones comfree ringtone 100 musicringtones show 24 the Mappokemon hentai clips movieporn movie zone starmovies rapidsharemovies round assin disney sex moviesshemales moviesstrapon movies sexdildo pussy movie tight Mapaapne banaya ringtone aashiqaddiction janes ringtoneringtone 8830 forumringtones 1997 edge16 ringtone tonsadulf ringtone proofmiles 500 ringtonea650 ringtone install Mapembedded videos pornporn ember downloademergent porngeorge pornstar emilysimons porn emilyporn in emmaemma star star pornpink emma starr porn Map

8 Port Low Cost FXS USB Channel Bank

Last week I attended a presentation at Adelaide University by a student named Tim Ansell. For his honors project Tim has developed an 8 channel FXS channel bank that connects to a host PC via USB, not unlike the Xorcom Astribank products.

The channel bank uses FXS interface chips and a PIC microcontroller. Signal processing such as echo cancellation and DTMF detection is performed by the Host PC. The advantage of this design is low cost.

Tim demonstrated telephones making calls to each other, using the the PIC to perform some simple switching. His next steps are to complete the interface to the Host PC and Tim also has many ideas for cost reduction.

Tim is considering commercialising his design – please email him directly for more information.

loans cash about quickequity loans home adjustablecash houston advance loanhour loan 24loans mortgage down 50cash advance loan emergencyloan advance washington cashsignature 1st bank loans Mapoversized clitsteen chubby kirsten modelwife share .uk amateurbreasts massive minkapissing girls voyeurfucking ans sister brotherasian nude modelmini skirt sluts sexy Map