[asterisk-bugs] [Asterisk 0010290]: dtmf_end_only test failing on sip-iax bridge

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Jul 26 11:24:35 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10290 
====================================================================== 
Reported By:                viraptor
Assigned To:                file
====================================================================== 
Project:                    Asterisk
Issue ID:                   10290
Category:                   Addons/General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.8  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             07-24-2007 10:59 CDT
Last Modified:              07-26-2007 11:24 CDT
====================================================================== 
Summary:                    dtmf_end_only test failing on sip-iax bridge
Description: 
SIP->IAX bridge doesn't send correct DTMF.
Even though _FLAG_DTMF_END_ONLY is set when bridge is set up (checked by
debug), it's lost somewhere on the way.
I'm bridging sip->iax. Sending dtmf from sip fails (only BEGIN is sent,
not END). I've tracked it to channel.c:2390 in *-2.4.8, but can't find any
cause for test failing (END_ONLY not being set):

if ( ast_test_flag(chan, AST_FLAG_DEFER_DTMF | AST_FLAG_END_DTMF_ONLY) ||

    (!ast_tvzero(chan->dtmf_tv) && 
      ast_tvdiff_ms(ast_tvnow(), chan->dtmf_tv) < AST_MIN_DTMF_GAP) ) {

gdb shows, that chan->flags == 512 in that moment.
Any other info needed?
====================================================================== 

---------------------------------------------------------------------- 
 viraptor - 07-26-07 11:24  
---------------------------------------------------------------------- 
debug on receiving end:

    -- Executing [s at menu:3] Read("IAX2/192.168.1.98:59976-1", "digit") in
new stack
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 003 Type: IAX     Subclass:
LAGRQ  
   Timestamp: 10007ms  SCall: 32767  DCall: 00001 [192.168.1.98:59976]
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 003 Type: IAX     Subclass:
LAGRP  
   Timestamp: 10007ms  SCall: 00001  DCall: 32767 [192.168.1.98:59976]
Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 003 Type: IAX     Subclass:
LAGRQ  
   Timestamp: 10018ms  SCall: 00001  DCall: 32767 [192.168.1.98:59976]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX     Subclass: ACK
   
   Timestamp: 10007ms  SCall: 32767  DCall: 00001 [192.168.1.98:59976]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 005 Type: IAX     Subclass:
LAGRP  
   Timestamp: 10018ms  SCall: 32767  DCall: 00001 [192.168.1.98:59976]
Tx-Frame Retry[-01] -- OSeqno: 005 ISeqno: 004 Type: IAX     Subclass: ACK
   
   Timestamp: 10018ms  SCall: 00001  DCall: 32767 [192.168.1.98:59976]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: DTMF_B  Subclass: 2
   Timestamp: 11633ms  SCall: 32767  DCall: 00001 [192.168.1.98:59976]
Tx-Frame Retry[-01] -- OSeqno: 005 ISeqno: 005 Type: IAX     Subclass: ACK
   
   Timestamp: 11633ms  SCall: 00001  DCall: 32767 [192.168.1.98:59976]
Rx-Frame Retry[ No] -- OSeqno: 005 ISeqno: 005 Type: DTMF_B  Subclass: #
   Timestamp: 12756ms  SCall: 32767  DCall: 00001 [192.168.1.98:59976]
Tx-Frame Retry[-01] -- OSeqno: 005 ISeqno: 006 Type: IAX     Subclass: ACK
   
   Timestamp: 12756ms  SCall: 00001  DCall: 32767 [192.168.1.98:59976]
    -- User entered nothing.
    -- Executing [s at menu:4] SayDigits("IAX2/192.168.1.98:59976-1", "") in
new stack
    -- Executing [s at menu:5] GotoIf("IAX2/192.168.1.98:59976-1", "0?2") in
new stack
    -- Executing [s at menu:6] Hangup("IAX2/192.168.1.98:59976-1", "") in new
stack


------>8------

dialplan:

  's' =>            1. Answer()                                  
[pbx_config]
                    2. Datetime()                                
[pbx_config]
                    3. Read(digit)                               
[pbx_config]
                    4. SayDigits(${digit})                       
[pbx_config]
                    5. Gotoif($["${digit}"!=""]?2)               
[pbx_config]
                    6. Hangup()                                  
[pbx_config]

------>8------

traffic goes: ekiga -> [sip-asterisk-iax] -> [iax-asterisk]
ekiga claims to send RFC2833 DTMF sending
debug log on sip->iax translating server shows same iax frames as other
server is getting and doesn't show any special sip packets
configs are default - nothing was changed in sip & iax apart from adding
accounts 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-26-07 11:24  viraptor       Note Added: 0067930                          
======================================================================




More information about the asterisk-bugs mailing list