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
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, March 7-9, 2016 -
http://www.asipto.com