<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>8 jan 2013 kl. 10:43 skrev Peter Dunkley &lt;<a href="mailto:peter.dunkley@crocodile-rcs.com">peter.dunkley@crocodile-rcs.com</a>&gt;:</div><br class="Apple-interchange-newline"><blockquote type="cite">


  <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8">
  <meta name="GENERATOR" content="GtkHTML/4.4.4">

<div>
Hi Juha,<br>
<br>
A few months ago there was a discussion on IRC and the sr-dev list about what is needed for outbound.&nbsp; This requirement to remove broken contacts was presented then by someone as something that (although not explicit in the RFC) is needed.<br></div></blockquote><br></div><div>Just a clarification:</div><div><br></div><div>Section 9.3 says that&nbsp;</div><div>"<span style="font-size: 1em; ">Bob's authoritative proxy first tries the flow to EP1,</span><pre class="newpage" style="font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before: always; "><span style="font-size: 1em; ">   but EP1 no longer has a flow to Bob, so it responds with a 430 (Flow</span></pre><pre class="newpage" style="font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before: always; ">   Failed) response.  The proxy removes the stale registration and tries
   the next binding for the same instance."</pre><div><br></div><div>But it is not mentioned in the server handling section of the Outbound RFC.</div><div><br></div><div>/O</div><div><br></div><blockquote type="cite"><div>
<br>
If a flow is broken, particularly one over TCP where the connection is established from the UAC to the edge proxy, then it will never work again.&nbsp; As such it is extremely wasteful to continue to try and use that flow (in preference to one that will work) for each new dialog forming request.&nbsp; Further, as re-REGISTER times can be quite long, not removing broken contacts could lead to a significant/growing number of dead contacts (all of which will be tried for each new dialog forming request) in the location table.<br>
<br>
There is an unregister() function in the registrar module, there are also the reg_(fetch|free)_contacts() functions in the registrar module.&nbsp; None of these appear to do quite what is required.<br>
<br>
Peter<br>
<br>
<br>
On Tue, 2013-01-08 at 04:46 +0200, Juha Heinanen wrote:
<blockquote type="CITE" style="position: static; z-index: auto; ">
<pre>Peter Dunkley writes:

&gt; One requirement of an outbound capable registrar is that if a flow fails
&gt; (edge proxy returns a 430) the registrar should realise that the flow is
&gt; now dead and remove that contact binding from its database so it is not
&gt; used again as well as trying the next contact.  I can't see anything that
&gt; will do this?  Is this missing?

peter,

i didn't find in rfc5626 a requirement that registrar should remove 430
flow contact, but, if there is such a requirement, in my opinion removal
should be done from failure route in the script by a function that
removes the contact.

a similar thing was discussed a while back (see below).

-- juha

From: Juha Heinanen &lt;<a href="mailto:jh@tutpro.com">jh@tutpro.com</a>&gt;
Sender: <a href="mailto:sr-dev-bounces@lists.sip-router.org">sr-dev-bounces@lists.sip-router.org</a>
To: <a href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a>
Subject: [sr-dev] git:master: usrloc(k): keep time of the last keepalive for
        natted UDP contacts
Date: Thu, 13 Sep 2012 17:08:51 +0300

Klaus wrote:

   Why only UDP? Are TCP contacts removed when the TCP connections is closed?

   IMO there should also be a mechanism to remove ALL expired unresponsive 
   contacts.

how about the following for tcp contacts:

- set_forward_no_connect();
- if t_relay() fails because tcp connection does not exist,
  unregister the AoR/contact

what would be needed is a find out that t_relay() failed due to
non-existing connection and a script function to do un-registration of
an AoR/contact.

perhaps both of these two things already exist?

-- juha

_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
</blockquote>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody><tr>
<td>
<pre>-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd
</pre>
</td>
</tr>
</tbody></table>
</div>

_______________________________________________<br>sr-dev mailing list<br><a href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a><br>http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev<br></blockquote></div><br></body></html>