[Kamailio-Users] bug in subscribe when contact uses tcp transport?
Juha Heinanen
jh at tutpro.com
Fri Mar 6 11:08:59 CET 2009
i would just like to add that in this example, i had kamailio sip proxy
in front of kamailio presence server:
> +++ 6-3-2009 11:44:07.897113 INFO SIP ::send_sip_tcp
> Send to: tcp:192.98.101.10:5060
> SUBSCRIBE sip:test at test.fi SIP/2.0
> Via: SIP/2.0/TCP 192.98.101.10:5074;rport;branch=z9hG4bKjyriojar
> Max-Forwards: 70
> To: <sip:test at test.fi>
> From: "Juha Heinanen" <sip:jh at test.fi>;tag=bdxzr
> Call-ID: rtiqagnmchyfjbd at taimen
> CSeq: 15 SUBSCRIBE
> Contact: <sip:jh at 192.98.101.10:5074;transport=tcp>
> Accept: application/pidf+xml
> Event: presence
> Expires: 3600
> User-Agent: Twinkle/1.4.1
> Content-Length: 0
>
> +++ 6-3-2009 11:44:07.913387 INFO SIP ::process_sip_msg
> Received from: tcp:192.98.101.10:5060
> SIP/2.0 202 OK
> Record-Route: <sip:192.98.101.10;r2=on;lr>
> Record-Route: <sip:192.98.101.10;transport=tcp;r2=on;lr>
> Via: SIP/2.0/TCP 192.98.101.10:5074;received=192.98.101.10;rport=45696;branch=z9hG4bKjyriojar
> To: <sip:test at test.fi>;tag=3d2810ff0e005fca9b24aee8694a9a3d-1dda
> From: "Juha Heinanen" <sip:jh at test.fi>;tag=bdxzr
> Call-ID: rtiqagnmchyfjbd at taimen
> CSeq: 15 SUBSCRIBE
> Expires: 3600
> Contact: <sip:192.98.101.10:5082>
> Server: OpenXg Kamailio (1.5.0-tls (i386/linux))
> Content-Length: 0
and that actually works because the front end proxy adds r-r header to
the subscribe request and that makes the subscriber to use tcp also for
in-dialog subscribes.
however, if i have integrated sip proxy/presence server, i get the
earlier described situation, where in-dialog subscribes would be sent
via udp:
+++ 6-3-2009 11:58:48.202576 INFO SIP ::send_sip_tcp
Send to: tcp:192.98.101.10:5060
SUBSCRIBE sip:test at test.fi SIP/2.0
Via: SIP/2.0/TCP 192.98.101.10:5074;rport;branch=z9hG4bKcjentvff
Max-Forwards: 70
Proxy-Authorization: Digest username="jh",realm="test.fi",nonce="49b0f3f60000000cfef7715324b37ecd354fa849a881407f",uri="sip:test at test.fi",response="1dafa05560f703932997381d497cdb10",algorithm=MD5,cnonce="4a6bc45fed",qop=auth,nc=00000001
To: <sip:test at test.fi>
From: "Juha Heinanen" <sip:jh at test.fi>;tag=wkpvh
Call-ID: ajddfsugncegcre at taimen
CSeq: 354 SUBSCRIBE
Contact: <sip:jh at 192.98.101.10:5074;transport=tcp>
Accept: application/pidf+xml
Event: presence
Expires: 3600
User-Agent: Twinkle/1.4.1
Content-Length: 0
+++ 6-3-2009 11:58:48.212542 INFO SIP ::process_sip_msg
Received from: tcp:192.98.101.10:5060
SIP/2.0 202 OK
Via: SIP/2.0/TCP 192.98.101.10:5074;rport=51275;branch=z9hG4bKcjentvff
To: <sip:test at test.fi>;tag=8056f5a66bd796abc1d40ab829a9781f-44eb
From: "Juha Heinanen" <sip:jh at test.fi>;tag=wkpvh
Call-ID: ajddfsugncegcre at taimen
CSeq: 354 SUBSCRIBE
Expires: 3600
Contact: <sip:192.98.101.10:5060;transport=tcp>
Server: OpenXg Kamailio (1.5.0-tls (i386/linux))
Content-Length: 0
so at least in the case when presence server receives a subscribe
without r-r headers, it should use in its 200 ok contact the same
transport as what was in subscribe's contact.
-- juha
More information about the Users
mailing list