[asterisk-bugs] [Asterisk 0010530]: DTMFs passing only in part between two asterisk machines with an IAX2 connection

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Aug 23 10:37:31 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10530 
====================================================================== 
Reported By:                xmarksthespot
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   10530
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 79747 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             08-22-2007 11:30 CDT
Last Modified:              08-23-2007 10:37 CDT
====================================================================== 
Summary:                    DTMFs passing only in part between two asterisk
machines with an IAX2 connection
Description: 
Note: I am unable to pinpoint the exact location of the problem, be it SIP,
IAX or something else. To the best of my knowledge the fault lies with IAX,
but I may be incorrect.

Here are the network setups:
Setup 1: PSTN <-- PRI --> Asterisk1 <-- IAX2 --> MyPBX <-- SIP -->
MyPolycomPhone
Setup 2: PSTN <-- Analog Lines --> OtherPBX <-- SIP --> MyPolycomPhone

The network setup between all these setups is always the same, only a
single switch separates these machines.

When a call is initiated (I usually test with the call being initiated
from MyPolycomPhone out to the PSTN), the passing of the DTMFs becomes very
incomplete, even if seems to depend on the length of the keypresses.

For example, I use MyPolycomPhone and call out to one of my Dialogic
machines. The Dialogic machine answers me and awaits that I enter
something. If I dial very fast, usually a sequence like 1234567890, only a
very small part of the dtmfs actually make it through. The others seem to
be simply missing. It's as if they never made it, or were never pressed, at
least it seems that way to the Asterisk1 machine.

However, the local dtmf detection on MyPBX is flawless, which leads me to
believe it might be some issue with IAX2 instead of SIP. I made an
extensions that uses the Read() command and waits for the user to enter 10
digits. Everytime I tried it, as fast as I could, it worked flawlessly.

On the PSTN, it is totally the opposite. The majority of the DTMFs do not
pass. It usually seems to depend on the length of the keypresses. If the
keypresses are done in a slow, controlled manner they pass. If I use "setup
2", knowing that the OtherPBX is an Asterisk 1.2 machine with analog lines,
the same test, the DTMFs on the PSTN work flawlessly, just like locally on
"setup 1". 

Then I decided to hook up OtherPBX in the same way as MyPBX is hooked,
that is to create setup 3, which would be like so:

Setup 3: PSTN <-- PRI --> Asterisk1 <-- IAX2 --> OtherPBX <-- SIP -->
MyPolycomPhone

This Setup 3 works flawlessly. I haven't submitted any debug of it,
because everything is dandy.

So there's something weird going on when MyPBX (SVN Branch 1.4 rev 79747)
talks DTMFs to Asterisk1 (1.4.6).
====================================================================== 

---------------------------------------------------------------------- 
 xmarksthespot - 08-23-07 10:37  
---------------------------------------------------------------------- 
I haven't added the two other tries, as it's sort of pointless, they both
look the same, replicate (or seem to) all the dtmfs on the Asterisk1
machine. Everything seems okay besides the fact that they are all 0ms.

HOWEVER! I am adding two debug files, that contain channel debug info for
two tries (core set debug channel).

The one called localdtmfdetection.txt shows how the dtmfs are caught by
the system when pressed fast. What I do is call an extensions which just
uses the Read() function and says back the digits pressed. It works
perfectly all the time.

Now the one called dtmfsoveriax.txt is how the system catches the dtmfs
and sends them over IAX to the Asterisk1 machine, which sends it out the
PRI onto the PSTN back on the PRI of a Dialogic machine. What's interesting
is that at the end of the dtmfs, the core set debug channel starts looping
endlessly. It just pastes the same thing over and over. I'll let you be the
judge of what's happening, or if it's normal. To end the infinite loop I
just hang up the channel. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-23-07 10:37  xmarksthespot  Note Added: 0069302                          
======================================================================




More information about the asterisk-bugs mailing list