[asterisk-dev] Call Forwarding Detail Needed
Steve Totaro
stotaro at totarotechnologies.com
Sun Apr 1 17:00:12 MST 2007
Not sure how to explain this any clearer. It doesn't.
Arpit Mehta wrote:
> Hi,
>
> I think it should be there in Asterisk. I just want to know how
> Asterisk implements this and where does it implement it.
>
> Regards
>
> Arpit
>
> On 4/1/07, * Steve Totaro* <stotaro at totarotechnologies.com
> <mailto:stotaro at totarotechnologies.com>> wrote:
>
> The scenario you describe is *extremely easy* to setup and test. I am
> sure, you will find that there is no loop detection and if you
> watch the
> console with any level of verbose, it will continue to scroll very
> rapidly down the screen.
>
> Maybe RDNIS could be used to back track one extra level of forwarding,
> other than that, I do not believe there is any mechanism to
> prevent this.
>
> What is your fear or what are you thinking is a problem? Do you see
> this causing so much activity that it slows or crashes a server? Why
> not try it and see?
>
> Thanks,
> Steve
>
> Arpit Mehta wrote:
> > Hi,
> >
> > Thanks. That was useful. But it is more like calling myself and
> hence
> > making a loop.
> >
> > I was thinking of how Asterisk detects a loop where more than one
> > participants are involved. Also whether for detection of the loop,
> > Asterisk will require to store and receive information from the
> > calling person that all these numbers have been call forwarded to
> > since that will be needed to find out whether or not you are call
> > forwarding to the same person.
> >
> > Thanks
> >
> > Regards
> >
> > Arpit
> >
> > On 4/1/07, *Leif Madsen* <leif.madsen at asteriskdocs.org
> <mailto:leif.madsen at asteriskdocs.org>
> > <mailto: leif.madsen at asteriskdocs.org
> <mailto:leif.madsen at asteriskdocs.org>>> wrote:
> >
> > On Sunday 01 April 2007 03:34:53 Arpit Mehta wrote:
> > > I just want to know if Asterisk handles a looping case and
> where
> > does it
> > > handle that .
> > >
> > > A--> B --> C--> D --> B
> > >
> > > If A calls B ,
> > > B call fwds to C ,
> > > C call fwds to D ,
> > > D call fwds to B . Now there is a loop .
> > > How does asterisk prevent this loop? I just to know where
> (as in
> > which
> > > module in the Asterisk source code) and how is this prevented
> > (that is if a
> > > data structure of all the numbers that it has call fwded to is
> > passed on to
> > > B,C,D so that it can detect a loop)?
> > >
> > > Thanks. I hope you understand my scenario. Any suggestions
> are
> > welcome.
> >
> > As far I might understand it, Asterisk would basically parse the
> > Via: headers
> > to determine where the call was coming from, and if it
> detected a
> > loop,
> > *should* handle that (this does seem like a loop, and not a
> spiral).
> >
> > I'll have to defer this to the SIP experts and C experts, but
> > basically here
> > is the code that chan_sip.c (at line 13185 of my chan_sip.c
> file)
> > that checks
> > for the loop:
> >
> > /* Check if this is a loop */
> > if (ast_test_flag(&p->flags[0], SIP_OUTGOING) &&
> p->owner &&
> > (p->owner->_state != AST_STATE_UP)) {
> > /* This is a call to ourself. Send ourselves an
> > error code
> > and stop
> > processing immediately, as SIP really has no
> good
> > mechanism
> > for
> > being able to call yourself */
> > /* If pedantic is on, we need to check the tags.
> > If they're
> > different, this is
> > in fact a forked call through a SIP proxy
> > somewhere. */
> > transmit_response(p, "482 Loop Detected", req);
> > p->invitestate = INV_COMPLETED;
> > sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
> > return 0;
> > }
> >
> > Leif Madsen.
> >
> >
> >
> >
> > --
> > Arpit Mehta
> > Graduate Student
> > Department of Computer Science
> > Columbia University
> >
> > Tel: 1-646-387-5998
> >
> ------------------------------------------------------------------------
> >
> > _______________________________________________
> > --Bandwidth and Colocation provided by Easynews.com
> <http://Easynews.com> --
> >
> > asterisk-dev mailing list
> > To UNSUBSCRIBE or update options visit:
> > http://lists.digium.com/mailman/listinfo/asterisk-dev
> <http://lists.digium.com/mailman/listinfo/asterisk-dev>
> >
>
>
>
>
> --
> Arpit Mehta
> Graduate Student
> Department of Computer Science
> Columbia University
>
> Tel: 1-646-387-5998
> ------------------------------------------------------------------------
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
>
More information about the asterisk-dev
mailing list