[asterisk-bugs] [Asterisk 0016548]: [patch][regression] Macro executes "h" extension instead of exiting

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Jan 6 18:05:04 CST 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16548 
====================================================================== 
Reported By:                hajekd
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   16548
Category:                   Core/PBX
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.6.0.20 
JIRA:                       SWP-642 
Regression:                 Yes 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-01-05 15:51 CST
Last Modified:              2010-01-06 18:05 CST
====================================================================== 
Summary:                    [patch][regression] Macro executes "h" extension
instead of exiting
Description: 
Latest version 1.6.0.20 does not correctly hangup calls. We have some
dialplan under extension h which ends with cmd Hangup. Asterisk continue in
dialplan even after calling cmd Hangup. This is not the case with 1.6.0.19
and earlier. This is causing some issues with CDR, etc.

In this example, macro hangupcall is called twice!

- Executing [h at macro-dial:1] Macro("SIP/501-00000003", "hangupcall") in
new stack
    -- Executing [s at macro-hangupcall:1] ResetCDR("SIP/501-00000003", "w")
in new stack
    -- Executing [s at macro-hangupcall:2] NoCDR("SIP/501-00000003", "") in
new stack
    -- Executing [s at macro-hangupcall:3] GotoIf("SIP/501-00000003",
"1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,6)
    -- Executing [s at macro-hangupcall:6] GotoIf("SIP/501-00000003",
"1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s at macro-hangupcall:9] GotoIf("SIP/501-00000003",
"1?theend") in new stack
    -- Goto (macro-hangupcall,s,11)
    -- Executing [s at macro-hangupcall:11] Hangup("SIP/501-00000003", "") in
new stack
  == Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/501-00000003' in macro 'hangupcall'
  == Spawn extension (macro-dial, h, 1) exited non-zero on
'SIP/501-00000003'
  == Spawn extension (macro-dial, s, 8) exited non-zero on
'SIP/501-00000003' in macro 'dial'
  == Spawn extension (macro-exten-vm, s, 9) exited non-zero on
'SIP/501-00000003' in macro 'exten-vm'
  == Spawn extension (from-internal, 502, 1) exited non-zero on
'SIP/501-00000003'
    -- Executing [h at from-internal:1] Macro("SIP/501-00000003",
"hangupcall") in new stack
    -- Executing [s at macro-hangupcall:1] ResetCDR("SIP/501-00000003", "w")
in new stack
    -- Executing [s at macro-hangupcall:2] NoCDR("SIP/501-00000003", "") in
new stack
    -- Executing [s at macro-hangupcall:3] GotoIf("SIP/501-00000003",
"1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,6)
    -- Executing [s at macro-hangupcall:6] GotoIf("SIP/501-00000003",
"1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s at macro-hangupcall:9] GotoIf("SIP/501-00000003",
"1?theend") in new stack
    -- Goto (macro-hangupcall,s,11)
    -- Executing [s at macro-hangupcall:11] Hangup("SIP/501-00000003", "") in
new stack
  == Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/501-00000003' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on
'SIP/501-00000003'
====================================================================== 

---------------------------------------------------------------------- 
 (0116182) hajekd (reporter) - 2010-01-06 18:05
 https://issues.asterisk.org/view.php?id=16548#c116182 
---------------------------------------------------------------------- 
Attached is extensions.conf and extensions_additional.conf

Here is complete console log:

asterisk16*CLI> 
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [104 at from-internal:1] Macro("SIP/105-0000000c",
"exten-vm,104,104") in new stack
    -- Executing [s at macro-exten-vm:1] Macro("SIP/105-0000000c",
"user-callerid") in new stack
    -- Executing [s at macro-user-callerid:1] Set("SIP/105-0000000c",
"AMPUSER=105") in new stack
    -- Executing [s at macro-user-callerid:2] GotoIf("SIP/105-0000000c",
"0?report") in new stack
    -- Executing [s at macro-user-callerid:3] ExecIf("SIP/105-0000000c",
"1?Set(REALCALLERIDNUM=105)") in new stack
    -- Executing [s at macro-user-callerid:4] Set("SIP/105-0000000c",
"AMPUSER=105") in new stack
    -- Executing [s at macro-user-callerid:5] Set("SIP/105-0000000c",
"AMPUSERCIDNAME=testovaci linka") in new stack
    -- Executing [s at macro-user-callerid:6] GotoIf("SIP/105-0000000c",
"0?report") in new stack
    -- Executing [s at macro-user-callerid:7] Set("SIP/105-0000000c",
"AMPUSERCID=105") in new stack
    -- Executing [s at macro-user-callerid:8] Set("SIP/105-0000000c",
"CALLERID(all)="testovaci linka" <105>") in new stack
    -- Executing [s at macro-user-callerid:9] Set("SIP/105-0000000c",
"REALCALLERIDNUM=105") in new stack
    -- Executing [s at macro-user-callerid:10] ExecIf("SIP/105-0000000c",
"0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s at macro-user-callerid:11] GotoIf("SIP/105-0000000c",
"0?continue") in new stack
    -- Executing [s at macro-user-callerid:12] Set("SIP/105-0000000c",
"__TTL=64") in new stack
    -- Executing [s at macro-user-callerid:13] GotoIf("SIP/105-0000000c",
"1?continue") in new stack
    -- Goto (macro-user-callerid,s,20)
    -- Executing [s at macro-user-callerid:20] NoOp("SIP/105-0000000c",
"Using CallerID "testovaci linka" <105>") in new stack
    -- Executing [s at macro-exten-vm:2] Set("SIP/105-0000000c",
"RingGroupMethod=none") in new stack
    -- Executing [s at macro-exten-vm:3] Set("SIP/105-0000000c", "VMBOX=104")
in new stack
    -- Executing [s at macro-exten-vm:4] Set("SIP/105-0000000c",
"EXTTOCALL=104") in new stack
    -- Executing [s at macro-exten-vm:5] Set("SIP/105-0000000c", "CFUEXT=")
in new stack
    -- Executing [s at macro-exten-vm:6] Set("SIP/105-0000000c", "CFBEXT=")
in new stack
    -- Executing [s at macro-exten-vm:7] Set("SIP/105-0000000c", "RT=15") in
new stack
    -- Executing [s at macro-exten-vm:8] Macro("SIP/105-0000000c",
"record-enable,104,IN") in new stack
    -- Executing [s at macro-record-enable:1] GotoIf("SIP/105-0000000c",
"1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s at macro-record-enable:4] AGI("SIP/105-0000000c",
"recordingcheck,20100107-010303,1262822583.12") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
 recordingcheck,20100107-010303,1262822583.12: RAMDISK_PATH =
/mnt/ramdisk/
 recordingcheck,20100107-010303,1262822583.12: MIXMON_DIR = 
/RECORDINGS/2010/01/07/
 recordingcheck,20100107-010303,1262822583.12: Inbound recording not
enabled
    -- <SIP/105-0000000c>AGI Script recordingcheck completed, returning 0
    -- Executing [s at macro-record-enable:5] MacroExit("SIP/105-0000000c",
"") in new stack
    -- Executing [s at macro-exten-vm:9] Macro("SIP/105-0000000c",
"dial,15,tr,104") in new stack
    -- Executing [s at macro-dial:1] AGI("SIP/105-0000000c",
"CUSTOM_EXTEN_ACCESS_16.php") in new stack
    -- Launched AGI Script
/var/lib/asterisk/agi-bin/CUSTOM_EXTEN_ACCESS_16.php
 CUSTOM_EXTEN_ACCESS_16.php: CONTEXT = macro-dial
 CUSTOM_EXTEN_ACCESS_16.php: CDR(src) = 105
 CUSTOM_EXTEN_ACCESS_16.php: CDR(dst) = 104
 CUSTOM_EXTEN_ACCESS_16.php: NODEST = 
 CUSTOM_EXTEN_ACCESS_16.php: AMPUSER = 105
 CUSTOM_EXTEN_ACCESS_16.php: EXTEN = s
 CUSTOM_EXTEN_ACCESS_16.php: RingGroupMethod = none
 CUSTOM_EXTEN_ACCESS_16.php: RINGGROUP_INDEX = 
 CUSTOM_EXTEN_ACCESS_16.php: KEEPCID = 
 CUSTOM_EXTEN_ACCESS_16.php: USE_CONFIRMATION = 
 CUSTOM_EXTEN_ACCESS_16.php: CDR(dcontext) = from-internal
 CUSTOM_EXTEN_ACCESS_16.php: CDR(channel) = SIP/105-0000000c
 CUSTOM_EXTEN_ACCESS_16.php: REALCALLERIDNUM = 105
 CUSTOM_EXTEN_ACCESS_16.php: DBget_CALLTRACE = 
 CUSTOM_EXTEN_ACCESS_16.php: CALLBACK_NUMBER = 
 CUSTOM_EXTEN_ACCESS_16.php: CUSTOM_ACCESS = 
 CUSTOM_EXTEN_ACCESS_16.php: FMGRP = 
 CUSTOM_EXTEN_ACCESS_16.php: RRNODEST = 
 CUSTOM_EXTEN_ACCESS_16.php: CUSTOM_EXTEN_ACCESS_NODEST = 
 CUSTOM_EXTEN_ACCESS_16.php: FROM_DID = 
 CUSTOM_EXTEN_ACCESS_16.php:      Overit prava odchoziho volani z interni
linky 105 na cislo 104    (105=>104)
 CUSTOM_EXTEN_ACCESS_16.php: 104, 1
 CUSTOM_EXTEN_ACCESS_16.php: Povoleno
    -- <SIP/105-0000000c>AGI Script CUSTOM_EXTEN_ACCESS_16.php completed,
returning 0
    -- Executing [s at macro-dial:2] GotoIf("SIP/105-0000000c", "1?dial") in
new stack
    -- Goto (macro-dial,s,4)
    -- Executing [s at macro-dial:4] AGI("SIP/105-0000000c",
"dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
 dialparties.agi: Starting New Dialparties.agi
  == Manager 'admin' logged on from 127.0.0.1
 dialparties.agi: Caller ID name is 'testovaci linka' number is '105'
       > dialparties.agi: USE_CONFIRMATION:  'FALSE'
       > dialparties.agi: RINGGROUP_INDEX:   ''
 dialparties.agi: Methodology of ring is  'none'
    -- dialparties.agi: Added extension 104 to extension map
    -- dialparties.agi: Extension 104 cf is disabled
    -- dialparties.agi: Extension 104 do not disturb is disabled
      > dialparties.agi: extnum 104 has:  cw: 0; hascfb: 0 [] hascfu: 0
[]
       > dialparties.agi: ExtensionState: 0
 dialparties.agi: Extension 104 has ExtensionState: 0
    -- dialparties.agi: Checking CW and CFB status for extension 104
    -- dialparties.agi: dbset CALLTRACE/104 to 105
    -- dialparties.agi: Filtered ARG3: 104
  == Manager 'admin' logged off from 127.0.0.1
    -- <SIP/105-0000000c>AGI Script dialparties.agi completed, returning
0
    -- Executing [s at macro-dial:8] Dial("SIP/105-0000000c",
"SIP/104,15,tr") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called 104
    -- SIP/104-0000000d is ringing
    -- SIP/104-0000000d answered SIP/105-0000000c
    -- Executing [h at macro-dial:1] Macro("SIP/105-0000000c", "hangupcall")
in new stack
    -- Executing [s at macro-hangupcall:1] ResetCDR("SIP/105-0000000c", "w")
in new stack
    -- Executing [s at macro-hangupcall:2] NoCDR("SIP/105-0000000c", "") in
new stack
    -- Executing [s at macro-hangupcall:3] GotoIf("SIP/105-0000000c",
"1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,6)
    -- Executing [s at macro-hangupcall:6] GotoIf("SIP/105-0000000c",
"1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s at macro-hangupcall:9] GotoIf("SIP/105-0000000c",
"1?theend") in new stack
    -- Goto (macro-hangupcall,s,11)
    -- Executing [s at macro-hangupcall:11] Hangup("SIP/105-0000000c", "") in
new stack
  == Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/105-0000000c' in macro 'hangupcall'
  == Spawn extension (macro-dial, h, 1) exited non-zero on
'SIP/105-0000000c'
  == Spawn extension (macro-dial, s, 8) exited non-zero on
'SIP/105-0000000c' in macro 'dial'
  == Spawn extension (macro-exten-vm, s, 9) exited non-zero on
'SIP/105-0000000c' in macro 'exten-vm'
  == Spawn extension (from-internal, 104, 1) exited non-zero on
'SIP/105-0000000c'
    -- Executing [h at from-internal:1] Macro("SIP/105-0000000c",
"hangupcall") in new stack
    -- Executing [s at macro-hangupcall:1] ResetCDR("SIP/105-0000000c", "w")
in new stack
    -- Executing [s at macro-hangupcall:2] NoCDR("SIP/105-0000000c", "") in
new stack
    -- Executing [s at macro-hangupcall:3] GotoIf("SIP/105-0000000c",
"1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,6)
    -- Executing [s at macro-hangupcall:6] GotoIf("SIP/105-0000000c",
"1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s at macro-hangupcall:9] GotoIf("SIP/105-0000000c",
"1?theend") in new stack
    -- Goto (macro-hangupcall,s,11)
-- Executing [s at macro-hangupcall:11] Hangup("SIP/105-0000000c", "") in new
stack
  == Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/105-0000000c' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on
'SIP/105-0000000c' 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-01-06 18:05 hajekd         Note Added: 0116182                          
======================================================================




More information about the asterisk-bugs mailing list