[asterisk-bugs] [Asterisk 0017117]: ChannelRedirect() fails to redirect

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Apr 15 10:20:00 CDT 2010


The following issue has been UPDATED. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17117 
====================================================================== 
Reported By:                brycv
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17117
Category:                   Applications/app_channelredirect
Reproducibility:            sometimes
Severity:                   major
Priority:                   normal
Status:                     closed
Asterisk Version:           1.6.2.6 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
Resolution:                 no change required
Fixed in Version:           
====================================================================== 
Date Submitted:             2010-03-30 08:19 CDT
Last Modified:              2010-04-15 10:20 CDT
====================================================================== 
Summary:                    ChannelRedirect() fails to redirect
Description: 
I am using a very simple extensions.conf with all of the defaults except
for enabling a dynamic feature which shows up in features.conf as:

[applicationmap]
dynconf => *3,caller,Macro,dynamic-conf

This feature calls the items in the macro and context below.

[dynamic-conf]
exten => _X.,1,MeetMe(${EXTEN},d)

[macro-dynamic-conf]
exten => s,1,Answer
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-conf,1000,1)
exten => s,n,SoftHangup(${CHANNEL})

The goal is for a call to come in and be answered by a customer service
representative (CSR) using a SIP or IAX2 phone. The CSR uses *3 or another
feature code that calls the dynconf dynamic feature. On execution,
ChannelRedirect only sends the caller through to the MeetMe conference some
of the time. Replacing the MeetMe command with MusicOnHold or Playback does
not change the outcome. I find that on a 1.83GHz Dual Core system it fails
between 25-50% of the time. On a much faster Octo Core system it fails 90%
or more of the time.

The debug output from it working or not working is the same. Here is the
case where it does not work:

    -- Executing [s at macro-dynamic-conf:1] Answer("SIP/7600-00000006", "")
in new stack
    -- Executing [s at macro-dynamic-conf:2]
ChannelRedirect("SIP/7600-00000006",
"IAX2/provider-982,dynamic-conf,1000,1") in new stack
    -- Executing [s at macro-dynamic-conf:3] SoftHangup("SIP/7600-00000006",
"SIP/7600-00000006") in new stack
[Mar 29 15:19:52] WARNING[9015]: app_softhangup.c:114 softhangup_exec:
Soft hanging SIP/7600-00000006 up.
  == Spawn extension (dynamic-conf, 1000, 1) exited non-zero on
'IAX2/provider-982'
    -- Executing [1000 at dynamic-conf:1] MeetMe("IAX2/provider-982",
"1000,d") in new stack
    -- Created MeetMe conference 1023 for conference '1000'
    -- <IAX2/provider-982> Playing 'conf-onlyperson.ulaw' (language 'en')
    -- Hungup 'DAHDI/pseudo-833173156'
  == Spawn extension (dynamic-conf, 1000, 1) exited non-zero on
'IAX2/provider-982'
    -- Hungup 'IAX2/provider-982'


This is a case where it does work correctly. The final three lines are
delayed until I intentionally hangup the call where they happen immediately
on a failure.

    -- Executing [s at macro-dynamic-conf:1] Answer("SIP/7600-00000008", "")
in new stack
    -- Executing [s at macro-dynamic-conf:2]
ChannelRedirect("SIP/7600-00000008",
"IAX2/provider-426,dynamic-conf,1000,1") in new stack
    -- Executing [s at macro-dynamic-conf:3] SoftHangup("SIP/7600-00000008",
"SIP/7600-00000008") in new stack
[Mar 29 15:33:34] WARNING[9054]: app_softhangup.c:114 softhangup_exec:
Soft hanging SIP/7600-00000008 up.
  == Spawn extension (dynamic-conf, 1000, 1) exited non-zero on
'IAX2/provider-426'
    -- Executing [1000 at dynamic-conf:1] MeetMe("IAX2/provider-426",
"1000,d") in new stack
    -- Created MeetMe conference 1023 for conference '1000'
    -- <IAX2/provider-426> Playing 'conf-onlyperson.ulaw' (language 'en')
    -- Hungup 'DAHDI/pseudo-311765546'
  == Spawn extension (dynamic-conf, 1000, 1) exited non-zero on
'IAX2/provider-426'
    -- Hungup 'IAX2/provider-426'


Based on my tests, the faster the machine, the more often it fails. I have
not been able to find any differences in the debug between a success and
failure. I am glad to provide any additional information if necessary.
====================================================================== 

---------------------------------------------------------------------- 
 (0120460) lmadsen (administrator) - 2010-04-15 10:20
 https://issues.asterisk.org/view.php?id=17117#c120460 
---------------------------------------------------------------------- 
Based on the information provided, this does not look like a bug. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-04-15 10:20 lmadsen        Note Added: 0120460                          
2010-04-15 10:20 lmadsen        Status                   feedback => closed  
2010-04-15 10:20 lmadsen        Resolution               open => no change
required
======================================================================




More information about the asterisk-bugs mailing list