when a ua that has registered over tcp has lost its connection to sip proxy, t_relay() succeeds and branch failure route is executed:
Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********** entering branch_route [CONTACT_BRANCH] Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********** activating t_on_branch_failure("contact)" Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: Routing INVITE sip:jh-0x16737a0@192.98.102.10:44186;transport=tcp to contact via sip:192.98.102.10:51297;transport=tcp Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: WARNING: tm [t_fwd.c:1543]: t_send_branch(): ERROR: t_send_branch: sending request on branch 0 failed Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********* t_relay success Feb 21 05:07:31 lohi /usr/bin/sip-proxy[20480]: INFO: ********** entering tm:branch-failure:contact
but when a ua that has registered over websocket over tcp has lost is connection to sip proxy, t_relay() fails and branch failure route is not executed:
Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********** entering branch_route [CONTACT_BRANCH] Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********** activating t_on_branch_failure("contact)" Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: Routing INVITE sip:an41pa6p@ggjdptrk9jm0.invalid;transport=ws to contact via sip:192.98.102.10:39057;transport=ws Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: WARNING: <core> [msg_translator.c:2756]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: <core> [msg_translator.c:1974]: build_req_buf_from_sip_req(): could not create Via header Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: tm [t_fwd.c:462]: prepare_new_uac(): could not build request Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: tm [t_fwd.c:1712]: t_forward_nonack(): ERROR: t_forward_nonack: failure to add branches Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********* t_relay failure
in the latter case, is there some means to get access to the failing branch in order to be able to unregister it, delete its rtpengine session, etc?
why can't kamailio behave the same way no matter if pure tcp connection or one using websocket protocol over tcp connection fails?
-- juha
Hello,
On 21/02/16 04:20, Juha Heinanen wrote:
when a ua that has registered over tcp has lost its connection to sip proxy, t_relay() succeeds and branch failure route is executed:
Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********** entering branch_route [CONTACT_BRANCH] Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********** activating t_on_branch_failure("contact)" Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: Routing INVITE sip:jh-0x16737a0@192.98.102.10:44186;transport=tcp to contact via sip:192.98.102.10:51297;transport=tcp Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: WARNING: tm [t_fwd.c:1543]: t_send_branch(): ERROR: t_send_branch: sending request on branch 0 failed Feb 21 05:07:26 lohi /usr/bin/sip-proxy[20528]: INFO: ********* t_relay success Feb 21 05:07:31 lohi /usr/bin/sip-proxy[20480]: INFO: ********** entering tm:branch-failure:contact
but when a ua that has registered over websocket over tcp has lost is connection to sip proxy, t_relay() fails and branch failure route is not executed:
Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********** entering branch_route [CONTACT_BRANCH] Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********** activating t_on_branch_failure("contact)" Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: Routing INVITE sip:an41pa6p@ggjdptrk9jm0.invalid;transport=ws to contact via sip:192.98.102.10:39057;transport=ws Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: WARNING: <core> [msg_translator.c:2756]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: <core> [msg_translator.c:1974]: build_req_buf_from_sip_req(): could not create Via header Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: tm [t_fwd.c:462]: prepare_new_uac(): could not build request Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: ERROR: tm [t_fwd.c:1712]: t_forward_nonack(): ERROR: t_forward_nonack: failure to add branches Feb 21 05:08:26 lohi /usr/bin/sip-proxy[20523]: INFO: ********* t_relay failure
in the latter case, is there some means to get access to the failing branch in order to be able to unregister it, delete its rtpengine session, etc?
why can't kamailio behave the same way no matter if pure tcp connection or one using websocket protocol over tcp connection fails?
wobsocket management and communication is done in the websocket module, which probably does different type of processing. Making it like the pure tcp would be probably good.
The tcp connection id is anyhow associated with the registration/location record, usrloc module can cleanup them if the connection is no longer active. Also, there is now an event route executed when the tcp connection is closed, so it should happen for the websocket connections as well.
Regards, Daniel
Daniel-Constantin Mierla writes:
why can't kamailio behave the same way no matter if pure tcp connection or one using websocket protocol over tcp connection fails?
wobsocket management and communication is done in the websocket module, which probably does different type of processing. Making it like the pure tcp would be probably good.
yes, since it would simplify the script. branch failure route should be executed in all failures (also internal ones). i'll file a bug report on it.
The tcp connection id is anyhow associated with the registration/location record, usrloc module can cleanup them if the connection is no longer active. Also, there is now an event route executed when the tcp connection is closed, so it should happen for the websocket connections as well.
i know about those, but connection is closed also after normal un-registration, in which case there would be no need to do anything at connection close. also, i need to be able to destroy the possible media proxy session and need branch flags and via for that.
-- juha