[asterisk-bugs] [Asterisk 0012123]: [patch] Sending DTMF when receiving the PROGRESS status

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Apr 30 22:10:12 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12123 
====================================================================== 
Reported By:                VoipForces
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12123
Category:                   Applications/NewFeature
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.18 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             03-03-2008 09:18 CST
Last Modified:              04-30-2008 22:10 CDT
====================================================================== 
Summary:                    [patch] Sending DTMF when receiving the PROGRESS
status
Description: 
Some telco account code services (like Allstream here in Canada) required
that the account code DTMF be send as soon as the PROGRESS status is
received but before the channel is considered "Answered" by Asterisk.

When dialing manually this is not an issue as the user hears the beeeep
and punch in the correct DTMF account code.

However when using call files or AMI to initiate the call, the D() flag in
app_dial does not work as D() only sends the DTMF when the channel is
answered.
====================================================================== 

---------------------------------------------------------------------- 
 VoipForces - 04-30-08 22:10  
---------------------------------------------------------------------- 
Well, unfortunatly sending discrete dtmf digits did not work. Here is the
output with pri debug enabled:

    -- Executing NoOp("Local/s at cwdial-with-telco-code-1-5826,1", "Going to
dial 15146678448 on line 91") in new stack
    -- Executing Dial("Local/s at cwdial-with-telco-code-1-5826,1",
"Zap/91/15146678448|300|D(::1444)G(ek_ekivrtest3_e^s^1)") in new stack
-- Making new call for cr 32771
    -- Requested transfer capability: 0x00 - SPEECH
> Protocol Discriminator: Q.931 (8)  len=61
> Call Ref: len= 2 (reference 3/0x3) (Originator)
> Message type: SETUP (5)
> [04 03 80 90 a2]
> Bearer Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer
capability: Speech (0)
>                              Ext: 1  Trans mode/rate: 64kbps,
circuit-mode (16)
>                              Ext: 1  User information layer 1: u-Law
(34)
> [18 03 a9 83 93]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit, PRI Spare: 0, Exclusive
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0   Number Specified   Channel
Type: 3
>                       Ext: 1  Channel: 19 ]
> [1e 02 80 83]
> Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)
0: 0   Location: User (0)
>                               Ext: 1  Progress Description: Calling
equipment is non-ISDN. (3) ]
> [28 0c b1 31 37 38 30 34 30 38 35 32 31 36]
> Display (len=12) Charset: 31 [ 17804085216 ]
> [6c 0c 21 80 38 30 30 33 38 38 32 38 37 33]
> Calling Number (len=14) [ Ext: 0  TON: National Number (2)  NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1)
>                           Presentation: Presentation permitted, user
number not screened (0) '8003882873' ]
> [70 0c a1 31 35 31 34 36 36 37 38 34 34 38]
> Called Number (len=14) [ Ext: 1  TON: National Number (2)  NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1) '15146678448' ]
    -- Called 91/15146678448
< Protocol Discriminator: Q.931 (8)  len=10
< Call Ref: len= 2 (reference 3/0x3) (Terminator)
< Message type: CALL PROCEEDING (2)
< [18 03 a9 83 93]
< Channel ID (len= 5) [ Ext: 1  IntID: Implicit, PRI Spare: 0, Exclusive
Dchan: 0
<                        ChanSel: Reserved
<                       Ext: 1  Coding: 0   Number Specified   Channel
Type: 3
<                       Ext: 1  Channel: 19 ]
-- Processing IE 24 (cs0, Channel Identification)
    -- Zap/91-1 is proceeding passing it to
Local/s at cwdial-with-telco-code-1-5826,1
< Protocol Discriminator: Q.931 (8)  len=13
< Call Ref: len= 2 (reference 3/0x3) (Terminator)
< Message type: PROGRESS (3)
< [08 02 82 ff]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Public network serving the local user (2)
<                  Ext: 1  Cause: Interworking, unspecified (127), class =
Interworking (7) ]
< [1e 02 82 81]
< Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)
0: 0   Location: Public network serving the local user (2)
<                               Ext: 1  Progress Description: Call is not
end-to-end ISDN; further call progress information may be available inband.
(1) ]
-- Processing IE 8 (cs0, Cause)
-- Processing IE 30 (cs0, Progress Indicator)
    -- PROGRESS with cause code 127 received
    -- Zap/91-1 is making progress passing it to
