Hi there, I'm experiencing an echo problem and dammed If I can sort it out.
We're running Asterisk on Fedora Core 3 64bit, installed as per http://www.voip-info.org/wiki-Asterisk+Fedora+Core+3. These are the specs of the Machine – 1 x AMD A64/3500+ CPU: Desktop Athlon64™ Retail w/fan SKT 1 x Asus A8N-SLI Deluxe Athlon™ 64 S939 NVIDIA nForce(r)4 SLI™ PCI Express Req: 24pin ATX 1 x Corsair TWINX1024-3200XL 2x 512MB 1024MB Dual Channel Optimised Pair 2 x Western Digital WD1200JD/PD-SATA 120GB Serial ATA 150Mbps 7200rpm HDD 8Mb Cache 1 x Leadtek PX6200 TC TDH GeForce 6200 64MB PCI-E 1 x LG GDR-8163B DVD-ROM Internal: 16x Black 1 x Alps FDD B Floppy Disk Drive: 1.44Mb 3.5" Black 1 x Antec 1040B ATX Full Tower Case: 400W PSU Black 1 x Generic Adapter: Power ATX 20 pin -> 24 pin With a Digium Wildcard TDM400P TMD04B (4 Port FXO Modules) connecting to our analogue system. On calls that use the TMD400P we're getting echo on the IP phone - on inbound calls only. That is if a call is initiated from an IP phone there is no echo on either side of the conversation, but if the call originates from the PSTN the person on the IP phone gets echo for about the first 10-30 seconds of the call. IP to IP calls are echo free. Let me elaborate… After installing Asterisk we had major echo problems when using the TMD400P. After tweaking the settings in the relevant configuration files the echo, the best result I could get was echo disappearing about 10-30 seconds into a call (on ALL calls, both incoming and outgoing). The settings I'm currently using are – zaptel.conf defaultzone=au loadzone=au fxsks=1-4 zapata.conf [channels] language=en context=default rxwink=300 usecallerid=no hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes transfer=yes canpark=yes cancallforward=yes callreturn=yes rxgain=6.0 ; about 12 seems to effect echo but this level (6) is required for normal comms. txgain=-1.0 ; this seems the best level. switchtype=national group=1 callgroup=1 pickupgroup=1 immediate=no usecallerid=no flash=100 signalling=fxs_ks echocancel=128 echocancelwhenbridged=yes echotraining=900 callerid=asreceived busydetect=yes busycount=5 context=default channel => 1-4 I have tried practically every different configuration possible, and this seems to yield the best result for me, although not good enough for a production environment (I hate echo). Further reading on the mailing list and wiki suggested I should try tweaking a) In chan_zap.c - change the following line: #define READ_SIZE 160 to #define READ_SIZE 16 And In zapata.conf adding jitterbuffers=40 (and recompile) This did not have any noticeable effect, except increase CPU load. b) In zconfig.h, uncomment DAGGRESSIVE_SUPPRESSOR (and recompile) This made audio quality worse, and echo unchanged. My TDM400P card, which I purchased not two weeks ago is marked 'REF F' and the FXO module are marked 'REV B'. Discussion in the mailing lists suggest the Current card revision is H and the current FXO module revision is C. Does anyone know if the revision of card I'm using is more susceptible to echo problems? A dmesg also shows my card as a E/F REV. Zapata Telephony Interface Registered on major 196 Registered Tormenta2 PCI ACPI: PCI interrupt 0000:05:08.0[A] -> GSI 3 (level, low) -> IRQ 3 Freshmaker version: 71 Freshmaker passed register test Module 0: Installed -- AUTO FXO (FCC mode) Module 1: Installed -- AUTO FXO (FCC mode) Module 2: Installed -- AUTO FXO (FCC mode) Module 3: Installed -- AUTO FXO (FCC mode) Found a Wildcard TDM: Wildcard TDM400P REV E/F (4 modules) A cat proc /interrupts shows CPU0 0: 13097582 XT-PIC timer 1: 958 XT-PIC i8042 2: 0 XT-PIC cascade 3: 13742817 XT-PIC wctdm 4: 3258008 XT-PIC NVidia CK804 5: 12081 XT-PIC libata, ehci_hcd 7: 3 XT-PIC SysKonnect SK-98xx 8: 0 XT-PIC rtc 9: 0 XT-PIC acpi 10: 0 XT-PIC libata, ohci_hcd 11: 1323944 XT-PIC libata, eth0 12: 20212 XT-PIC i8042 15: 117438 XT-PIC ide1 NMI: 2146 LOC: 13095854 ERR: 0 MIS: 0 As digium recommends, wctdm has it's own interrupt. Also, I have tried moving my TDM400P Card to another pci slot – there was no difference. I was stumped. Didn't know what to do. So, with echo still on my calls (both incoming and outgoing calls) for about 30 seconds I gave up and started playing with dialplans. The TDM400P card in my asterisk box is connected to an analogue extension port in my key system (I have also tried connecting it directly to the PSTN to see if the echo problems change with nothing positive to report), and as a result I need to dial a '0' followed by a pause to get an outside line. At this time I just had an entry in my extensions.conf that said – exten => 9,1,Dial(Zap/g1) So, I was dialing '9' then after I the line was opened I dialled the number I actually wanted to call. I decided to tidy this up to – exten => _XX,1,Dial(Zap/g1/${EXTEN:0},20) exten => _XX.,1,Dial(Zap/g1/W0W${EXTEN:0},20) The idea is that if I dial a 2 digit extension it must be an internal call, otherwise, it must be an external call, so prefix it with a 0 and a wait. Note I accidentally put a wait before the 0 as well (although this won't adversely effect calls) I made an internal call – it worked (but still with echo). I made an external call – it worked, WITH NO ECHO! The only difference I could think of was the wait in the dial string. So I changed exten => _XX,1,Dial(Zap/g1/${EXTEN:0},20) to exten => _XX,1,Dial(Zap/g1/W${EXTEN:0},20) and presto, the echo went away for internal calls as well. I can replicate this every time, but removing the w and replacing it. – Always, when there is no w there is echo, but if the w is there…echo. I really have no idea why this works, or why I am still getting echo for incoming calls. I would really appreciate any help! Cheers Adam
_______________________________________________ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users