We just installed a FreePBX distro with a Digium 410P card (without the digium echo cancellation module). The users are experiencing echo on phone system end of things where they can here their own voice. The card seems to indicate the software echo cancellation is “INACTIVE” according to below.
I thought the software echo cancellation built into the digium dahdi drivers with FreePBX would do the trick, but seems like they don’t?
Would someone be able to recommend what we should do? Buy an echo canceller module from Digium, or maybe there is a configuration issue?
Here is how the card is currently setup:
/etc/dahdi/system.conf
# Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 13 14:59:21 2012
# If you edit this file and execute /usr/sbin/dahdi_genconf again,
# your manual changes will be LOST.
# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
fxsks=1
echocanceller=mg2,1
fxsks=2
echocanceller=mg2,2
fxsks=3
echocanceller=mg2,3
fxsks=4
echocanceller=mg2,4
# Global data
loadzone = us
defaultzone = us
/etc/asterisk/chan_dahdi.conf
;
; Zapata telephony interface
;
; Configuration file
[trunkgroups]
[channels]
language=en
context=from-zaptel
signalling=fxs_ks
rxwink=300 ; Atlas seems to use long (250ms) winks
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes
busydetect=yes
busycount=10
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=800
rxgain=0.0
txgain=0.0
group=0
callgroup=1
pickupgroup=1
immediate=no
;faxdetect=both
faxdetect=incoming
;faxdetect=outgoing
;faxdetect=no
#include dahdi-channels.conf
group=1
;Include AMP configs
#include chan_dahdi_additional.conf
/etc/asterisk/dahdi-channels.conf
; Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 13 14:59:21 2012
; If you edit this file and execute /usr/sbin/dahdi_genconf again,
; your manual changes will be LOST.
; Dahdi Channels Configurations (chan_dahdi.conf)
;
; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
; to be #include-d by /etc/chan_dahdi.conf that will include the global settings
;
; Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
;;; line="1 WCTDM/0/0 FXSKS (In use) (EC: MG2 - INACTIVE)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
callerid=
group=
context=default
;;; line="2 WCTDM/0/1 FXSKS (In use) (EC: MG2 - INACTIVE)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 2
callerid=
group=
context=default
;;; line="3 WCTDM/0/2 FXSKS (In use) (EC: MG2 - INACTIVE)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 3
callerid=
group=
context=default
;;; line="4 WCTDM/0/3 FXSKS (In use) (EC: MG2 - INACTIVE)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 4
callerid=
group=
context=default
What version of dadhi are you using ?
Use dahdi_cfg -vv
We need to know if dahdi was compiled with oslec support:
In the file /etc/asterisk/chan_dahdi.conf
comment the line echotraining=800
In the file /etc/dahdi/system.conf
change mg2 by oslec then reboot.
After reboot run dahdi_cfg -vv
you must see that the echo cancellation is oslec. Please print that output and show it to us.
I have switched back to mg2. I think part of our problem was that we missed running the command “dahdi_cfg” which seems to enable the software echo cancellation module?
As the output of dahdi-channels.conf is now:
; Autogenerated by /usr/sbin/dahdi_genconf on Fri Apr 13 21:34:07 2012
; If you edit this file and execute /usr/sbin/dahdi_genconf again,
; your manual changes will be LOST.
; Dahdi Channels Configurations (chan_dahdi.conf)
;
; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
; to be #include-d by /etc/chan_dahdi.conf that will include the global settings
;
; Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
;;; line="1 WCTDM/0/0 FXSKS (In use)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
callerid=
group=
context=default
;;; line="2 WCTDM/0/1 FXSKS (In use)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 2
callerid=
group=
context=default
;;; line="3 WCTDM/0/2 FXSKS (In use)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 3
callerid=
group=
context=default
;;; line="4 WCTDM/0/3 FXSKS (In use)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 4
callerid=
group=
context=default
In /etc/dahdi/system.conf I had to rename all ‘mg2’ entries to ‘MG2’ (case-sensitive).
Restarted dahdi and asterisk.
Everything started working.
Hope this helps!
Hmm… All the statuses show that echo cancellation is off but it is definitely working. Trying to restart the dahdi services now shows “ERROR: Module dahdi_echocan_mg2 is in use” which it has never done before. Also dmesg shows: dahdi_echocan_mg2: Registered echo canceler ‘MG2’
I have installed FreePBX and a Digium TDM410P with 4 FXO modules. No hardware echocan. 4 analog lines.
After inserting echocanceller = oslec,1-4 in System Settings in DAHDI Configuration Module (/etc/dahdi/system.conf) and reboot, I stopped hearing echos in calls.
The quality of the calls are actually pretty good.
Setting echocan for channel 1 to oslec
Setting echocan for channel 2 to oslec
Setting echocan for channel 3 to oslec
Setting echocan for channel 4 to oslec
Interesting that you got it to work. We ended up buying the hardware echo cancellation modules with all phone systems. Haven’t had any echo problems since. (Except for lines going over internet).