<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 23 August 2013 08:13, Steve Davies <span dir="ltr"><<a href="mailto:steve@connection-telecom.com" target="_blank">steve@connection-telecom.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Here's all that is said about return codes from t_relay in the 4.0.x module documentation  (<a href="http://kamailio.org/docs/modules/4.0.x/modules/tm.html#t_relay" target="_blank">http://kamailio.org/docs/modules/4.0.x/modules/tm.html#t_relay</a>).  Looks like there are docs that I didn't find?<br>
<div class="gmail_extra"><div class="gmail_quote">
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">  "<span style="text-align:justify;font-size:12px;font-family:Helvetica,Arial">Returns a negative value on failure -- you may still want to send a negative reply upstream statelessly not to leave upstream UAC in lurch."</span></blockquote>

<div><span style="text-align:justify;font-size:12px;font-family:Helvetica,Arial"><br></span></div><div><span style="text-align:justify;font-size:12px;font-family:Helvetica,Arial"><br></span></div>
<div>All the examples about re-routing calls are all about doing append_route out of the to_on_failure route.  Which works beautifully for "soft" failures etc.  Seems a shame this exception must be done differently?</div>
<span class=""><font color="#888888">
<div><br></div></font></span></div></div></div></blockquote><div><br></div><div>Hi Olle,</div><div><br></div><div>Here's what I put in RELAY route block:</div><div><br></div><div><p style="margin:0px;font-size:12px;font-family:Inconsolata">
        $var(rr) = t_relay();</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">        xlog("L_NOTICE","SLD: in RELAY, t_relay returned $var(rr)\n");</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">        if (!$var(rr)) {</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">                sl_reply_error();</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">        }</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata"><br></p><p style="margin:0px;font-size:12px;font-family:Inconsolata"><br></p></div><div>In 4.0.3, t_relay gives a -1 in the case that there is a physical network issue (in my test I have a "-j DROP" iptables rule)</div>
<div><br></div><div><p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:569]: _dns_hash_find(): dns_hash_find(_sip._<a href="http://udp.vc2.connection-telecom.com">udp.vc2.connection-telecom.com</a>(36), 33), h=940</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu voipmonitor[1935]: packetbuffer interface: datalink number [0] is not supported</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02  voipmonitor[1935]: last message repeated 17 times</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [resolve.c:757]: get_record(): get_record: lookup(_sip._<a href="http://udp.vc2.connection-telecom.com">udp.vc2.connection-telecom.com</a>, 33) failed</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:897]: dns_cache_mk_bad_entry(): dns_cache_mk_bad_entry(_sip._<a href="http://udp.vc2.connection-telecom.com">udp.vc2.connection-telecom.com</a>, 3</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">3, 60, 1)</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:830]: dns_cache_add(): dns_cache_add: adding _sip._<a href="http://udp.vc2.connection-telecom.com">udp.vc2.connection-telecom.com</a>(36) 33 (flag</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">s=1) at 940</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:569]: _dns_hash_find(): dns_hash_find(<a href="http://vc2.connection-telecom.com">vc2.connection-telecom.com</a>(26), 1), h=1021</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu voipmonitor[1935]: packetbuffer interface: datalink number [0] is not supported</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02  voipmonitor[1935]: last message repeated 3 times</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [resolve.c:954]: get_record(): get_record: skipping 0 NS (p=0x82b143c, end=0x82b143c)</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [resolve.c:970]: get_record(): get_record: parsing 0 ARs (p=0x82b143c, end=0x82b143c)</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:1779]: dns_get_related(): dns_get_related(0xb2f5cd68 (<a href="http://vc2.connection-telecom.com">vc2.connection-telecom.com</a>, 1), 1, *(nil</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">)) (0)</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [dns_cache.c:872]: dns_cache_add_unsafe(): dns_cache_add: adding <a href="http://vc2.connection-telecom.com">vc2.connection-telecom.com</a>(26) 1 (flags=0)</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata"> at 1021</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [forward.c:213]: get_out_socket(): DEBUG: get_out_socket: socket determined: 0xb716bae8</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [msg_translator.c:206]: check_via_address(): check_via_address(172.16.230.1, 172.16.230.1, 0)</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: <core> [udp_server.c:611]: udp_send(): ERROR: udp_send: sendto(sock,0xb2f5cdd8,1099,0,<a href="http://41.221.230.60:5060">41.221.230.60:5060</a>,16): Oper</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">ation not permitted(1)</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: tm [../../forward.h:196]: msg_send(): msg_send: ERROR: udp_send failed</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_fwd.c:1369]: t_send_branch(): t_send_branch: send to <a href="http://41.221.230.60:5060">41.221.230.60:5060</a> (1) failed</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: tm [t_fwd.c:1387]: t_send_branch(): ERROR: t_send_branch: sending request on branch 0 failed</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_funcs.c:357]: t_relay_to(): ERROR:tm:t_relay_to:  t_forward_nonack returned error </p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_funcs.c:365]: t_relay_to(): -477 error reply generation delayed </p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: *** cfgtrace: c=[/usr/local/etc/kamailio/kamailio.cfg] l=560 a=26 n=xlog</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: NOTICE: <script>: SLD: in RELAY, t_relay returned -1</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: *** cfgtrace: c=[/usr/local/etc/kamailio/kamailio.cfg] l=564 a=16 n=if</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: ERROR: *** cfgtrace: c=[/usr/local/etc/kamailio/kamailio.cfg] l=564 a=2 n=exit</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_lookup.c:1553]: t_unref(): t_unref: delayed error reply generation(-477)</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: <core> [msg_translator.c:206]: check_via_address(): check_via_address(172.16.230.1, 172.16.230.1, 0)</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_reply.c:1547]: cleanup_uac_timers(): DEBUG: cleanup_uac_timers: RETR/FR timers reset</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_hooks.c:288]: run_trans_callbacks_internal(): DBG: trans=0xb2f5aeb8, callback type 512, id 0 entered</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: acc [acc_logic.c:539]: tmcb_func(): acc callback called for t(0xb2f5aeb8) event type 512, reply code 477</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_reply.c:706]: _reply_light(): DEBUG: reply sent out. buf=0xb7157938: SIP/2.0 477 Unfortun..., shmem=0xb2f5c7</p>

<p style="margin:0px;font-size:12px;font-family:Inconsolata">18: SIP/2.0 477 Unfortun</p>
<p style="margin:0px;font-size:12px;font-family:Inconsolata">Aug 23 10:41:02 ubuntu /usr/local/sbin/kamailio[7136]: DEBUG: tm [t_reply.c:716]: _reply_light(): DEBUG: _reply_light: finished</p></div><div><br></div><div><br>
</div><div>So I don't get a specific response; not sure how to tell if I'm facing a case where the t_on_failure branch was executed or a case where it was not.</div><div>Is there a way to get hold of that "-477" error reply referred to in the trace?</div>
<div><br></div><div>Thanks,</div><div>Steve</div><div><br></div><div><br></div></div>
</div></div>