Gary Mart
2003-Nov-21 19:58 UTC
[Asterisk-Users] Echo Cancellation, TDMoE fails, X100P works
We have been pretty much able to solve our echo problems, except for the primary mode in which we desire to operate our system. See system diagram at bottom. Prior to making adjustments to cancel echos (all echocancel=no): Call Type Result (Before) --------- --------------- CP <- LEC PRI * TDMoE * FXO -> AP no echo CP <- LEC PRI * TDMoE * SIP -> sip phone no echo AP <- LEC PRI * TDMoE * FXO -> AP moderate echo on both ends AP <- LEC PRI * TDMoE * SIP -> sip phone bad echo on sip phone no echo on other end AP <- LEC analog FXO * SIP -> sip phone bad echo on sip phone no echo on other end AP <- LEC analog FXO * FXO -> LEC -> AP slight echo on both ends (AP stands for analog phone and CP stands for cell phone) After changes to the * with the X100P cards; latest CVS (11/21/03), echocancel=yes and echocancelwhenbridged=yes in zapata.conf, KFLAGS+=-DECHO_CAN_MARK2 and KFLAGS+=-DAGGRESSIVE_SUPPRESSOR in /zaptel/Makefile: Call Type Result (After) --------- -------------- CP <- LEC PRI * TDMoE * FXO -> AP no echo CP <- LEC PRI * TDMoE * SIP -> sip phone no echo AP <- LEC PRI * TDMoE * FXO -> AP slight echo on both ends AP <- LEC PRI * TDMoE * SIP -> sip phone BAD echo on sip phone (STILL) no echo on other end AP <- LEC analog FXO * SIP -> sip phone short echo on sip phone, gets much better after a few seconds no echo on other end AP <- LEC analog FXO * FXO -> LEC -> AP negligible echo (AP stands for analog phone and CP stands for cell phone) It appears that echo cancel does work if an FXO (X100P) channel is involved in the call but does not work for TDMoE <--> * <--> SIP. The TDMoE is configured as a pri_cpe in zapata.conf on the * box with the X100P boards, and has the same echocancel configuration as the X100P channels. Any ideas as to why echo cancel works for the X100P channels but does not work for the TDMoE channels? Do the echo cancel algorithms even work at all on TDMoE channels? I could detect NO difference with echo canceling on for a TDMoE call through * to a sip phone while there was a big difference with echo canceling on for an FXO call through * to a sip phone. I have not done echo canceling on the * box connected by PRI to the LEC because, as I understand, it may cause problems for the modem connections that go through that machine. Also, it is clear that the echo heard on the sip phone originates with the the analog phone at the far end of the connection. As was pointed out in an earlier posting (and my tests confirm), digital cell phones don't generate an echo. System Diagram: +- PRI --> modem bank | LEC <-- PRI --> * with <--+ T400P <--+ | (pri) +- TDMoE --> * with <-- SIP --> sip phones LEC <------ analog line ---------------> X100P Gary Mart PS The modem connections have been working just fine after some initial problems and a CVS update. Thanks Mark!
Gary Mart
2003-Nov-23 13:24 UTC
[Asterisk-Users] Echo Cancellation, TDMoE fails, X100P works
>> System Diagram: >> +- PRI --> modem bank >> | >> LEC <-- PRI --> * with <--+ >> T400P <--+ >> | (pri) >> +- TDMoE --> * >> with <-- SIP --> sip phones >> LEC <------ analog line ---------------> X100P > > >> PS The modem connections have been working just fine after some initial >> problems and a CVS update. Thanks Mark! > > >Would you be willing to share your T400P/NAS configuration? I intend on >doing something very similar but was told that the T400P couldn't pass >traffic between the LEC PRI and the NAS and achieve v.90/v.92 connections.Oh, but it DEFINATELY can! # file: /etc/zaptel.conf (on * with T400P) loadzone=us # pri from LEC span=1,1,0,esf,b8zs # pri T1 to portmaster (this one is online) span=2,0,0,esf,b8zs # pri T1 to portmaster (backup, testing) span=3,0,0,esf,b8zs # pri T1 (unused, next I will try using this to # connect to the other * box if I can't stop the # echos on TDMoE) span=4,0,0,esf,b8zs bchan=1-23 dchan=24 bchan=25-47 dchan=48 # For Testing: This maps channels straight across with as little involvement # as possible by * (the zaptel driver just shuffles bits). # dacs=1-24:25 bchan=49-71 dchan=72 bchan=73-95 dchan=96 # TDMoE channels to PBX (* with X100P's) dynamic=eth,eth1/00:01:02:9B:39:72,24,1 bchan=97-119 dchan=120 # file: /etc/asterisk/zapata.conf [channels] language=en context=lec-pri signalling=pri_cpe switchtype=5ess usecallerid=yes group=1 echocancel = no echocancelwhenbridged = no channel => 1-23 context=outbound-pm signalling=pri_net switchtype=5ess usecallerid=yes group=2 echocancel = no echocancelwhenbridged = no channel => 25-47 context=outbound-pm signalling=pri_net usecallerid=yes group=3 channel => 49-71 context=local switchtype=5ess signalling=pri_net usecallerid=yes group=4 channel => 73-95 ;; TDMoE to PBX context=local usecallerid=yes signalling=pri_net group=5 channel => 97-119 # file: /etc/asterisk/extensions.conf (excerpt) [lec-pri] ; these numbers to our portmasters exten => 5413452121,1,Dial(Zap/g2/5413452121) exten => 5413452122,1,Dial(Zap/g2/5413452122) ; these DID's to PBX via TDMoE exten => 5413452123,1,Dial(Zap/g5/5413452123) Note the commented out line in zaptel.conf (# dacs=1-24:25). This was new in CVS as of a couple of weeks ago and this was the first thing that worked successfully with the 56k modem traffic. Also note that echo canceling is off in zapata.conf, it could only confuse the modems. Also, either * is _very_ fast when it shuffles bits between channels and/or modems have some decent echo canceling software builtin, because the modems operate at full speed. Also note that neither the 'c' option nor the 'd' option is used in the Dial command in extensions.conf. In all of our tests before talking to Mark we had used those options (seemed the obvious thing to do judging from their descriptions). Mark suggested taking them out, we did, it worked. (I don't know if that is the whole difference between what worked and what did not. This was one of those situations where you go in thinking the solution is straight forward, but after 6 or a dozen failed attempts you realize that you are in for a big trial and error session and you have not kept exacting records on the initial failed attempts.) Let me know if that helps. Now, it seems to me that the only reason you would want to do what I did is so that you can route some of the incoming calls somewhere else for another purpose, like a voice call. And somewhere along the line you will run into my problem: echo cancellation. Maybe you can help me out there.> >Also, your diagram looks like you're connecting two * boxes by plugging one >end of a cable into an ethernet jack, and the other into a T400P jack -- is >this correct? I thought TDMoE was strictly ethernet<-->ethernet?I left out some details for the sake of brevity. Both * boxes have 2 ethernet interfaces, one for normal IP and the other dedicated to the TDMoE traffic.> > >Regards, >AndrewGary