[asterisk-bugs] [Asterisk 0014374]: Revision 172517 segfault after using A *2 transfer to B and B dial *2

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Feb 5 08:33:09 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=14374 
====================================================================== 
Reported By:                aragon
Assigned To:                putnopvut
====================================================================== 
Project:                    Asterisk
Issue ID:                   14374
Category:                   Applications/app_transfer
Reproducibility:            always
Severity:                   crash
Priority:                   normal
Status:                     ready for testing
Asterisk Version:           1.4.23 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!): 172517 
Request Review:              
====================================================================== 
Date Submitted:             2009-01-30 13:40 CST
Last Modified:              2009-02-05 08:33 CST
====================================================================== 
Summary:                    Revision 172517 segfault after using A *2 transfer
to B and B dial *2
Description: 
SIP environment
Extension 6011 dials 6010
6010 dials *26002 and ends call to complete transfer
6002 answers and dials *2 but does receive audio for transfer prompt
Asterisk segfaults after dialing *2

Backtrace attached
====================================================================== 

---------------------------------------------------------------------- 
 (0099492) aragon (reporter) - 2009-02-05 08:33
 http://bugs.digium.com/view.php?id=14374#c99492 
---------------------------------------------------------------------- 
putnopvut your patch fixes the segfaults related to re-using *2 during
transfers.
I also decided to test all of the other transfer scenarios after
installing both patches from this bug report.

Technically speaking this bug report could be closed because the patch
fixes the reported problem.

However, *1 transfers cannot be re-used in the same scenario as reported
for *2 transfers when I opened the bug report, but with different symptoms.
I reverted your patch to test *1 transfers and SIP blind transfers and
these problems were not introduced as a result of your patch. I reverted
otherwiseguy's patch too and his work did not introduce this issue either.
I tested *1 transfers earlier without these strange results so I can only
assume that this new issue is also related to mixmonitor in the dial plan
when using blind transfers.
I also get the same exact results if I use Polycom blind SIP transfers
instead of *1 transfers. So the new issue is common to *1 and SIP blind
transfers.

I think it might be best to fix the *1 issues on this bug report and I'll
continue to test with your *2 segfault patch and otherwiseguy's patch to
fix the *2 transfer problems. If you would prefer to have me open another
bug report so you can close this one out then that is OK too...

Here is a summary of the *1 transfer problem.

Symptoms:

A>B B*1>C C*1>D does not transfer C to D as expected, instead it transfers
A back to B

6011>6005 6005*1>6010 6010*1>6002 =result 6011 transferred to 6005

CLI

    -- Executing [6005 at default-super:1] GotoIf("SIP/6011-088ce498", "0?3")