Local/s at cwdial-with-telco-code-1-5826,1
    -- Zap/91-1 is sending dtmf [1] to
Local/s at cwdial-with-telco-code-1-5826,1
    -- Zap/91-1 is sending dtmf [4] to
Local/s at cwdial-with-telco-code-1-5826,1
    -- Zap/91-1 is sending dtmf [4] to
Local/s at cwdial-with-telco-code-1-5826,1
    -- Zap/91-1 is sending dtmf [4] to
Local/s at cwdial-with-telco-code-1-5826,1
    -- Zap/91-1 answered Local/s at cwdial-with-telco-code-1-5826,1
    -- Executing Answer("Local/s at cwdial-with-telco-code-1-5826,1", "") in
new stack
    -- Executing AMD("Local/s at cwdial-with-telco-code-1-5826,1",
"3500|1500|300|5000|120|50|5|256") in new stack
    -- AMD: Local/s at cwdial-with-telco-code-1-5826,1 8003882873 (null)
(Fmt: 64)
    -- AMD: initialSilence [3500] greeting [1500] afterGreetingSilence
[300] totalAnalysisTime [5000] minimumWordLength [120] betweenWordsSilence
[50] maximumNumberOfWords [5] silenceThreshold [256]
    -- Executing AMD("Zap/91-1", "3500|1500|300|5000|120|50|5|256") in new
stack
    -- AMD: Zap/91-1 8003882873 (null) (Fmt: 64)
    -- AMD: initialSilence [3500] greeting [1500] afterGreetingSilence
[300] totalAnalysisTime [5000] minimumWordLength [120] betweenWordsSilence
[50] maximumNumberOfWords [5] silenceThreshold [256]
< Protocol Discriminator: Q.931 (8)  len=5
< Call Ref: len= 2 (reference 3/0x3) (Terminator)
< Message type: CONNECT (7)
> Protocol Discriminator: Q.931 (8)  len=5
> Call Ref: len= 2 (reference 3/0x3) (Originator)
> Message type: CONNECT ACKNOWLEDGE (15)
    -- AMD: Word detected. iWordsCount:1
    -- AMD: Channel [Zap/91-1]. Too long...
    -- Executing GotoIf("Zap/91-1", "0?machine|1") in new stack
    -- Executing GotoIf("Zap/91-1", "0?talk|1") in new stack
    -- Executing GotoIf("Zap/91-1", "1?uncertain|1") in new stack
    -- Goto (ek_ekivrtest3_e,uncertain,1)
    -- Executing System("Zap/91-1", "/usr/bin/cwASTstocke.sh     
"uncertain"") in new stack
    -- Executing Goto("Zap/91-1", "ek_ekivrtest3_hangup_e|s|1") in new
stack
    -- Goto (ek_ekivrtest3_hangup_e,s,1)
    -- Executing Hangup("Zap/91-1", "") in new stack
  == Spawn extension (ek_ekivrtest3_hangup_e, s, 1) exited non-zero on
'Zap/91-1'
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Active, peerstate Connect
Request
> Protocol Discriminator: Q.931 (8)  len=9
> Call Ref: len= 2 (reference 3/0x3) (Originator)
> Message type: DISCONNECT (69)
> [08 02 81 90]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Normal Clearing (16), class = Normal
Event (1) ]
    -- Hungup 'Zap/91-1'
< Protocol Discriminator: Q.931 (8)  len=5
< Call Ref: len= 2 (reference 3/0x3) (Terminator)
< Message type: RELEASE (77)
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Release
Request
> Protocol Discriminator: Q.931 (8)  len=9
> Call Ref: len= 2 (reference 3/0x3) (Originator)
> Message type: RELEASE COMPLETE (90)
> [08 02 81 90]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Normal Clearing (16), class = Normal
Event (1) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
    -- Executing Hangup("Local/s at cwdial-with-telco-code-1-5826,2", "") in
new stack 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
04-30-08 22:10  VoipForces     Note Added: 0086244                          
======================================================================




More information about the asterisk-bugs mailing list