[sr-dev] Forcing TCP connection reuse doesn't use the failure_route when the connection has gone.

Daniel-Constantin Mierla miconda at gmail.com
Mon May 5 18:18:11 CEST 2014


Hello,

there are two ways:

- handle the response code for t_relay() together with setting the flag 
for not sending responses internally
- set 
http://kamailio.org/docs/modules/stable/modules/tm.html#tm.p.failure_exec_mode

Cheers,
Daniel

On 01/05/14 19:54, Waite, Hugh wrote:
>
> I have an edge-proxy which accepts TCP connections from clients. When 
> I know that the clients are behind NATs (for example), I use the 
> set_forward_no_connect() function to force connection reuse and avoid 
> timeouts. In the case where the connection has already gone, the 
> system sends a “477 Unfortunately error on sending to next hop 
> occurred (477/TM)” response back to the registrar.
>
> These connections are using outbound, so I would like to convert this 
> into a “430 Flow Failed” response to the registrar, but the 477 
> response doesn’t seem to trigger the onreply_route or failure_route.
>
> Is there a way of trapping and handling this failure? If not, do we 
> need more flexibility in handling this particular tcp_send error (or 
> other similar ones)? Other systems may wish to try additional 
> destinations from the failure route.
>
> Snippets of my cfg and logs are below. The con_reuse flag is checked 
> in tcp_send at tcp_main.c:1846
>
> Regards,
>
> Hugh
>
> route[RELAY] {
>
> xlog("L_INFO", "$rm: route[RELAY]\n");
>
>                 loose_route();
>
>                 $var(lr_ret) = $rc;
>
>                 if ($var(lr_ret) == 2) {
>
>                         xlog("L_INFO", "$rm:  loose route with 
> outbound\n");
>
> t_on_failure("FAIL_OUTBOUND");
>
> set_forward_no_connect();
>
>                         if (t_relay() < 0) {
>
>        xlog("L_WARN", "$rm:  loose route with outbound failed\n");
>
> sl_send_reply("500", "Something bad happened");
>
>                         }
>
>                         exit;
>
>                 }
>
>                 . . .
>
> }
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE: Routing 
> logic starts here
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE: 
> route[REQINIT]
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE: 
> route[INITIAL_REQUEST]
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE: 
> route[RECORD_ROUTE]
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE: route[RELAY]
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: INVITE:  loose 
> route with outbound
>
> May  1 17:01:08 kamailio-cep[28226]: ERROR: tm [../../forward.h:219]: 
> msg_send(): msg_send: ERROR: tcp_send failed
>
> May  1 17:01:08 kamailio-cep[28226]: ERROR: tm [t_fwd.c:1609]: 
> t_send_branch(): ERROR: t_send_branch: sending request on branch 0 failed
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: ACK: Routing 
> logic starts here
>
> May  1 17:01:08 kamailio-cep[28226]: INFO: <script>: ACK: route[REQINIT]
>
>
> ------------------------------------------------------------------------
> This e-mail and any attachment is for authorised use by the intended 
> recipient(s) only. It may contain proprietary material, confidential 
> information and/or be subject to legal privilege. It should not be 
> copied, disclosed to, retained or used by, any other party. If you are 
> not an intended recipient then please promptly delete this e-mail and 
> any attachment and all copies and inform the sender. Thank you for 
> understanding.
>
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140505/8710c057/attachment.html>


More information about the sr-dev mailing list