<html><head></head><body style="background-color: rgb(255, 255, 255); line-height: initial;">                                                                                      <div style="width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);">We could probably parse the rdnis field to see if it that hop is on the list </div>                                                                                                                                     <div style="width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);"><br style="display:initial"></div>                                                                                                                                                                                                   <div style="font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);"></div>                                                                                                                                                                                  <table width="100%" style="background-color:white;border-spacing:0px;"> <tbody><tr><td colspan="2" style="font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);">                           <div style="border-style: solid none none; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding: 3pt 0in 0in; font-family: Tahoma, 'BB Alpha Sans', 'Slate Pro'; font-size: 10pt;">  <div dir="rtl"><b>מאת: </b>Kevin Larsen</div><div dir="rtl"><b>נשלח: </b>יום רביעי, 3 ביוני 2015 01:11</div><div dir="rtl"><b>אל: </b>Asterisk Users Mailing List - Non-Commercial Discussion</div><div dir="rtl"><b>השב ל: </b>Asterisk Users Mailing List - Non-Commercial Discussion</div><div dir="rtl"><b>נושא: </b>Re: [asterisk-users] Forward loop protection...</div></div></td></tr></tbody></table><div style="border-style: solid none none; border-top-color: rgb(186, 188, 209); border-top-width: 1pt; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"></div><br><div id="_originalContent" style=""><tt><font size="2">>> The loop checking is a bit more challenging
than that. If Bob <br>
>> forwards to Fred and Fred forwards to Sue, all is well when Bob
and <br>
>> Fred head out for a beer. A little later, we’re in deep doo-do0
when<br>
>> Sue forwards to Bob. </font></tt>
<br>
<br><tt><font size="2">> Could this possibly mean that any person who
has CF set should never<br>
> be available as CF Destination. Simple db entry/check can have this
done.</font></tt>
<br>
<br><tt><font size="2">That just goes to show that the problem can get complex
pretty quickly. Using the original example above, it might be that you
want to allow the Bob to Fred to Sue forwards, but only stop it if the
Sue to Bob link is established, thus creating the loop. I wonder if you
could do some kind of recursive check where you follow each forward and
if you ever come back around to a number you have already checked you know
there is a loop.</font></tt>
<br>
<br><tt><font size="2">To reuse the example above, on the creation of the
Bob to Fred forward, the database is checked to see if Fred has any forwards.
He doesn't, so is at the end of the forwarding chain. Now Fred forwards
to Sue. Again, she is at the end of the chain, so it is allowed. When Sue
goes to forward to Bob, the check shows that Bob has a forward. Not a problem,
but we create a temporary list that has Sue's number in it. Then we check
the next stage of forwarding. Bob forwards to Fred. Fred's is checked against
our temporary list and doesn't match, so we are still good. Bob's number
is now added to the temporary list and we check the forward Fred has in
place. Fred forward's to Sue. We check Sue's number against the temporary
list and it does exist. Thus we have a loop detected and the forward can
now be denied.</font></tt>
<br>
<br><tt><font size="2">I am guessing with the recursion involved you might
want to do the check outside of Asterisk and pass the result back in. I
will also state that I have not had to do this deep checking in the past,
so these are just some initial thoughts on how I would start approaching
the problem. Of course, this also assumes that Bob, Fred, and Sue are all
on the same phone system. If you don't have a shared database to look at,
the problem just got harder indeed.</font></tt>
<br><!--end of _originalContent --></div></body></html>