Hello list,
I have some trouble with the presence module, I'm registering and
subscribing to a presentity through TCP, and kamailio is sending me
NOTIFY to the correct ip/port, but through UDP.
I have checked in modules_k/presence/notify.c::1578, the value of the
dialog's proto field is PROTO_TCP. but It's looke like that the function
modules/tm/uac.c:t_uac_prepare() is trying to guess the transport (in
ut.h at line 319 the function sip_hostport2su choose UDP as transport)
instead of using the one present in the dialog.
And as result I'm getting this warning and the NOTIFY through the wrong
transport: 1(28921) WARNING: <core> [forward.c:248]: WARNING:
get_send_socket: protocol/port mismatch
It's maybe a foolishness from my part but why can't we just use the
dialog's transport for the notify request, so it will be the same
transport as subscribe ?
In forward.c:242, when we find that force_send_socket->proto !=
guessed_proto, why we don't use the force_send_socket proto ?
What do you think about it ? If someone want to take a closer look, I
can post a sipp scenario which reproduce this issue.
Thanks by advance,
--
Nikita
Module: sip-router
Branch: master
Commit: 83e91df1441b671b358efa0f1919e8ecb122cebf
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=83e91df…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Aug 19 20:03:54 2010 +0200
core: daemon status/pipe fixes & interface changes
- moved most of the daemon status stuff to daemonize.[ch].
- nicer interface (e.g. daemon_status_send(code))
- send/read only 1 byte which will be used as exit code
- send an error status on error (fixes
"Main process exited before writing to pipe" error message)
- disabled the timeout. Not needed (now a status is sent always
and even an unlikely process crash before sending it is detected via
the read() failure) and very hard to find a good value (some
setups start very slow).
- close the pipe "send" fd in processes not needing it
- attempt to send back status only if dont_daemonize is not set
(not only if dont_fork==0, it is possible to have forking
enabled, but daemonize disabled: ser -DD)
- BSDed daemonize.[ch] and pt.[ch]
---
daemonize.c | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
daemonize.h | 36 ++++++-----
main.c | 74 ++++++---------------
pt.c | 43 +++++--------
pt.h | 35 ++++------
5 files changed, 253 insertions(+), 141 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=83e…
Module: sip-router
Branch: refs/tags/sr_3.0.3
Tag: 7b3cac86a40d9c88b027efbc5c1cd24f02ffcedd
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=tag;h=7b3cac86a4…
Tagger: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Aug 19 21:12:57 2010 +0200
Bugfixes, documentation updates and DragonFly BSD support.
Among the most important/critical bugfixes:
- *BSD compile/install fixes
- tcp fix fd passing bug (30fabfb9c). In worst case scenarios
(very heavy traffic and connections opened and closed very
quickly) it is possible that some processes will remain blocked
while trying to send on tcp.
- *BSD specific tcp fixes (ea37f13, ef1e1b4a, 0a38c9ab, 4cfd8e1d).
Under very heavy traffic some of these can cause crashes.
- memory leak (pkg) in some tm script functions (ebe29085)
- various modules_k/dialog fixes
- ser radius modules revived (k ones cannot be used with ser auth
module): 5d214e8
Roughly synchronized with kamailio 3.0.3 (except packaging, xavps
and the warning headers default).