<div>I am sorry for spamming you, I missed subscription verification email.</div><div><br></div><div>Regarding my question, I understand that opensips could not recover connection and my client already reconnect.</div><div>All I need is ability to catch this error to execute lookup and find reconnected client.</div><div>And I could not find how to detect this kind of failure, because t_relay does not return error.</div><div>Do you have any suggestions?</div><div><br><div class="gmail_quote"><div>ср, 26 апр. 2017 г. в 15:49, Răzvan Crainea <<a href="mailto:razvan@opensips.org">razvan@opensips.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <tt>Hi, Mikhail!<br>
      <br>
      I've already replied to your question[1]. Please register to the
      opensips list if you want to get further emails.<br>
      <br>
      [1]
      <a class="m_-4476057297123752540moz-txt-link-freetext" href="http://lists.opensips.org/pipermail/users/2017-April/037179.html" target="_blank">http://lists.opensips.org/pipermail/users/2017-April/037179.html</a><br>
      <br>
      Best regards,<br>
    </tt>
    <pre class="m_-4476057297123752540moz-signature" cols="72">Răzvan Crainea
OpenSIPS Solutions
<a class="m_-4476057297123752540moz-txt-link-abbreviated" href="http://www.opensips-solutions.com" target="_blank">www.opensips-solutions.com</a></pre></div><div text="#000000" bgcolor="#FFFFFF">
    <div class="m_-4476057297123752540moz-cite-prefix">On 04/26/2017 11:05 AM, Mikhail Sidorov
      wrote:<br>
    </div>
    </div><div text="#000000" bgcolor="#FFFFFF"><blockquote type="cite">
      <div>
        <div class="gmail_quote">
          <div>Hi
            <div><br>
            </div>
            <div>I am using opensips 2.2.3 to handle websocket
              connections from web client (sip.js).</div>
            <div>I just started testing recover after opensips restart
              and find that I could not handle t_relay() failure.</div>
            <div><br>
            </div>
            <div>Assume I have a call between 2 webrtc clients and I
              restart opensips during this call. Media handled by
              freeswitch, so call continue without problem.</div>
            <div><br>
            </div>
            <div>Then, one client send BYE. I use loose_route to find
              another party and send him message.</div>
            <div>But here I got error that I could not handle.</div>
            <div>t_on_failure trigger does not fire</div>
            <div>t_relay return success.<br>
            </div>
            <div><br>
            </div>
            <div>Are there any special flags or triggers to handle this
              case?</div>
            <div><br>
            </div>
            <div>Opensips log:</div>
            <div><br>
            </div>
            <div>
              <div>loose_route success</div>
              <div><a class="m_-4476057297123752540moz-txt-link-freetext">INFO:core:probe_max_sock_buff</a>: using snd buffer of
                416 kb</div>
              <div><a class="m_-4476057297123752540moz-txt-link-freetext">INFO:core:init_sock_keepalive</a>: TCP keepalive enabled
                on socket 16</div>
              <div>ERROR:core:tcp_connect_blocking: poll error:
                flags 28 - 4 8 16 32</div>
              <div>ERROR:core:tcp_connect_blocking: failed to
                retrieve SO_ERROR [server=<a href="http://172.19.235.225:62594" target="_blank">172.19.235.225:62594</a>] (111)
                Connection refused</div>
              <div>ERROR:proto_<a class="m_-4476057297123752540moz-txt-link-freetext">wss:ws_sync_</a>connect:
                tcp_blocking_connect failed</div>
              <div>ERROR:proto_<a class="m_-4476057297123752540moz-txt-link-freetext">wss:ws_connect</a>: connect failed</div>
              <div>ERROR:proto_<a class="m_-4476057297123752540moz-txt-link-freetext">wss:proto_wss_</a>send: connect failed</div>
              <div>ERROR:tm:msg_send: send() for proto 6 failed</div>
              <div>ERROR:tm:t_forward_nonack: sending request failed</div>
            </div>
            <div><br>
            </div>
            <div>My configuration:</div>
            <div><br>
            </div>
            <div>
              <div>if (has_totag())</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>xlog("L_ERR",
                "Following ToTag: $tt $proto");</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>#
                sequential requests within a dialog should</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>#
                take the path determined by record-routing</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>if
                (loose_route())</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>#if
                (is_method("INVITE"))</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>#{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>#<span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">    </span>record_route();</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>#}</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>xlog("L_ERR",
                "loose_route success\n");</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">                 </span>route(relay);</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>}</div>
            </div>
            <div>--------------------------------</div>
            <div>
              <div>route[relay]</div>
              <div>{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>t_on_failure("loose_route");</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>if
                (!t_relay())</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>xlog("L_ERR",
                "t_relay error]");</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>send_reply("500","Internal
                Error");</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>}</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>exit;</div>
              <div>}</div>
            </div>
            <div><br>
            </div>
            <div>
              <div>failure_route[loose_route]</div>
              <div>{</div>
              <div><span class="m_-4476057297123752540m_-5810722503261170666gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>xlog(
                "L_ERR", "loose_route failed" );</div>
            </div>
            <div>...</div>
            <div>}</div>
            <div><br>
            </div>
          </div>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="m_-4476057297123752540mimeAttachmentHeader"></fieldset>
      <br>
      </blockquote></div><div text="#000000" bgcolor="#FFFFFF"><blockquote type="cite"><pre>_______________________________________________
Users mailing list
<a class="m_-4476057297123752540moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a class="m_-4476057297123752540moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <br>
  </div>

</blockquote></div></div>