[asterisk-dev] SIP loop detection

Philipp Kempgen philipp.kempgen at amooma.de
Thu Nov 8 09:11:44 CST 2007


... in handle_request_invite() in chan_sip.c
(same thing in 1.4.13 and trunk)

---cut---
	/* 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;
	}
---cut---

"If pedantic is on, we need to check the tags." -- is that a "FIXME"
type of comment? I don't see any checks. Am I missing something?
Is it this bug: http://bugs.digium.com/view.php?id=7403 ?

Regards,
  Philipp Kempgen

-- 
amooma GmbH - Bachstr. 126 - 56566 Neuwied - http://www.amooma.de
    Let's use IT to solve problems and not to create new ones.
          Asterisk? -> http://www.das-asterisk-buch.de

Geschäftsführer: Stefan Wintermeyer
Handelsregister: Neuwied B 14998



More information about the asterisk-dev mailing list