[OpenSER-Users] [presence] "in-dialog" SUBSCRIBE without "Route" record

Iñaki Baz Castillo ibc at in.ilimit.es
Mon Sep 10 18:06:26 CEST 2007


Hi, I have presence in OpenSer same box.

  modparam("presence","server_address","sip:85.92.0.210")


I've a problem because I get "in-dialog" SUBSCRIBE messages without "Route" 
header:



When my SIP client (Twinkle or X-Lite) starts up it sends a SUBSCRIBE 
NOT-in-dialog:

----------------------------------------------------------------------------------------------------------
#
U 2007/09/10 17:54:08.294012 222.21.235.18:5060 -> 85.92.0.210:5060
SUBSCRIBE sip:ibc at sip.domain.net SIP/2.0
Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKcsmbires
Max-Forwards: 70
To: <sip:ibc at sip.domain.net>
From: "Angel" <sip:angel at sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj at 192.168.1.58
CSeq: 636 SUBSCRIBE
Contact: <sip:angel at 192.168.1.58>
Accept: application/pidf+xml
Event: presence
Expires: 30
User-Agent: Twinkle/1.1alpha2
Content-Length: 0


#
U 2007/09/10 17:54:08.296369 85.92.0.210:5060 -> 222.21.235.18:5060
SIP/2.0 202 OK
Via: SIP/2.0/UDP 
192.168.1.58;rport=5060;branch=z9hG4bKcsmbires;received=222.21.235.18
To: <sip:ibc at sip.domain.net>;tag=10.14184.1189439648.1
From: "Angel" <sip:angel at sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj at 192.168.1.58
CSeq: 636 SUBSCRIBE
Expires: 30
Contact: <sip:85.92.0.210>
Server: OpenSER (1.2.2-notls (i386/linux))
Content-Length: 0


#
U 2007/09/10 17:54:08.297746 85.92.0.210:5060 -> 222.21.235.18:5060
NOTIFY sip:angel at 222.21.235.18:5060 SIP/2.0
Via: SIP/2.0/UDP 85.92.0.210;branch=z9hG4bKfaad.3f308931.0
To: sip:angel at sip.domain.net;tag=wddxn
From: sip:ibc at sip.domain.net;tag=10.14184.1189439648.1
CSeq: 2 NOTIFY
Call-ID: bdrmoffsihrozyj at 192.168.1.58
Content-Length: 342
User-Agent: OpenSER (1.2.2-notls (i386/linux))
Max-Forwards: 70
Event: presence
Contact: <sip:85.92.0.210>
Subscription-State: active;expires=30
Content-Type: application/pidf+xml
----------------------------------------------------------------------------------------------------------


And after 60 minutes (presence refresh in X-Lite) the following SUBSCRIBE
from X-Lite is this sent. Note that:
- This is a IN-DIALOG SUBSCRIBE (has totag and same callerd ID as before).
- This in-dialog SUBSCRIBE hasn't "Route" header !!!!!!!!!!!


----------------------------------------------------------------------------------------------------------
#
U 2007/09/10 17:54:35.390759 222.21.235.18:5060 -> 85.92.0.210:5060
SUBSCRIBE sip:85.92.0.210 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKpgezzksl
Max-Forwards: 70
To: <sip:ibc at sip.domain.net>;tag=10.14184.1189439648.1
From: "Angel" <sip:angel at sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj at 192.168.1.58
CSeq: 638 SUBSCRIBE
Contact: <sip:angel at 192.168.1.58>
Accept: application/pidf+xml
Event: presence
Expires: 30
User-Agent: Twinkle/1.1alpha2
Content-Length: 0
----------------------------------------------------------------------------------------------------------



So, because this second SUBSCRIBE hasn't a "Route" header the 
funcion "loose_route()" doesn't match it and it's routed as NOT-in-dialog 
message.


So, what to do??? I've a in-dialog message without "Route" header, so it's not 
routed by "loose_route()".

I've tryied with this:

  if (loose_route() || has_totag()) {

but it generates a loop.


Does OpenSer store the SUBSCRIBE dialog info for 60 minutes? could it 
recognize this establishd dialog? or should I route this in-dialog message as 
NOT in-dialog?


Thanks for any explanation.




-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the Users mailing list