[sr-dev] NOTIFY being sent through UDP instead of TCP

nikita nikita at mbdsys.com
Thu Aug 19 17:30:08 CEST 2010


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



More information about the sr-dev mailing list