[asterisk-bugs] [Asterisk 0011753]: app_channelredirect relies on ast_parseable_goto which fails to redirect channels

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jan 30 19:57:28 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11753 
====================================================================== 
Reported By:                johan
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11753
Category:                   Applications/app_channelredirect
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!): 98558 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             01-12-2008 16:43 CST
Last Modified:              01-30-2008 19:57 CST
====================================================================== 
Summary:                    app_channelredirect relies on ast_parseable_goto
which fails to redirect channels
Description: 
It seems like ChannelRedirect isn't working very well in trunk. I patched
ChannelRedirect to report the status in bug 0011553 for asterisk
1.4-trunk.
When I was porting this patch to trunk I stumbled on this issue.

The source av ast_parseable_goto that seems to fail even if there is a
vaild channel and destination. I have tested the following scenarious:
I place call http://bugs.digium.com/view.php?id=1 in either MusicOnHold(),
Meetme(), Playback() then I've a
call http://bugs.digium.com/view.php?id=2 that makes a
Channelredirect(call-numer-1-channelname,newcontext,newexten,1)
This always fails.

However if you do a core show channels after this unsucessful redirect you
will se:
Channel              Location             State   Application(Data)
Zap/pseudo-598993578 s at default:1          Rsrvd   (None)
SIP/callnumer1-08222 s at newcontext:0       Up      MeetMe(1,dm)

Note the newcontext:0...

And in the case you redirect channel http://bugs.digium.com/view.php?id=1 where
it does a Playback() the
redirect will occur after the Playback is finished. This will not happen
with the other applications thou.

Maybe I'm making a misstake, but this confuses me a lot...
====================================================================== 

---------------------------------------------------------------------- 
 johan - 01-30-08 19:57  
---------------------------------------------------------------------- 
I've tried this once again hoping I was mistaken.

I checked out revision SVN-trunk-r101344
and tried the following extensions.ael

context catchall {
        _X. => {
                Answer();
                Wait(1);
                Wait(888);
               }
}

After having one call waiting in Wait(888) I added the following row
before Wait(888):
                ChannelRedirect(SIP/0303350971-082294c8,test,s,1);

Then I called in on another phone.
The output was the following:
    -- Executing [0303350971 at catchall:1] Answer("SIP/0303350971-082294c8",
"") in new stack
    -- Executing [0303350971 at catchall:2] Wait("SIP/0303350971-082294c8",
"1") in new stack
    -- Executing [0303350971 at catchall:3] Wait("SIP/0303350971-082294c8",
"888") in new stack
mio*CLI> ael reload
<snip>
mio*CLI> core show channels
Channel              Location             State   Application(Data)
SIP/0303350971-08229 0303350971 at catchall: Up      Wait(888)
1 active channel
1 active call
1 call processed
  == Using SIP RTP CoS mark 5
    -- Executing [0303350971 at catchall:1] Answer("SIP/0303350971-0822ea30",
"") in new stack
    -- Executing [0303350971 at catchall:2] Wait("SIP/0303350971-0822ea30",
"1") in new stack
    -- Executing [0303350971 at catchall:3]
ChannelRedirect("SIP/0303350971-0822ea30",
"SIP/0303350971-082294c8,test,s,1") in new stack
    -- Executing [0303350971 at catchall:4] Wait("SIP/0303350971-0822ea30",
"888") in new stack
mio*CLI> core show channels
Channel              Location             State   Application(Data)
SIP/0303350971-0822e 0303350971 at catchall: Up      Wait(888)
SIP/0303350971-08229 s at test:0             Up      Wait(888)
2 active channels
2 active calls
2 calls processed
mio*CLI> core show version
Asterisk SVN-trunk-r101344 built by root @ mio on a i686 running Linux on
2008-01-31 01:43:24 UTC 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
01-30-08 19:57  johan          Note Added: 0081480                          
======================================================================




More information about the asterisk-bugs mailing list