peter,

i analyzed the pua error situation more closely.  it happens when rls
has db_mode=0 and does not happen when rls has db_mode=2.  presence and
pua both do not have db_mode set.

the test scenario is such where rls list sip:jh-budd...@test.fi consist
of two entries: sip:t...@test.fi and sip:f...@test.fi.  the former is
offline and the latter is online and has published its presence state.

the case where rls db_mode=0 goes like this.

sip:j...@test.fi rls subscribes sip:jh-budd...@test.fi, which sip proxy
routes to rls/presence server, which handles the subscribe and
(according to wireshark) replies to it with 200 ok:

Sep  9 13:36:59 siika /usr/sbin/sip-proxy[7472]: INFO: Routing SUBSCRIBE 
<sip:jh-budd...@test.fi> to presence server
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7313]: INFO: Handling SUBSCRIBE 
<sip:jh-budd...@test.fi>

then presence/rls server goes on and generates notify on this subscribe to
sip:j...@test.fi, which sip proxy forwards to subscriber:

Sep  9 13:36:59 siika /usr/sbin/pres-serv[7313]: INFO: Routing locally 
generated NOTIFY 
<sip:edxjbtay@192.98.103.10:58563;alias=192.98.103.10~59572~2;transport=tcp> to 
<sip:j...@test.fi> from <sip:jh-budd...@test.fi>
Sep  9 13:36:59 siika /usr/sbin/sip-proxy[7458]: INFO: Routing in-dialog NOTIFY 
<sip:edxjbtay@192.98.103.10:58563;transport=tcp> from <sip:jh-budd...@test.fi> 
to <sip:192.98.103.10:59572;transport=tcp>

at this point, presence server has NOT received 200 ok to this notify
from subscriber sip:j...@test.fi yet.

then presence/rls server generates subscribe over loopback interface to
one of the entries (sip:t...@test.fi) on jh-buddies list, which
presence/rls server handles, replies with 202 ok and generates notify to
itself over loopback interface:

Sep  9 13:36:59 siika /usr/sbin/pres-serv[7313]: INFO: <core> 
[tcp_main.c:2787]: quick connect for 0x7ffaa38faed0
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7313]: INFO: Routing locally 
generated SUBSCRIBE <sip:t...@test.fi> to <sip:t...@test.fi> from 
<sip:j...@test.fi>
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7316]: INFO: Handling SUBSCRIBE 
<sip:t...@test.fi>
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7316]: INFO: Routing locally 
generated NOTIFY <sip:rls@127.0.0.1:5082;transport=tcp> to <sip:j...@test.fi> 
from <sip:t...@test.fi>
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7316]: INFO: presence 
[notify.c:1581]: NOTIFY sip:j...@test.fi via 
sip:rls@127.0.0.1:5082;transport=tcp on behalf of sip:t...@test.fi for event 
presence
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7313]: INFO: <core> 
[tcp_main.c:2787]: quick connect for 0x7ffaa391c890
Sep  9 13:36:59 siika /usr/sbin/pres-serv[7316]: INFO: Handling in-dialog 
NOTIFY <sip:rls@127.0.0.1:5082;transport=tcp> from <sip:t...@test.fi> to 
<sip:j...@test.fi>

at this point, 200 ok to this notify has NOT been generated yet.

then wireshark shows that 200 ok arrives from sip:j...@test.fi to the
notify that presence/rls server sent to it before the above requests.
after that the error is reported to syslog:

Sep  9 13:36:59 siika /usr/sbin/pres-serv[7311]: ERROR: pua 
[send_subscribe.c:689]: Could not convert temporary dialog into a dialog

i'm not sure how this matches your explanation, because i don't see any
notify received on a new dialog before 2XX to subscribe.

the pcap file is enclosed.  i'll describe in next email, how things work
when rls db_mode=2.

-- juha

Attachment: pcap1.pcap
Description: rls test with rls db_mode=0

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to