[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