[asterisk-users] 9 becomes 99 ? And other strangeness
Brian Candler
B.Candler at pobox.com
Fri Sep 15 01:20:04 MST 2006
On Thu, Sep 14, 2006 at 10:37:59AM -0500, Rich Adamson wrote:
> Try the above an see what the result is. If it does not address the
> problem, at least one item has been removed from the list of
> possibilities. ;)
OK, I can now replicate this without using outbound dialing at all, with a
tiny dialplan (attached). I've turned on dtmf logging in logger.conf, and
it's definitely a DTMF problem.
What happens if I dial "611": around 30% of the time it says "I'm sorry,
that is not a valid extension", thinking I've dialled 6611. The rest of the
time it works, and I get "Hello, world!"
Here's what I see on the console when it fails:
-- Starting simple switch on 'Zap/1-1'
[Sep 15 09:48:00] DTMF[5744]: channel.c:2065 __ast_read: DTMF end '6' received on Zap/1-1
[Sep 15 09:48:00] DTMF[5744]: channel.c:2065 __ast_read: DTMF end '6' received on Zap/1-1
[Sep 15 09:48:01] DTMF[5744]: channel.c:2065 __ast_read: DTMF end '1' received on Zap/1-1
[Sep 15 09:48:01] DTMF[5744]: channel.c:2065 __ast_read: DTMF end '1' received on Zap/1-1
-- Executing [6611 at internal:1] Answer("Zap/1-1", "") in new stack
-- Executing [6611 at internal:2] Playback("Zap/1-1", "pbx-invalid") in new stack
-- Playing 'pbx-invalid' (language 'en')
-- Executing [6611 at internal:3] Goto("Zap/1-1", "s|1") in new stack
-- Goto (internal,s,1)
[Sep 15 09:48:08] WARNING[5744]: pbx.c:2322 __ast_pbx_run: Channel 'Zap/1-1' sent into invalid extension 's' in context 'internal', but no invalid handler
-- Hungup 'Zap/1-1'
So my single "6" is read as "66".
Searching the web, the only tweak I can see is to set relaxdtmf=yes in
zapata.conf for each channel. I've now tried that, and if anything, it made
it worse: I got a failure rate of about 50%, and in one case 66611 instead
of 611.
So I'm a bit stuck as to what to do now. My /etc/asterisk/zapata.conf and
/etc/zaptel.conf are also attached for reference.
The only things I can think of:
(1) line level needs tweaking? Is there a way to measure the incoming level
when I dial DTMF, to see if it's too low or is clipping?
(2) I get the following error when first loading the wctdm driver, and I
don't know if it's a problem
-------------------------------------------------------------------------
[root at asterisk1 asterisk]# modprobe zaptel
[root at asterisk1 asterisk]# modprobe wctdm
Notice: Configuration file is /etc/zaptel.conf
line 0: Unable to open master device '/dev/zap/ctl'
1 error(s) detected
FATAL: Error running install command for wctdm
-------------------------------------------------------------------------
However it seems to work on second attempt:
-------------------------------------------------------------------------
[root at asterisk1 asterisk]# modprobe wctdm
[root at asterisk1 asterisk]# ztcfg -vv
Zaptel Version: SVN-trunk-r1459
Echo Canceller: MG2
Configuration
======================
Channel map:
Channel 01: FXO Kewlstart (Default) (Slaves: 01)
Channel 02: FXO Kewlstart (Default) (Slaves: 02)
Channel 04: FXS Kewlstart (Default) (Slaves: 04)
3 channels configured.
Changing signalling on channel 1 from Unused to FXO Kewlstart
Changing signalling on channel 2 from Unused to FXO Kewlstart
Changing signalling on channel 4 from Unused to FXS Kewlstart
-------------------------------------------------------------------------
Looking at postings on the Asterisk list, it seems that under CentOS I
should just run '/etc/rc.d/init.d/asterisk start' and it will load the
modules automatically - but that doesn't work for me.
That is: if I stop asterisk, rmmod the manuals by hand, and then do:
[root at asterisk1 asterisk]# /etc/rc.d/init.d/asterisk start
Starting asterisk: [ OK ]
[root at asterisk1 asterisk]# lsmod | grep -i zap
[root at asterisk1 asterisk]# lsmod | grep -i wct
you can see that they've not been loaded.
My /etc/asterisk/modules.conf is the stock standard one and has autoload=yes
(although I guess that refers to asterisk modules, not kernel modules)
Is there any more debugging I can turn on to find out what might be
happening?
Regards,
Brian.
-------------- next part --------------
[internal]
exten => 611,1,Answer()
exten => 611,2,Playback(hello-world)
exten => 611,3,Hangup()
exten => _X.,1,Answer()
exten => _X.,2,Playback(pbx-invalid)
exten => _X.,3,Goto(s,1)
-------------- next part --------------
[trunkgroups]
; define any trunk groups
[channels]
;default
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
immediate=no
answeronpolarityswitch=no
; define channels
context=internal
signalling=fxo_ks
channel => 1
context=internal
signalling=fxo_ks
channel => 2
context=incoming
signalling=fxs_ks ; Use FXS signalling for an FXO channel
channel => 4
-------------- next part --------------
# Ports 1 and 2 are FXS (FXO signalling)
fxoks=1-2
# Port 4 is FXO (FXS signalling)
fxsks=4
loadzone=uk
defaultzone=uk
More information about the asterisk-users
mailing list