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@sip.domain.net SIP/2.0
Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKcsmbires
Max-Forwards: 70
To: <sip:ibc@sip.domain.net>
From: "Angel" <sip:angel@sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj(a)192.168.1.58
CSeq: 636 SUBSCRIBE
Contact: <sip:angel@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@sip.domain.net>;tag=10.14184.1189439648.1
From: "Angel" <sip:angel@sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj(a)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@222.21.235.18:5060 SIP/2.0
Via: SIP/2.0/UDP 85.92.0.210;branch=z9hG4bKfaad.3f308931.0
To: sip:angel@sip.domain.net;tag=wddxn
From: sip:ibc@sip.domain.net;tag=10.14184.1189439648.1
CSeq: 2 NOTIFY
Call-ID: bdrmoffsihrozyj(a)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@sip.domain.net>;tag=10.14184.1189439648.1
From: "Angel" <sip:angel@sip.domain.net>;tag=wddxn
Call-ID: bdrmoffsihrozyj(a)192.168.1.58
CSeq: 638 SUBSCRIBE
Contact: <sip:angel@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(a)in.ilimit.es