[asterisk-dev] Ready for testing: Preventing call-forwards from looping

Mark Michelson mmichelson at digium.com
Thu Oct 25 17:40:18 CDT 2007


Hello everybody,

I have been working on a development branch recently to help prevent 
call-forwards from looping.

For an explanation of what the problem is, please see this issue on the Asterisk 
bug tracker: http://bugs.digium.com/view.php?id=11024

My branch, a proposed fix for the issue, is located here:
http://svn.digium.com/svn/asterisk/branches/team/mmichelson/forward-loop
It is built off of 1.4.

 From a high level,the way this fix works is to create a channel datastore on 
the channel which places the outbound call. This datastore contains a linked 
list which contains each interface which has been dialed. Through datastore 
inheritance between channels, this list is maintained across call-forwards until 
the end of the execution of Dial(), Queue() or FollowMe(). If an interface is 
attempted to be dialed which is in the list of interfaces which have already 
been dialed, then it is not dialed again. After the channel executing the 
Dial(), Queue() or FollowMe() has been answered, the datastore is removed from 
the channel and is destroyed.

I have tested this locally in a small setup using 4 SIP phones. I would like for 
  others to test this too, especially using other technologies than SIP and 
under heavier loads to be sure this is ready for merging into the 1.4 branch.

Thanks very much, and I look forward to merging this as soon as it's ready!

Mark!



More information about the asterisk-dev mailing list