[SR-Users] About xcap xuid in kamailio
Daniel-Constantin Mierla
miconda at gmail.com
Wed Jun 13 10:21:01 CEST 2012
Hello,
On 6/12/12 12:51 PM, Min Wang wrote:
> HI Daniel:
>
> thanks a lot for the explaination.
>
> I have tried the jitsi and bria.
>
> jitsi use this kind of xcap uri:
> /xcap/resource-lists/users/sip:w102 at 192.168.51.20/index
>
> while bria/eyebeam use:
> /xcap/org.openmobilealliance.pres-rules/users/w103 at 192.168.51.20/pres-rules
>
> The bria/eyebeam client does not have starting "sip:" on the xuid
> part.
>
> so for the bria case the $var(uri) need to be updated as:
>
> $var(uri) = "sip:"+ $xcapuri(u=>xuid);
>
> Otherwise the kamailio xcap will give some ERROR: pv
> [pv_trans.c:522]: invalid uri [w103 at 192.168.51.20]
Yes, prefixing with 'sip:' is required in such case, as it has to get to
a full sip uri format.
>
> It is the xcaps_put/del using $var(uri) that confuse me a little
> bit, I thought it would store $var(uri) in the db.
>
> xcaps_put("$var(uri)", "$hu", "$rb");
> xcaps_del("$var(uri)", "$hu");
>
> After checking the db, it seems the doc_uri has been stored
> correctly.
>
> It seems some magic happened in the function:
> xcaps_put("$var(uri)", "$hu", "$rb"); Just wondering why $var(uri) is
> needed if all the info are in $hu? I have not checked the source code. :(
Each xcap document is stored for a specific user, whose ID is taken from
first parameter of xcap_put(...)/etc. Now the user id can be the same as
in xcap url or something known only internally, looked up via some logic
in config. In this way you have full flexibility, not hardcoding to use
only what xcap url gives. Also, as you notice, the xcap url can have
different variants, you can normalized to a desired one by script
operations.
Not sure you spotted yet, there is a tutorial that might be useful
reading as well:
http://kb.asipto.com/kamailio:presence:k31-made-simple
Cheers,
Daniel
>
>
>
>
> kind regards.
>
>
> min
>
>
>
>
> On 06/12/2012 12:10 PM, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> On 6/12/12 11:28 AM, Min Wang wrote:
>>> Hi
>>> I am trying to use kamailio xcap server, saw the sample code:
>>>
>>>
>>> if($xcapuri(u=>xuid)=~"^sip:.+ at .+")
>>> $var(uri) = $xcapuri(u=>xuid);
>>> else
>>> $var(uri) = "sip:"+ $xcapuri(u=>xuid) + "@" + $Ri;
>>>
>>>
>>> why should the xuid have sip:xx at domain.com format?
>>>
>>> The xcap standard seems does not enforce the format on the xui
>>> part?
>>>
>>> http://xcap.example.com/root/resource-lists/users/joe
>>> |-------------v-------------||------v------||---v---|
>>> document root AUID XUI
>>>
>>>
>> the xuid is not not changed -- $var(uri) is built out of it to get to
>> a SIP address (for a coherent format with xuid with or without domain
>> part), but in database the xcap uri is stored as received.
>>
>> In sip, the user id is email-like address, some functions required
>> that, so if the domain part is missing, then the local ip is used.
>>
>> Have you encountered some problem due to this thing or is some field
>> in database stored with wrong value?
>>
>> Cheers,
>> Daniel
>>
>
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 - http://asipto.com/u/katu
Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 - http://asipto.com/u/kpw
More information about the sr-users
mailing list