W. Kevin Hunt
2004-Jul-16 09:43 UTC
[Asterisk-Users] Echo problem update - POSSIBLE SOLUTION
After speaking with several people, and even participating in a forum of several other people with echo issues, I thought I'd share what we've done (well actually what our chief R&D engineer, Brett Bourn has done...) First let me say that normal cheapy PC hardware couldn't be made to function with out echo. We tried on both the single port Digium T1 card and the 4 port Digium T1 card. Even on a SuperMicro Dual PIII-933 w/ hardware scsi raid we had echo issues. We moved everything to a Compaq DL380 dual PIII-833MHz (notice a slower machine) w/ hardware scsi raid. Same T1 cards, same compile method, and NO echo on the DL... We did manage to get the echo to almost un-noticable on the Supermicro, but it was still there. There is NO echo on the DL380 We are currently testing the Compaq 6400R for compatability and will let the list know how it goes. When we install asterisk we DO modify the makefile for the zaptel source to look like this... (you'll add 2 lines, the Mark2 and Aggressive_suppressor) KFLAGS+=-DSTANDALONE_ZAPATA KFLAGS+=-DECHO_CAN_MARK2 KFLAGS+=-DAGGRESSIVE_SUPPRESSOR CFLAGS+=-DSTANDALONE_ZAPATA *** info. about our current setup *** running -- Asterisk CVS-HEAD-07/15/04-01:47:37 currently running on asterisk (pid = 1203) /etc/zaptel.conf # # Zaptel Configuration File # # This file is parsed by the Zaptel Configurator, ztcfg # # # First come the span definitions, in the format # span=<span num>,<timing>,<line build out (LBO)>,<framing>,<coding>[,yellow] # # The timing parameter determines the selection of primary, secondary, and # so on sync sources. If this span should be considered a primary sync # source, then give it a value of "1". For a secondary, use "2", and so on. # To not use this as a sync source, just use "0" # # The line build-out (or LBO) is an integer, from the following table: # 0: 0 db (CSU) / 0-133 feet (DSX-1) # 1: 133-266 feet (DSX-1) # 2: 266-399 feet (DSX-1) # 3: 399-533 feet (DSX-1) # 4: 533-655 feet (DSX-1) # 5: -7.5db (CSU) # 6: -15db (CSU) # 7: -22.5db (CSU) # # The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1 # # Note: "d4" could be referred to as "sf" or "superframe" # # The coding is one of "ami" or "b8zs" for T1 or "ami" or "hdb3" for E1 # # E1's may have the additional keyword "crc4" to enable CRC4 checking # # If the keyword "yellow" follows, yellow alarm is transmitted when no # channels are open. # #span=1,0,0,esf,b8zs #span=2,1,0,esf,b8zs #span=3,0,0,ccs,hdb3,crc4 # # Next come the dynamic span definitions, in the form: # dynamic=<driver>,<address>,<numchans>,<timing> # # Where <driver> is the name of the driver (e.g. eth), <address> is the # driver specific address (like a MAC for eth), <numchans> is the number # of channels, and <timing> is a timing priority, like for a normal span. # use "0" to not use this as a timing source, or prioritize them as # primary, secondard, etc. Note that you MUST have a REAL zaptel device # if you are not using external timing. # # dynamic=eth,eth0/00:02:b3:35:43:9c,24,0 # # Next come the definitions for using the channels. The format is: # <device>=<channel list> # # Valid devices are: # # "e&m" : Channel(s) are signalled using E&M signalling (specific # implementation, such as Immediate, Wink, or Feature Group D # are handled by the userspace library). # "fxsls" : Channel(s) are signalled using FXS Loopstart protocol. # "fxsgs" : Channel(s) are signalled using FXS Groundstart protocol. # "fxsks" : Channel(s) are signalled using FXS Koolstart protocol. # "fxols" : Channel(s) are signalled using FXO Loopstart protocol. # "fxogs" : Channel(s) are signalled using FXO Groundstart protocol. # "fxoks" : Channel(s) are signalled using FXO Koolstart protocol. # "sf" : Channel(s) are signalled using in-band single freq tone. # Syntax as follows: # channel# => sf:<rxfreq>,<rxbw>,<rxflag>,<txfreq>,<txlevel>,<txflag> # rxfreq is rx tone freq in hz, rxbw is rx notch (and decode) # bandwith in hz (typically 10.0), rxflag is either 'normal' or # 'inverted', txfreq is tx tone freq in hz, txlevel is tx tone # level in dbm, txflag is either 'normal' or 'inverted'. Set # rxfreq or txfreq to 0.0 if that tone is not desired. # "unused" : No signalling is performed, each channel in the list remains idle # "clear" : Channel(s) are bundled into a single span. No conversion or # signalling is performed, and raw data is available on the master. # "indclear": Like "clear" except all channels are treated individually and # are not bundled. "bchan" is an alias for this. # "rawhdlc" : The zaptel driver performs HDLC encoding and decoding on the # bundle, and the resulting data is communicated via the master # device. # "fcshdlc" : The zapdel driver performs HDLC encoding and decoding on the # bundle and also performs incoming and outgoing FCS insertion # and verification. "dchan" is an alias for this. # "nethdlc" : The zaptel driver bundles the channels together into an # hdlc network device, which in turn can be configured with # sethdlc (available separately). # "dacs" : The zaptel driver cross connects the channels starting at # the channel number listed at the end, after a colon # "dacsrbs" : The zaptel driver cross connects the channels starting at # the channel number listed at the end, after a colon and # also performs the DACSing of RBS bits # # The channel list is a comma-separated list of channels or ranges, for # example: # # 1,3,5 (channels one, three, and five) # 16-23, 29 (channels 16 through 23, as well as channel 29 # # So, some complete examples are: # e&m=1-12 # nethdlc=13-24 # fxsls=25,26,27,28 # fxols=29-32 # #fxoks=1-24 #bchan=25-47 #dchan=48 #fxols=1-12 #fxols=13-24 #e&m=25-29 #nethdlc=30-33 #clear=44 #clear=45 #clear=46 #clear=47 #fcshdlc=48 #dacs=1-24:48 #dacsrbs=1-24:48 # # Finally, you can preload some tone zones, to prevent them from getting # overwritten by other users (if you allow non-root users to open /dev/zap/* # interfaces anyway. Also this means they won't have to be loaded at runtime. # The format is "loadzone=<zone>" where the zone is a two letter country code. # # You may also specify a default zone with "defaultzone=<zone>" where zone # is a two letter country code. # span=1,1,0,esf,b8zs bchan=1-23 dchan=24 fxoks=97-100 loadzone = us defaultzone=us #loadzone = us #loadzone = us-old #loadzone=gr #loadzone=it #loadzone=fr #loadzone=de #loadzone=uk #loadzone=fi #loadzone=jp #loadzone=sp #loadzone=no #defaultzone=us [root@asterisk etc]# cd asterisk/ /etc/asterisk/zapata.conf [root@asterisk asterisk]# cat zapata.conf [channels] group = 2 switchtype = ni1 signalling = pri_cpe rxgain=-2.0 txgain=-9.0 usecallerid=yes callerid=asreceived musiconhold=default context=default echocancel=yes echotraining=yes echocancelwhenbridged=yes jitterbuffers=5 channel => 1-23 group = 1 language=en signalling=fxo_ks musiconhold=default echocancel=yes echotraining=yes echocancelwhenbridged=yes jitterbuffers=5 context=default channel => 97-100 W. Kevin Hunt CCIE #11841 MCSE, Linux+ SME www.huntbrothers.com
Joshua McClintock
2004-Jul-16 10:35 UTC
[Asterisk-Users] Echo problem update - POSSIBLE SOLUTION
We're using the "Supermicro X5DPE-G2" in both of our asterisk boxes. They have 3 (I think) PCI-X (133mhz) 64 bit slots. We're only using 2 of them (slots) and their not sharing IRQs. We have one pstn gateway that talks to the pri and the channel bank. The other machine is the pbx (and vm) where all the sip phones register and we just do IAX trunking between them. Both are dual xeon 2.8ghz machines. We have no echo with our sip to sip calls and the meetme rooms seem ok as well (even when outside people dial in). We do have 1 wcfxo and 2 t1 cards in the pbx box, asterisk seems to latch onto the wcfxo card and use it for timing (one little note, I've found that in our setup, the playback ability dissappears if you load the t1 card modules before the wcfxo one. Once I started loading the wcfxo first, the sound came back). We're running CVS HEAD 6/24/04 on linux 2.4.26. We haven't had users complain about echo in this environment. But as I said in a previous post, if you have users with cyborg ears or users that intentionally listen for echo all the time, you can probally hear some. ----- Original Message ----- From: "W. Kevin Hunt" <Kevin@hbcorporate.com> To: <asterisk-users@lists.digium.com> Sent: Friday, July 16, 2004 9:43 AM Subject: [Asterisk-Users] Echo problem update - POSSIBLE SOLUTION After speaking with several people, and even participating in a forum of several other people with echo issues, I thought I'd share what we've done (well actually what our chief R&D engineer, Brett Bourn has done...) First let me say that normal cheapy PC hardware couldn't be made to function with out echo. We tried on both the single port Digium T1 card and the 4 port Digium T1 card. Even on a SuperMicro Dual PIII-933 w/ hardware scsi raid we had echo issues. We moved everything to a Compaq DL380 dual PIII-833MHz (notice a slower machine) w/ hardware scsi raid. Same T1 cards, same compile method, and NO echo on the DL... We did manage to get the echo to almost un-noticable on the Supermicro, but it was still there. There is NO echo on the DL380 We are currently testing the Compaq 6400R for compatability and will let the list know how it goes. When we install asterisk we DO modify the makefile for the zaptel source to look like this... (you'll add 2 lines, the Mark2 and Aggressive_suppressor) KFLAGS+=-DSTANDALONE_ZAPATA KFLAGS+=-DECHO_CAN_MARK2 KFLAGS+=-DAGGRESSIVE_SUPPRESSOR CFLAGS+=-DSTANDALONE_ZAPATA *** info. about our current setup *** running -- Asterisk CVS-HEAD-07/15/04-01:47:37 currently running on asterisk (pid = 1203) /etc/zaptel.conf # # Zaptel Configuration File # # This file is parsed by the Zaptel Configurator, ztcfg # # # First come the span definitions, in the format # span=<span num>,<timing>,<line build out (LBO)>,<framing>,<coding>[,yellow] # # The timing parameter determines the selection of primary, secondary, and # so on sync sources. If this span should be considered a primary sync # source, then give it a value of "1". For a secondary, use "2", and so on. # To not use this as a sync source, just use "0" # # The line build-out (or LBO) is an integer, from the following table: # 0: 0 db (CSU) / 0-133 feet (DSX-1) # 1: 133-266 feet (DSX-1) # 2: 266-399 feet (DSX-1) # 3: 399-533 feet (DSX-1) # 4: 533-655 feet (DSX-1) # 5: -7.5db (CSU) # 6: -15db (CSU) # 7: -22.5db (CSU) # # The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1 # # Note: "d4" could be referred to as "sf" or "superframe" # # The coding is one of "ami" or "b8zs" for T1 or "ami" or "hdb3" for E1 # # E1's may have the additional keyword "crc4" to enable CRC4 checking # # If the keyword "yellow" follows, yellow alarm is transmitted when no # channels are open. # #span=1,0,0,esf,b8zs #span=2,1,0,esf,b8zs #span=3,0,0,ccs,hdb3,crc4 # # Next come the dynamic span definitions, in the form: # dynamic=<driver>,<address>,<numchans>,<timing> # # Where <driver> is the name of the driver (e.g. eth), <address> is the # driver specific address (like a MAC for eth), <numchans> is the number # of channels, and <timing> is a timing priority, like for a normal span. # use "0" to not use this as a timing source, or prioritize them as # primary, secondard, etc. Note that you MUST have a REAL zaptel device # if you are not using external timing. # # dynamic=eth,eth0/00:02:b3:35:43:9c,24,0 # # Next come the definitions for using the channels. The format is: # <device>=<channel list> # # Valid devices are: # # "e&m" : Channel(s) are signalled using E&M signalling (specific # implementation, such as Immediate, Wink, or Feature Group D # are handled by the userspace library). # "fxsls" : Channel(s) are signalled using FXS Loopstart protocol. # "fxsgs" : Channel(s) are signalled using FXS Groundstart protocol. # "fxsks" : Channel(s) are signalled using FXS Koolstart protocol. # "fxols" : Channel(s) are signalled using FXO Loopstart protocol. # "fxogs" : Channel(s) are signalled using FXO Groundstart protocol. # "fxoks" : Channel(s) are signalled using FXO Koolstart protocol. # "sf" : Channel(s) are signalled using in-band single freq tone. # Syntax as follows: # channel# => sf:<rxfreq>,<rxbw>,<rxflag>,<txfreq>,<txlevel>,<txflag> # rxfreq is rx tone freq in hz, rxbw is rx notch (and decode) # bandwith in hz (typically 10.0), rxflag is either 'normal' or # 'inverted', txfreq is tx tone freq in hz, txlevel is tx tone # level in dbm, txflag is either 'normal' or 'inverted'. Set # rxfreq or txfreq to 0.0 if that tone is not desired. # "unused" : No signalling is performed, each channel in the list remains idle # "clear" : Channel(s) are bundled into a single span. No conversion or # signalling is performed, and raw data is available on the master. # "indclear": Like "clear" except all channels are treated individually and # are not bundled. "bchan" is an alias for this. # "rawhdlc" : The zaptel driver performs HDLC encoding and decoding on the # bundle, and the resulting data is communicated via the master # device. # "fcshdlc" : The zapdel driver performs HDLC encoding and decoding on the # bundle and also performs incoming and outgoing FCS insertion # and verification. "dchan" is an alias for this. # "nethdlc" : The zaptel driver bundles the channels together into an # hdlc network device, which in turn can be configured with # sethdlc (available separately). # "dacs" : The zaptel driver cross connects the channels starting at # the channel number listed at the end, after a colon # "dacsrbs" : The zaptel driver cross connects the channels starting at # the channel number listed at the end, after a colon and # also performs the DACSing of RBS bits # # The channel list is a comma-separated list of channels or ranges, for # example: # # 1,3,5 (channels one, three, and five) # 16-23, 29 (channels 16 through 23, as well as channel 29 # # So, some complete examples are: # e&m=1-12 # nethdlc=13-24 # fxsls=25,26,27,28 # fxols=29-32 # #fxoks=1-24 #bchan=25-47 #dchan=48 #fxols=1-12 #fxols=13-24 #e&m=25-29 #nethdlc=30-33 #clear=44 #clear=45 #clear=46 #clear=47 #fcshdlc=48 #dacs=1-24:48 #dacsrbs=1-24:48 # # Finally, you can preload some tone zones, to prevent them from getting # overwritten by other users (if you allow non-root users to open /dev/zap/* # interfaces anyway. Also this means they won't have to be loaded at runtime. # The format is "loadzone=<zone>" where the zone is a two letter country code. # # You may also specify a default zone with "defaultzone=<zone>" where zone # is a two letter country code. # span=1,1,0,esf,b8zs bchan=1-23 dchan=24 fxoks=97-100 loadzone = us defaultzone=us #loadzone = us #loadzone = us-old #loadzone=gr #loadzone=it #loadzone=fr #loadzone=de #loadzone=uk #loadzone=fi #loadzone=jp #loadzone=sp #loadzone=no #defaultzone=us [root@asterisk etc]# cd asterisk/ /etc/asterisk/zapata.conf [root@asterisk asterisk]# cat zapata.conf [channels] group = 2 switchtype = ni1 signalling = pri_cpe rxgain=-2.0 txgain=-9.0 usecallerid=yes callerid=asreceived musiconhold=default context=default echocancel=yes echotraining=yes echocancelwhenbridged=yes jitterbuffers=5 channel => 1-23 group = 1 language=en signalling=fxo_ks musiconhold=default echocancel=yes echotraining=yes echocancelwhenbridged=yes jitterbuffers=5 context=default channel => 97-100 W. Kevin Hunt CCIE #11841 MCSE, Linux+ SME www.huntbrothers.com _______________________________________________ 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
Andrew Kohlsmith
2004-Jul-16 10:47 UTC
[Asterisk-Users] Echo problem update - POSSIBLE SOLUTION
On Friday 16 July 2004 12:43, W. Kevin Hunt wrote:> First let me say that normal cheapy PC hardware couldn't be made to > function with out echo. We tried on both the single port Digium T1 card > and the 4 port Digium T1 card. Even on a SuperMicro Dual PIII-933 w/ > hardware scsi raid we had echo issues. We moved everything to a Compaq > DL380 dual PIII-833MHz (notice a slower machine) w/ hardware scsi raid. > Same T1 cards, same compile method, and NO echo on the DL... We did > manage to get the echo to almost un-noticable on the Supermicro, but it > was still there. There is NO echo on the DL380 We are currently > testing the Compaq 6400R for compatability and will let the list know > how it goes.We have a T100P and a TE405P on Supermicro dual Xeon 2.8, SCSI backplane, *server* systems... we get some echo on some calls out to the Bell Canada PRI, and some on calls through nufone. It's definitely destination related for us. The T100P connects to an Adit600 FXS channel bank which goes to our Meridian MICS -- Eventually I'll be replacing the channel bank and POTS trunk lines on the MICS with a proper PRI card. Regards, Andrew
Rich Adamson
2004-Jul-16 11:07 UTC
[Asterisk-Users] Echo problem update - POSSIBLE SOLUTION
> After speaking with several people, and even participating in a forum of > several other people with echo issues, I thought I'd share what we've > done (well actually what our chief R&D engineer, Brett Bourn has > done...) > > First let me say that normal cheapy PC hardware couldn't be made to > function with out echo. We tried on both the single port Digium T1 card > and the 4 port Digium T1 card. Even on a SuperMicro Dual PIII-933 w/ > hardware scsi raid we had echo issues. We moved everything to a Compaq > DL380 dual PIII-833MHz (notice a slower machine) w/ hardware scsi raid. > Same T1 cards, same compile method, and NO echo on the DL... We did > manage to get the echo to almost un-noticable on the Supermicro, but it > was still there. There is NO echo on the DL380 We are currently > testing the Compaq 6400R for compatability and will let the list know > how it goes. > > When we install asterisk we DO modify the makefile for the zaptel > source to look like this... (you'll add 2 lines, the Mark2 and > Aggressive_suppressor) > > KFLAGS+=-DSTANDALONE_ZAPATA > KFLAGS+=-DECHO_CAN_MARK2 > KFLAGS+=-DAGGRESSIVE_SUPPRESSOR > CFLAGS+=-DSTANDALONE_ZAPATA > > *** info. about our current setup *** > > running -- Asterisk CVS-HEAD-07/15/04-01:47:37 currently running on > asterisk (pid = 1203)No echo on eMachine T2240 2.2ghz Celery, 360m RAM, with either tdm04b or x100p running any Head cvs after June 23rd (totally stock install). Wouldn't necessarily recommend this box for any commercial production use, but... What's common and not so common between these _very_ diverse boxes?