i sent yesterday privately an email to anca about this, but thought that
perhaps a broader discussion is appropriate, because it looks to me that
there is a fundamental flaw in current presence implementation.

while testing presence, i noticed that when processing subscribe
requests, presence module seems to take presentity uri from to uri and
not from the request uri.  for example, when twinkle sends subscribe

SUBSCRIBE sip:[EMAIL PROTECTED] SIP/2.0
To: "Juha Heinanen" <sip:[EMAIL PROTECTED]>

openser does not find presentity with username jh/domain vm.test.fi
although it does exists.

also, if state of presentity changes, twinkle does not get notification
of it, i guess, because in active_watchers table twinkle is listed with
to_user +358442345670/to_domain test.fi and there is no field in
active_watchers table that would include presentity uri
sip:[EMAIL PROTECTED] that twinkle subscribed to.

RFC 3265 is clear on how target of subscribe is determined:

3.1.2. Identification of Subscribed Events and Event Classes

   Identification of events is provided by three pieces of information:
   Request URI, Event Type, and (optionally) message body.

it makes never (except in register request) sense by presence server or
proxy to examine to header, because to header has only local meaning.
for example, my proxy may accept subscribe request where r-uri and to
uri are both sip:my_mailbox and then rewrite request uri to
sip:[EMAIL PROTECTED]

another (minor) thing that i noticed while reading presence source code
is that it uses parse_uri functions to parse to header.  these should
be changed to more efficient parse_to_uri, which checks if the uri has
already been parsed.

-- juha

_______________________________________________
Devel mailing list
Devel@openser.org
http://openser.org/cgi-bin/mailman/listinfo/devel

Reply via email to