[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