[Home]

Summary:ASTERISK-02253: [probably not really a bug] IAX2 DTMF not recognized - CVS-HEAD-08/01/04-22:51:56
Reporter:brycenesbitt (brycenesbitt)Labels:
Date Opened:2004-08-21 19:24:10Date Closed:2011-06-07 14:05:28
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have working SIP numbers with broadvoice, and just added a DID from http://connect.voicepulse.com/ .  The calls answer, but DTMF is not recognized. With "iax2 debug" active pressing DTMF does nothing.  Zilch.  Zero.  A friend connected to my via IAX2, and got the same results.

I see the following in the asterisk-users@lists.digium.com archives:

On Fri, 2004-04-09 at 10:12, Robert Jackson wrote:

> Hey all,
>     I am dialing a DID through VoicePulse Connect.  The number is
> answered by a main menu type of IVR.  The configuration is as specified
> in both the wiki and VoicePulses documentation.  The call comes through
> without a problem, but when the caller enter any keys they are either
> not recieved by * or they are ignored.  With SIP I would typically put a
> dtmfmode= line under the peer and everything works great, but I am not
> sure how to attack this.  I found a few items referring to the same
> issue in the list, but I didn't find any answers.  If this is a bug I
> will create a report on the bugtracker, but I would rather make sure
> that I am not just completely dense and not seeing the easy answer.  I'm
> trying to replicate the issue with NuFone.
> CVS from 2004-04-04 stable branch.



> JC wrote on Wed, 28 Jan 2004 19:47:41 -0500
>
> Hello all, I am using voicepulse DID's to receive calls via IAX to and =
> asterisk IVR dial plan I have put together. The problem is after 3-5mins =
> the system cant pickup the DTMF tones I am sending... I have tried =
> different telephones... It just repeats menu options over and over.... I =
> have to call back and then it works again for another few mins...
>
> Any ideas... iax.conf? issue?
>
> Thanks,
> J.C.



> Chris,
> Thank you for contacting VoicePulse. Our engineers are aware of the DTMF problem and are working to have it
> resolved as quickly as possible.
> Please reply directly to this email if we can provide any additional
> assistance.
> Regards, VoicePulse Customer Support



I'm running:
/usr/src/asterisk/asterisk -r
Asterisk CVS-HEAD-08/01/04-22:51:56, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk CVS-HEAD-08/01/04-22:51:56 currently running on skip (pid = 2522)
skip*CLI>






****** ADDITIONAL INFORMATION ******

My /etc/asterisk/extensions.conf does:

exten => _1NXXNXXXXXX,1,Dial,IAX2/XXXXXXXX@voicepulse/${EXTEN}

[voicepulse-incoming]
exten=510740XXXX,1,Ringing
exten=510740XXXX,2,Wait,3
exten=510740XXXX,3,Answer
exten=510740XXXX,4,Agi,/usr/local/mipl/agnese|http://www.XXXX.com/XXXXX.cgi?source=${EXTEN}&callerid=${CALLERIDNUM}
exten=510740XXXX,5,Hangup
Comments:By: Brian West (bkw918) 2004-08-21 19:33:42

sounds like voicepulse needs to update yet again.

By: brycenesbitt (brycenesbitt) 2004-08-21 19:37:54

What was the problem with VoicePulse last time?

By: Mark Spencer (markster) 2004-08-22 10:51:01

