Hello,
I think I may have found a bug in the RLS module.
Take two subscribers (alice and bob) who have each other in their contact lists. Log them in (so REGISTER, SUBSCRIBE(presence.winfo), SUBSCRIBE(presence), PUBLISH, and so on). Log one (bob) out. bob's status remains online in alice's client. Restart alice's client (logging her out and in again). bob's status is still shown as online.
Has anyone encountered this before?
I think it might be related to some errors I am seeing. When my client unSUBSCRIBEs on sign-out I get the following errors (the line numbers may be slightly out from the base 3.1.2 version as I added some diagnostics to try and find the problem):
Mar 29 13:57:51 supernode /usr/sbin/kamailio[20259]: ERROR: rls [notify.c:280]: updating in hash table
Mar 29 13:57:51 supernode /usr/sbin/kamailio[20259]: ERROR: rls [notify.c:150]: in function agg_body_sendn_update
Mar 29 13:57:51 supernode /usr/sbin/kamailio[20259]: ERROR: rls [subscribe.c:638]: failed sending full state notify
Mar 29 13:57:51 supernode /usr/sbin/kamailio[20259]: ERROR: rls [subscribe.c:678]: occured in rls_handle_subscribe
I believe this is happening because send_full_notify() is called after update_rlsubs() is called in rls_handle_subscribe(). update_rlsubs() will delete the entry from the hash table when "Expires: 0" is set - as is the case for an unSUBSCRIBE.
Can anyone suggest what the correct behaviour should be?
Thanks,
Peter