Hi Giovanni
How can I track down and fix echo?
I have setup an incoming VOIP call to ring a Sipura extension and CellIAX simultaneously as a ring group, although in practice there is quite a bit of delay with the cell phone ringing, possibly mainly due to cellphone carrier delays between cell phone ringing and cell phone answering.... When the call is answered by the Sipura excellent call quality. When the call is answered by CellIAX (C350) / my cellphone (O2 Atom Exec) both parties hear significant echo although it seems there may be excellent voice quality also present, hard to be sure with the echo! This suggest the echo is arising from somewhere within the CellIAX system. Where do I start?
echo causes and remedies?
to find where the echo is coming from is a damn hard problem.
I begin to give you the first things that comes in my mind, then we can try to go in deep:
1) try to have the lowest working volumes for both play and capture in alsamixer -V all (sometimes it seems to work, and work better, with zero capture volume)
2) check that you have loaded only chan_celliax (not chan_oss and chan_alsa too)
3) have a look at the pages about echo at voip-info.org (for eg. http://www.voip-info.org/wiki/view/Causes+of+Echo is interesting, but there are many other interesting pages)
4) be sure that your cellphone understand that there is a jack connected to it, and correctly disable the handset mic and speaker
5) ...
Please, let us know how it goes, what you try and what you find
Giovanni
Echo
Giovanni
Regarding:
1) Does not seem to help
2) How do I check that?
3) Have done, not helpful in terms of solving. Could I have impedance mismatch between the C350 and the sound card? The wires are essentially straight thru. Could there be sound card crosstalk?
4) According to the manual for the C350 there is no option I can find to modify this, so it seems to be working correctly in this regard. Also if this was the problem I would expect it to change with distance from the C350. The nature of the echo does not change even from a different room where no feedback could be occurring. (Unless the echo comes from the mic and speaker on the C350 - but surely that would be a ppor handset design if that were the case that was evident elsewheres too?)
5) I tried different separated audio cables, using a 2.5mm jack converter to 2x 3.5mm outs with separate 3.5mm cables on to the PC sound cards connections.
Further guidance would be appreciated if at all possible please.
echo
2) edit modules.conf and add a noload line for chan_oss and chan_alsa
3) I don't think so
4) you can verify this just by knocking on the cellphone with a finger while during a call. (It can be a mechanical problem in the cellphone jack, but it does not seems so probable)
Are you sure you disabled (muted) the mic on alsamixer (it have to be disabled, you just use the "capture" column, and the mic has to be muted for play, and selected for capture)
For sure this is not a software problem, but an hardware one. Not easy to spot.
Please report again about it
Giovanni
echo in group?
Is the problem the same also if you have only celliax to answer the call (I mean, not in a ring group)?
echo canceller
I will try to integrate an echo canceller algorithm in chan_celliax.
No promise here ;-), but would be very very useful if you would help in testing it. No date yet, it would need some work, probably one-two week.
You can have a look into the project I would like to use here: http://www.rowetel.com/ucasterisk/oslec.html
But please bear in mind this is just an idea for now, I do not yet understand it ;-)
Giovanni
with PSTN?
Do you have the same problems with a call like: SIP->celliax->PSTN (as opposed to SIP->celliax->cellphone)? I mean, if celliax calls a fixed line, instead of a cellphone?
Giovanni
Echo
Giovanni
2) modules.conf already has:
noload => chan_alsa.so
noload => chan_oss.so
I assume that is all thats required?
4) Tapping seems to make no difference.
Will play with alsa as you suggest, it was setup as per the instructions.
I had noted oslec and that it seemed to be configured only for zap cards, so to be able to use it more widely would be great. Of course to find the echo's route would be best. Happy to help out as able, with your excellent instructions!
Will test more and answer more of your questions / suggestions when able.
working on oslec...
I'm slowly trying to integrate oslec into celliax, it takes a robust rework of the sound system... we'll see the results in a while
Echo Diagnosis
Hi Giovanni
This sounds really cool, I wonder if it will be at all useful to diagnose as well as to remedy echo? I'll be pleased to assist test for you! Perhaps I need to learn how to record sound clips to this end?
same problem here
Hi,
I am having the same problem. I do my cell -> c350(celliax) -> sip ext. The sip extension hears echo.
I muted almost everything in alsamixer... same thing.
I have two main questions:
1- Is the oslec feature on progress?
2- isn't it weird that some people had c350 working without echo and some of us don't? (I assume c350 is working without echo for some people, as I see that phone is very common in celliax)
Thanks in advance,
Aram
ECHO and OSLEC
I note that the latest Trixbox 2.4 (http://voipspeak.net/index.php?option=com_content&task=view&id=143&Itemid=1) as now released is said to include OSLEC, however is it only working in particular cases? I will run this up when I can, in a week or so and test, however wouldn't the beta versions also include this as we have already tested? Perhaps it was polished up before final release?
oslec and trixbox
oslec in Trixbox is the normal oslec, that's intended to be used with zaptel boards.
It needs substantial modifications to celliax to make it to work with oslec.
I have put togheter an initial hack, if you're interested I can send it to you, just to know if there is some echo relief.
Bring on OSLEC for CellIAX!
Of course, can you make it downloadable, instructions etc? (Happy to receive as email also) The other gent may well be interested also....and maybe others? I am pretty booked up (thats 24/7!) but will do so as able, seems one now test it with 2.4.2?
Giovanni, have you communicated with the main writer of OSLEC, he accepts echo recordings to analyse and evolve the algorithms with. Could be useful at an appropriate time?
Echo cancelation
Hi.
Is there any update on the echo canceling as I'm having similar problems.
I'm using Asterisk 1.4 and I downloaded celliax_stuff.tgz yesterday from www.celliax.org (no clue what version, I can't find a ChangeLog or similar).
My problem: First when everything started working both parties would get an echo. The one talking on the mobile phone would get a big echo, the one talking on the sip device would get a small echo. Reducing Mic playback volume in alsamixer solved the echo on the mobile side. However the echo on the sip side is still present.
The "phone" I'm using is Mobigator. The problem I also had is, the darn thing didn't register itself on the mobile network, because the pin was never sent to the device. I solved this with:
at_postinit_3=AT+CPIN=1234
at_postinit_3_expect=OK
And another quick question. Alsamixer shows the next 'sliders': Playback Mic, Playback Auto Gain, Playback Speaker, Capture Mic. Do I need to set some of these to 0? Any suggestions on playing with all of these.
Best regards, and thanks.
-Zobo
OSLEC
OSLEC is for cancelling line echo, I think you are dealing with acoustic echo, however.
Different kinds of algorithms.
no OSLEC, speexdsp ;-)
definitely yes, you right.
This has been solved couple months ago using the AEC (acoustic echo canceller) from the speexdsp library of the speex distribution.
It works very well!
Thanks a lot for making it explicit in this thread Tim,
Giovanni
You can try a software
You can try a software called PBXMate (from SoliCall). It improves voice quality (echo & noise) in any VoIP network. In addition it monitors the QoS in the network.
Help!!!!
I edited the makefile to reflect the location of my asterisk include directory and the flag for 1.4 but "make" command returns a couple of hundred errors. Is this app compatible with Ubuntu 8.04 (Hardy)??
Love the idea of calling through skype and will downgrade os if required.
no problems with Ubuntu Hardy
Ciao Dedialtone,
no problem with Hardy.
Maybe you do not have all the ldevelopment ibraries that are needed ?
Please follow "strictly" the instruction in http://www.celliax.org/node/496
If you still encounter problems, write back here, we'llbe pleased to help you.
Giovanni
Thank you G!
As you suggested I followed your instructions and this is only the last few lines of what I got:
chan_skypiax.c:1921: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:1958: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:2006: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:2033: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:2042: error: storage class specified for parameter ‘__mod_info’
chan_skypiax.c:2042: error: parameter ‘__mod_info’ is initialized
chan_skypiax.c:2042: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:2042: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
chan_skypiax.c:2042: error: storage class specified for parameter ‘ast_module_info’
chan_skypiax.c:2042: error: parameter ‘ast_module_info’ is initialized
chan_skypiax.c:2042: error: redefinition of parameter ‘ast_module_info’
/usr/include/asterisk/module.h:260: error: previous definition of ‘ast_module_info’ was here
chan_skypiax.c:2042: error: old-style parameter declarations in prototyped function definition
chan_skypiax.c:2042: error: expected ‘{’ at end of input
make: *** [chan_skypiax.o] Error 1
I greatly appreciate your tolerance of my ignorance.
Perhaps I failed to properly edit the Makefile?
Please, send first lines of output
ciao drdialtone
it's probably a matter of the include files missing or not found.
the first lines are more useful to understand what is missing.
Can you please post the first 20-30 lines of output?
I really appreciate the help G
gcc -DASTERISK_VERSION_1_4 -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g3 -I/usr/include/asterisk -I. -D_REENTRANT -D_GNU_SOURCE -march=i686 -fomit-frame-pointer -D'SKYPIAX_SVN_VERSION="1096M"' -c -o chan_skypiax.o chan_skypiax.c
In file included from /usr/include/asterisk/compat.h:20,
from /usr/include/asterisk/endian.h:30,
from /usr/include/pthread.h:24,
from /usr/include/asterisk/lock.h:48,
from /usr/include/asterisk/linkedlists.h:23,
from /usr/include/asterisk/features.h:27,
from /usr/include/unistd.h:26,
from skypiax.h:45,
from chan_skypiax.c:2:
/usr/include/inttypes.h:288: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’
/usr/include/inttypes.h: In function ‘imaxabs’:
/usr/include/inttypes.h:298: error: expected declaration specifiers before ‘__THROW’
/usr/include/inttypes.h:302: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’
/usr/include/inttypes.h:306: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’
/usr/include/inttypes.h:310: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’
/usr/include/inttypes.h:315: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’
/usr/include/inttypes.h:320: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’
/usr/include/inttypes.h:442: error: expected declaration specifiers before ‘__END_DECLS’
In file included from /usr/include/sys/types.h:31,
from /usr/include/asterisk/compat.h:21,
from /usr/include/asterisk/endian.h:30,
from /usr/include/pthread.h:24,
from /usr/include/asterisk/lock.h:48,
from /usr/include/asterisk/linkedlists.h:23,
from /usr/include/asterisk/features.h:27,
from /usr/include/unistd.h:26,
from skypiax.h:45,
from chan_skypiax.c:2:
/usr/include/bits/types.h:32: error: storage class specified for parameter ‘__u_short’
/usr/include/bits/types.h:33: error: storage class specified for parameter ‘__u_int’
/usr/include/bits/types.h:34: error: storage class specified for parameter ‘__u_long’
/usr/include/bits/types.h:37: error: storage class specified for parameter ‘__int8_t’
/usr/include/bits/types.h:38: error: storage class specified for parameter ‘__uint8_t’
/usr/include/bits/types.h:39: error: storage class specified for parameter ‘__int16_t’
/usr/include/bits/types.h:40: error: storage class specified for parameter ‘__uint16_t’
/usr/include/bits/types.h:41: error: storage class specified for parameter ‘__int32_t’
/usr/include/bits/types.h:42: error: storage class specified for parameter ‘__uint32_t’
/usr/include/bits/types.h:62: error: storage class specified for parameter ‘__quad_t’
/usr/include/bits/types.h:65: error: expected specifier-qualifier-list before ‘__u_long’
/usr/include/bits/types.h:66: error: storage class specified for parameter ‘__u_quad_t’
In file included from /usr/include/sys/types.h:31,
from /usr/include/asterisk/compat.h:21,
from /usr/include/asterisk/endian.h:30,
from /usr/include/pthread.h:24,
from /usr/include/asterisk/lock.h:48,
from /usr/include/asterisk/linkedlists.h:23,
from /usr/include/asterisk/features.h:27,
from /usr/include/unistd.h:26,
from skypiax.h:45,
from chan_skypiax.c:2:
/usr/include/bits/types.h:134: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:135: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:136: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:137: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:138: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:139: error: expected declaration specifiers before ‘__extension__’
/usr/include/bits/types.h:140: error: expected declaration specifiers before ‘__extension__’
/us
more details needed
So, you are on Ubuntu Hardy.
How you installed Asterisk?
From sources or from packages?
Which version of Asterisk? (if you start "asterisk -c" will tell you in the first lines)
Any other details about your machine, linux, setup, etc?
Please, go in the "asterisk-1.2.rev137401" directory (that is a self contained asterisk+celliax+skypiax source tree, that do not depend on other external asterisk installations), and type "make clean && make", so to check if there are problems with the development environment.
ciao for now,
Giovanni