IAX2 only sends DTMF out of band, there is no in-band DTMF possible, therefore it is not possible for IAX2 not to be sending DTMF.  If you provide a more detailed description of the problem (for example which direction the DTMF isn't being recognized) we can figure out if (a) this is a voicepulse misconfiguration or (b) this is a SIP configuration issue at your end.

By: brycenesbitt (brycenesbitt) 2004-08-22 21:13:29

This is all inbound.  We dial the voicepulse DID, asterisk answers, DMTF
does not work.  Because "iax2 debug" does not show DTMF events,
we've added a debug to "chan_iax2.c":

static int iax2_queue_frame(int callno, struct ast_frame *f)
{

       if (f->frametype == AST_FRAME_DTMF)
       {
               ast_verbose("Bryce (channels/iax2.c) -- Inbound IAX2 DTMF %c\n",f->subclass);
       }
       /* Assumes lock for callno is already held... */
       for (;;) {
               if (iaxs[callno] && iaxs[callno]->owner) {
                       if (ast_mutex_trylock(&iaxs[callno]->owner->lock)) {
                               /* Avoid deadlock by pausing and trying again */
                               ast_mutex_unlock(&iaxsl[callno]);
                               usleep(1);
                               ast_mutex_lock(&iaxsl[callno]);
                       } else {
                               ast_queue_frame(iaxs[callno]->owner, f);
                               ast_mutex_unlock(&iaxs[callno]->owner->lock);
                               break;
                       }
               } else
                       break;
       }
       return 0;
}

No DTMF shows up this way with VoicePulse.

By: brycenesbitt (brycenesbitt) 2004-08-22 21:18:01

Here are the relevant config files, with everything secret (other than the VoicePulse DID) obscured.  The SIP DID's work.  The IAX2 DID answers but passes no DTMF inbound.

;-----------------------iax.conf
[general]
bandwidth=high                  ; NextBus
disallow=g723.1                 ; Hm...  Proprietary, don't use it...
disallow=lpc10                  ; Icky sound quality...  Mr. Roboto.
allow=ulaw                      ; Suggested by VoicePulse
tos=lowdelay                    ; NextBus?
jitterbuffer=no

register => in-XXXXXXXXX:XXXXXXXX@gw5.voicepulse.com

[voicepulse]
context = voicepulse-incoming
secret=XXXXXXXX
auth=md5
type=friend
host=gw5.voicepulse.com

;------------sip.conf
[general]
context=sip                     ; Default context for incoming calls
dtmfmode=inband                 ; !!! NextBus - out of band would be better, but broadvoice does not want it
port=5060                       ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0                ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls

register => 1112223333:XXXXXX@sip.broadvoice.com/1112223333
register => 111222333:XXXXXX@sip.broadvoice.com/111222333


;-------------extensions.conf
[general]
static=yes
writeprotect=yes

[globals]
CONSOLE=Console/dsp                             ; Console interface for demo
IAXINFO=guest                                   ; IAXtel username/password
TRUNK=Zap/g2                                    ; Trunk interface
TRUNKMSD=1                                      ; MSD digits to strip (usually 1 or 0)

[default]

[voicepulse-incoming]
exten=5107400469,1,Ringing
exten=5107400469,2,Wait,3
exten=5107400469,3,Answer
exten=5107400469,4,Agi,/usr/local/mipl/agnese|http://www.xxxx.xxx/xxx.cgi?source=${EXTEN}&callerid=${CALLERIDNUM}
exten=5107400469,5,Hangup

exten=_XXXXXXXXXX,1,Playback,ss-noservice
exten=_XXXXXXXXXX,2,Congestion

[sip]
exten=111222333,1,Ringing
exten=111222333,2,Wait,3
exten=111222333,3,Answer
exten=111222333,4,Agi,/usr/local/mipl/agnese|http://www.xxxx.xxx/xxx.cgi?source=${EXTEN}&callerid=${CALLERIDNUM}
exten=111222333,5,Hangup

exten=1112223333,1,Ringing
exten=1112223333,2,Wait,3
exten=1112223333,3,Answer
exten=1112223333,4,Agi,/usr/local/mipl/agnese|http://www.xxxx.xxx/xxx.cgi?source=${EXTEN}&callerid=${CALLERIDNUM}
exten=1112223333,5,Hangup

exten=_XXXXXXXXXX,1,Playback,ss-noservice
exten=_XXXXXXXXXX,2,Congestion

By: brycenesbitt (brycenesbitt) 2004-08-22 21:23:44

Reminder sent to markster

Additional info added, as requested.  I've also contacted voicepulse.

By: Mark Spencer (markster) 2004-08-22 22:21:26

If you are not seeing DTMF in the iax2 debug, then you are NOT receiving it from voicepulse, and it's a configuration issue at their end (probably a bad DTMF mode going to a SIP gateway they are using) since in a Zap -> IAX2 arrangement there are no configuration options for DTMF which would be relevant.

Everything at your end looks to be in order.