[SR-Users] simple test case: add user/delete user on kamailio 3.3 presence server
Min Wang
ser.basis at gmail.com
Tue Jun 19 12:47:31 CEST 2012
Hi
(1) I tested more. It is due to the difference between bria 3 and jitsi
while handling the adding/removing contact:
if contact is added/removed:
for jitsi, it send out:
PUT /xcap-root/resource-lists/users/sip:101 at 192.168.122.32/index
PUT /xcap-root/pres-rules/users/sip:101 at 192.168.122.32/presrules
for bria 3, it only send out
PUT
/xcap-root/resource-lists/users/101 at 192.168.122.32/contacts-resource-list.xml
HTTP/1.0.
PUT
/xcap-root/resource-lists/users/101 at 192.168.122.32/contacts-resource-list.xml
it does NOT send out the pres-rules.
Is it the good behavior ( from RFC point of view) ?
should I call the pres_update_watchers even though its is for
resource-lists?
(2) BTW, what is the exact purpose of watcher table?
e.g: on 101, if delete 103, watcher table become:
id presentity_uri watcher_username
watcher_domain event status reason inserted_time
1 sip:103 at 192.168.122.32 101 192.168.122.32
presence 1 1340096051
2 sip:101 at 192.168.122.32 103 192.168.122.32
presence 3 terminated 1340096181
it is item 2 become terminated instead of item 1. If watcher table
is for subscription, then seems item 1 should be terminated?
Look at the code, it seems somehow serve as mixed role of
subscription/auth/xcap purpose, not for subscription state?
and is the active_watcher mainly for the state machine of
http://tools.ietf.org/html/rfc3857#section-4.7.1?
thanks.
min
On 06/19/2012 10:41 AM, Daniel-Constantin Mierla wrote:
> Hello,
>
> On 6/18/12 2:11 PM, Andreas Granig wrote:
>> Hi,
>>
>> On 06/15/2012 05:25 PM, Min Wang wrote:
>>> | 1 | sip:103 at 192.168.122.32 | 101 | 192.168.122.32 |
>>> presence | 2 | | 1339772803 |
>>>
>>> then I deleted the 103 from the contact list, the watcher table
>>> still
>>> shows the same.
>> For local storage, I'd expect an unsubscribe (subscribe with Expires=0)
>> from 101 to 103. The obvious work-flow would be to set it to
>> "terminated" in watchers table, and in case of a subsequent re-subscribe
>> it should be changed back to "pending" state, although the state-machine
>> doesn't indicate a transition from "terminated" back to "pending". Isn't
>> this the case?
>>
>> For xcap storage, there are other ways to block/remove a contact on/from
>> the list. As Iñaki pointed out in
>> http://lists.opensips.org/pipermail/devel/2009-August/003868.html, the
>> xcap server needs to notify the sip server about the change, which in
>> turn will notify the other party (103) that it's no longer allowed to
>> see 101's state. If the xcap_server module of kamailio is used, there is
>> the following code snippet in some examples floating around on the
>> internet:
>>
>>
>> switch($rm) {
>> case "PUT":
>> xcaps_put("$var(uri)", "$hu", "$rb");
>> if($xcapuri(u=>auid)=~"pres-rules") {
>> pres_update_watchers("$var(uri)", "presence");
>> pres_refresh_watchers("$var(uri)", "presence", 1);
>> }
>>
>> So, shouldn't this update the watchers accordingly? Anyways, also in
>> this case the watcher state should change to "terminated", and in case
>> of a re-subscribe it should go back to pending if xcap rules are
>> allowing this.
>>
>> Maybe someone with good xcap_server/presence insights could elaborate on
>> that?
> to summarize, you say that when the contact is removed from the buddy
> list, the watcher table is not updated to state terminated by
> pres_update_watchers(...)?
>
> Cheers,
> Daniel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120619/b65e751a/attachment.htm>
More information about the sr-users
mailing list