in new stack
    -- Executing [6005 at default-super:2] Set("SIP/6011-088ce498",
"GROUP(OUTGOING)=6011") in new stack
    -- Executing [6005 at default-super:3] Set("SIP/6011-088ce498",
"OUTBOUND_GROUP_ONCE=6005 at INCOMING") in new stack
    -- Executing [6005 at default-super:4] Set("SIP/6011-088ce498",
"DB(default/wrapup/6005/lastcall)=1233842796.33") in new stack
    -- Executing [6005 at default-super:5] Macro("SIP/6011-088ce498",
"default-dial|SIP/6005|6005|default|20|en|b6005 at default|tkK||default||Local/0 at default-local/n|vm")
in new stack
    -- Executing [s at macro-default-dial:1] NoOp("SIP/6011-088ce498", ""CALL
TO LOCAL EXTENSION FROM 6011(6011)"") in new stack
    -- Executing [s at macro-default-dial:2] AGI("SIP/6011-088ce498",
"/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
    -- Launched AGI Script
/var/www/scopserv/telephony/scripts/agi/dial.php
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension
'6005' to extension map.
    -- AGI Script Executing Application: (SetMusicOnHold) Options:
(default)
    -- AGI Script Executing Application: (MixMonitor) Options:
(6011:_1233842796.33.WAV|b)
  == Begin MixMonitor Recording SIP/6011-088ce498
  == Parsing '/etc/asterisk/manager.conf': Found
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State
for '6005' is '0'.
    -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php:
-------------------------------------------------------------------------------
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action
dial
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number
is '6011'
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet
default/6005/CallTrace to 6011
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is
SIP/6005|20|tkKT|.
    -- AGI Script Executing Application: (Dial) Options:
(SIP/6005|20|tkKT|)
    -- Called 6005
 Extension Changed 6005[default-local] new state Ringing for Notify User
6000
 Extension Changed 6005[default-local] new state Ringing for Notify User
6002
    -- SIP/6005-088e9c08 is ringing
    -- SIP/6005-088e9c08 answered SIP/6011-088ce498
 Extension Changed 6005[default-local] new state InUse for Notify User
6000
 Extension Changed 6005[default-local] new state InUse for Notify User
6002
    -- Started music on hold, class 'default', on SIP/6011-088ce498
    -- <SIP/6005-088e9c08> Playing 'pbx-transfer' (language 'en')
    -- Stopped music on hold on SIP/6011-088ce498
 Extension Changed 6005[default-local] new state Idle for Notify User
6000
 Extension Changed 6005[default-local] new state Idle for Notify User
6002
    -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
completed, returning 0
  == Channel 'SIP/6011-088ce498' jumping out of macro 'default-dial'
    -- Executing [6010 at default-super:1] GotoIf("SIP/6011-088ce498", "0?3")
in new stack
    -- Executing [6010 at default-super:2] Set("SIP/6011-088ce498",
"GROUP(OUTGOING)=6011") in new stack
    -- Executing [6010 at default-super:3] Set("SIP/6011-088ce498",
"OUTBOUND_GROUP_ONCE=6010 at INCOMING") in new stack
    -- Executing [6010 at default-super:4] Set("SIP/6011-088ce498",
"GROUPCOUNT=0") in new stack
    -- Executing [6010 at default-super:5] Set("SIP/6011-088ce498",
"GROUPCOUNT2=0") in new stack
    -- Executing [6010 at default-super:6] Set("SIP/6011-088ce498",
"DB(default/wrapup/6010/lastcall)=1233842796.33") in new stack
    -- Executing [6010 at default-super:7] Macro("SIP/6011-088ce498",
"default-dial|SIP/6010|6010|default|20|en|b6010 at default|twWkK||default||Local/0 at default-local/n|vm")
in new stack
    -- Executing [s at macro-default-dial:1] NoOp("SIP/6011-088ce498", ""CALL
TO LOCAL EXTENSION FROM 6011(6011)"") in new stack
    -- Executing [s at macro-default-dial:2] AGI("SIP/6011-088ce498",
"/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
    -- Launched AGI Script
/var/www/scopserv/telephony/scripts/agi/dial.php
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension
'6010' to extension map.
    -- AGI Script Executing Application: (SetMusicOnHold) Options:
(default)
    -- AGI Script Executing Application: (MixMonitor) Options:
(6011:_1233842796.33.WAV|b)
  == Begin MixMonitor Recording SIP/6011-088ce498
  == Parsing '/etc/asterisk/manager.conf': Found
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State
for '6010' is '0'.
    -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php:
-------------------------------------------------------------------------------
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action
dial
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number
is '6011'
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet
default/6010/CallTrace to 6011
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is
SIP/6010|20|twWkKT|.
    -- AGI Script Executing Application: (Dial) Options:
(SIP/6010|20|twWkKT|)
    -- Called 6010
 Extension Changed 6010[default-local] new state Ringing for Notify User
6000
 Extension Changed 6010[default-local] new state Ringing for Notify User
6002
    -- SIP/6010-b7d17430 is ringing
    -- SIP/6010-b7d17430 answered SIP/6011-088ce498
 Extension Changed 6010[default-local] new state InUse for Notify User
6000
 Extension Changed 6010[default-local] new state InUse for Notify User
6002
    -- Started music on hold, class 'default', on SIP/6011-088ce498
    -- <SIP/6010-b7d17430> Playing 'pbx-transfer' (language 'en')
    -- Stopped music on hold on SIP/6011-088ce498
 Extension Changed 6010[default-local] new state Idle for Notify User
6000
 Extension Changed 6010[default-local] new state Idle for Notify User
6002
    -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
completed, returning 0
  == Channel 'SIP/6011-088ce498' jumping out of macro 'default-dial'
    -- Executing [6002 at default-hotdesksuper:1] AGI("SIP/6011-088ce498",
"/var/www/scopserv/telephony/scripts/agi/hotdesk.php|default|dial") in new
stack
    -- Launched AGI Script
/var/www/scopserv/telephony/scripts/agi/hotdesk.php
    -- AGI Script Executing Application: (Goto) Options:
(default-super|6005|1)
    -- Goto (default-super,6005,1)
    -- AGI Script /var/www/scopserv/telephony/scripts/agi/hotdesk.php
completed, returning 0
    -- Executing [6005 at default-super:1] GotoIf("SIP/6011-088ce498", "0?3")
in new stack
    -- Executing [6005 at default-super:2] Set("SIP/6011-088ce498",
"GROUP(OUTGOING)=6011") in new stack
    -- Executing [6005 at default-super:3] Set("SIP/6011-088ce498",
"OUTBOUND_GROUP_ONCE=6005 at INCOMING") in new stack
    -- Executing [6005 at default-super:4] Set("SIP/6011-088ce498",
"DB(default/wrapup/6005/lastcall)=1233842796.33") in new stack
    -- Executing [6005 at default-super:5] Macro("SIP/6011-088ce498",
"default-dial|SIP/6005|6005|default|20|en|b6005 at default|tkK||default||Local/0 at default-local/n|vm")
in new stack
    -- Executing [s at macro-default-dial:1] NoOp("SIP/6011-088ce498", ""CALL
TO LOCAL EXTENSION FROM 6011(6011)"") in new stack
    -- Executing [s at macro-default-dial:2] AGI("SIP/6011-088ce498",
"/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
    -- Launched AGI Script
/var/www/scopserv/telephony/scripts/agi/dial.php
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension
'6005' to extension map.
    -- AGI Script Executing Application: (SetMusicOnHold) Options:
(default)
    -- AGI Script Executing Application: (MixMonitor) Options:
(6011:_1233842796.33.WAV|b)
  == Begin MixMonitor Recording SIP/6011-088ce498
  == Parsing '/etc/asterisk/manager.conf': Found
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State
for '6005' is '0'.
    -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php:
-------------------------------------------------------------------------------
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action
dial
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number
is '6011'
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet
default/6005/CallTrace to 6011
  ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is
SIP/6005|20|tkKT|.
    -- AGI Script Executing Application: (Dial) Options:
(SIP/6005|20|tkKT|)
 Extension Changed 6005[default-local] new state Ringing for Notify User
6000
 Extension Changed 6005[default-local] new state Ringing for Notify User
6002
    -- Called 6005
    -- SIP/6005-b7d18a78 is ringing
    -- SIP/6005-b7d18a78 answered SIP/6011-088ce498
 Extension Changed 6005[default-local] new state InUse for Notify User
6000
 Extension Changed 6005[default-local] new state InUse for Notify User
6002
    -- Executing [h at macro-default-dial:1] ResetCDR("SIP/6011-088ce498",
"w") in new stack
    -- Executing [h at macro-default-dial:2] NoCDR("SIP/6011-088ce498", "")
in new stack
    -- Executing [h at macro-default-dial:3] System("SIP/6011-088ce498",
"/var/www/scopserv/telephony/scripts/billing/cdr.sh 1233842796.33") in new
stack
 Extension Changed 6005[default-local] new state Idle for Notify User
6000
 Extension Changed 6005[default-local] new state Idle for Notify User
6002
  == Spawn extension (macro-default-dial, s, 2) exited non-zero on
'SIP/6011-088ce498' in macro 'default-dial'
  == Spawn extension (default-super, 6005, 5) exited non-zero on
'SIP/6011-088ce498'
[Feb  5 09:06:54] NOTICE[16659]: app_mixmonitor.c:138
mixmonitor_ds_destroy: DESTROY!
[Feb  5 09:06:54] NOTICE[16659]: app_mixmonitor.c:138
mixmonitor_ds_destroy: DESTROY!
[Feb  5 09:06:54] NOTICE[16659]: app_mixmonitor.c:138
mixmonitor_ds_destroy: DESTROY!
  == End MixMonitor Recording SIP/6011-088ce498
[Feb  5 09:06:54] NOTICE[16661]: app_mixmonitor.c:254 mixmonitor_thread:
FREE!!!
  == End MixMonitor Recording SIP/6011-088ce498
[Feb  5 09:06:54] NOTICE[16888]: app_mixmonitor.c:254 mixmonitor_thread: 
Extension Changed 6011[default-local] new state Idle for Notify User 6000
FREE!!!>
  == End MixMonitor Recording SIP/6011-088ce498
[Feb  5 09:06:54] NOTICE[16747]: app_mixmonitor.c:254 mixmonitor_thread:
FREE!!!
lab*CLI> 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-02-05 08:33 aragon         Note Added: 0099492                          
======================================================================




More information about the asterisk-bugs mailing list