[OpenSIPS-Users] RLS(Resource List Server)

Yoo Chan Jeon yoojeon at gmail.com
Tue Oct 28 21:09:38 CET 2008


Now I understand how Openser RLS works.

My answers are in the red texts.
I am wondering if I have to change the codes.

Thanks.
Jeon

On Tue, Oct 28, 2008 at 12:15 PM, Anca Vamanu <anca at voice-system.ro> wrote:

> Hi Jeon,
>
> You are almost there :) but missing one piece of information that I will
> provide to you now.
>
> Yoo Chan Jeon wrote:
>
>
> Thanks Anca.
> I checked the Wireshark trace, and your presentation.
> Openser RLS seems to send a notify to the user before it receives notify
> msgs from the presence server.
> The  Wireshark trace steps are following:
> I explained  the trace using your  presentation:
>
> 1.Eyebeam  subscibes to my list
> 2. Openser RLS  subscribes  to Presence server.
> 3. Openser RLS sends a 200 to the Eyebeam.
> 4. Openser RLS sends a full notify to the Eyebeam without presence states.
>
> When receiving a Subscribe, RLS , as any notifier is obliged to send an
> immediate Notify. So RLS check what state information it has , and since it
> has none at that time - it sends a Notify with empty body.
> On the other hand, does this Notify receive a 200 OK from Eyebeam?
>
   I am using the UA built using Sofia SIp

>  No, it receives the 400  Bad content Type header
>
   I looked at the Notify msg which is sent from RLS.
   It has a minor problem in the  Content-Type header
   Our RLS has a

("multi-part/related;type="application/rlmi+xml";start=<12223.....>;boundary=..).
   I checked this type with  rfc 4662
   rfc 4662 has a

(multi-part/related;type="application/rlmi+xml";start="<12223.....>";boundary=..).

   There are three ''(doulbe quote) difference.
   After I changed the  rls_notify_extra_hdr()  in the rls/notify.c  to the
same as in the rfc 4662 .
   Notify msg does not inlcude xml body anymore.
   Before the change, it has a xml body.
   The chages are made in the following. I only changed the two lines

  if(start_cid && boundary_string)

 {

 str_hdr->len+= sprintf(str_hdr->s+str_hdr->len,

 //"Content-Type: \"multipart/related;type=\"application/rlmi+xml\"");

  "Content-Type: multipart/related;type=\"application/rlmi+xml\"");

 str_hdr->len+= sprintf(str_hdr->s+str_hdr->len,

 //";start= <%s>;boundary=%s\r\n", start_cid, boundary_string);

  ";start=\"<%s>\";boundary=%s\r\n", start_cid, boundary_string);

}




>
>
>  5. Presence server sends notify msgs to the Openser RLS.
>
> Now, when receiving a Notify from the presence server, the RLS should send
> a Notify to Eyebeam with the update of the state. Do you see that?
>
> I want to mention that there were some problems discovered in RLS at SIPIT,
> two weeks ago and I am working now at fixing those. They could also appear
> in your tests. Anyhow any trouble that you find, please report and I will
> check to see if it is a new or know one.
>
> Do you use the latest version of Eyebeam? Does it have RLS support again?
>
> regards,
> Anca Vamanu
>
>
> I guess that step 4 should be called after step 5.
>
> I checked the codes again.
> The rls_handle_subscribe() calls resource_subscription(), reply_200(), and
> send_full_notify().
> The resource_suscription() does the step 2.
> The reply_200() does the step 3.
> The send_full_notify() dose the step 4.
>
> The rls_handle_subscribe() never wait for step 5.
> What did I do wrong ?
>
> Thanks
> Jeon
>
>
> On Tue, Oct 28, 2008 at 9:14 AM, Anca Vamanu <anca at voice-system.ro> wrote:
>
>> You can also find the slide presentation here:
>> http://opensips.org/index.php?n=Resources.DocsPapPa.
>>
>> Anca
>>
>> Anca Vamanu wrote:
>>
>>>  Hi Jeon,
>>>
>>> You are missing something.
>>> Here is a link at the slides from the presentation I held at VON, San
>>> Jose this year - http://www.slideshare.net/alwaysoncarl/vamanu-anca/ (
>>> we will put it on our site also).
>>> At page 24 there is a scheme with how RLS works.
>>> It interacts with the client by receiving a Subscribe to a list and
>>> sending it an aggregate Notify.
>>> To get the info to put in the Notify it sends Notifies for each buddy in
>>> list to the presence server ( where the clients have sent Publish messages).
>>> The server will then reply with Notifies that will be processed with
>>> rls_handle_notify function.
>>>
>>> regards,
>>> Anca
>>>
>>>
>>> Yoo Chan Jeon wrote:
>>>
>>>
>>>> Hi,
>>>> I looked at the codes.
>>>> The send_full_notify() api in the rls/notif.c sends the notify msg. That
>>>> api is called in the rls_handle_subscribe().
>>>> It is checking the rls_presentity table if the list has  presence
>>>> states.
>>>> The rls_presentity table is written  in the rls_handle_notify() which is
>>>> called if the server receives a notify msg.
>>>> The server recieves a subscribe(list) msg , sends a 200 msg, and a
>>>> notify msg.
>>>> I do not think the notify msg  will never have  the presence states.
>>>> Is this a bug in the codes or am I missing something?
>>>>  Thanks.
>>>> Jeon
>>>>
>>>>
>>>>  On Mon, Oct 27, 2008 at 10:49 AM, Yoo Chan Jeon <yoojeon at gmail.com<mailto:
>>>> yoojeon at gmail.com>> wrote:
>>>>
>>>>    Thanks Anca.
>>>>        I copied the xml file to the xcap.doc column. I put the
>>>>    username(list), doc_type(4), and domain(domain)    I published the
>>>> joe, bob and tom's  state.      I sent a  subscribe msg to the list at domain<mailto:
>>>> list at domain>.
>>>>    I received the notify msg with the following xml message body.
>>>>    I got a list of uri, but the xml body did not have a each uri's
>>>> state.
>>>>    I checekd the presentity database. it has the joe, bob, and
>>>>    tom presentity state.
>>>>    What am I missing?
>>>>             <?xml version="1.0" encoding="UTF-8"?>
>>>>      <list uri="sip:list at domain" xmlns="urn:ietf:params:xml:ns:rlmi"
>>>>    version="1" fullState="true">
>>>>       <resource uri="sip: joe at domain" <mailto:joe at domain>>
>>>> <resource uri="sip: bob at domain">
>>>>       <resource uri="sip: tom at domain" <mailto:tom at domain%22>>
>>>> </list>
>>>>
>>>>    Thanks.
>>>>    Jeon
>>>>
>>>>        On Thu, Oct 23, 2008 at 7:08 AM, Anca Vamanu <
>>>> anca at voice-system.ro
>>>>    <mailto:anca at voice-system.ro>> wrote:
>>>>
>>>>        Hi Jeon,
>>>>
>>>>        The column was changed from type text to type blob because
>>>>        there was a problem with postgres db. However the text is not
>>>>        transformed into binary but written as text and extracted as
>>>> text.
>>>>        And yes, you should put the whole xml in the doc column.
>>>>
>>>>        regards,
>>>>        Anca
>>>>
>>>>        Yoo Chan Jeon wrote:
>>>>
>>>>            Hi, Anca
>>>>             Thanks for your information.
>>>>            I  was busy doing other issues in the presence server.
>>>>            Now I am back to this issue.
>>>>            I checked the xcap data structure, and source codes.
>>>>            The xcap doc column's type is a BLOB in the database. But
>>>>            I looked at the codes. It seems to save the doc  as a
>>>>            string not a BLOB.
>>>>            I am still confused.
>>>>            How do I save the xml sample you wrote to the doc column?
>>>>            I mean the list.
>>>>            Should I put the whole xml to the doc column in the xcap
>>>>            table?
>>>>             Thanks.
>>>>             Jeon
>>>>
>>>>             On Thu, Oct 2, 2008 at 9:38 AM, Anca Vamanu
>>>>            <anca at voice-system.ro <mailto:anca at voice-system.ro>
>>>>            <mailto:anca at voice-system.ro
>>>>            <mailto:anca at voice-system.ro>>> wrote:
>>>>
>>>>               Hi Jeon,
>>>>
>>>>               If you want to simulate an xcap server for rls you can
>>>>            do that by
>>>>               doing the following:
>>>>               1. set integrated_xcap_server parameter in rls module to
>>>> 1.
>>>>               2. write the list in xcap table , putting value '4' in
>>>>            'doc_type'
>>>>               column.
>>>>               You should complete only columns: username, domain, doc
>>>> and
>>>>               doc_type, because these are the only ones used by the
>>>>            rls server.
>>>>               The list must have the format described in RFC 4826
>>>>               <http://www.ietf.org/rfc/rfc4826.txt>. For the example
>>>>            that you
>>>>               gave it would look something like this:
>>>>
>>>>               <?xml version="1.0" encoding="UTF-8"?>
>>>>               <resource-lists
>>>>            xmlns="urn:ietf:params:xml:ns:resource-lists">
>>>>               <list name="SIMPLE Buddy List">
>>>>               <display-name>SIMPLE Buddy List</display-name>
>>>>               <entry uri="sip: joe at domain <mailto:joe at domain
>>>>            <mailto:joe at domain> <mailto:joe at domain
>>>>            <mailto:joe at domain>>>">
>>>>
>>>>               <display-name>joe</display-name>
>>>>               </entry>
>>>>               <entry uri="sip: bob at domain <mailto:joe at domain
>>>>            <mailto:joe at domain> <mailto:joe at domain
>>>>            <mailto:joe at domain>>>">
>>>>
>>>>               <display-name>bob</display-name>
>>>>               </entry>
>>>>               <entry uri="sip:tom at domain <mailto:tom at domain
>>>>            <mailto:tom at domain> <mailto:tom at domain
>>>>            <mailto:tom at domain>>>">
>>>>
>>>>               <display-name>tom</display-name>
>>>>               </entry>
>>>>               </list></resource-lists>
>>>>
>>>>               regards,
>>>>               Anca Vamanu
>>>>
>>>>               Yoo Chan Jeon wrote:
>>>>
>>>>
>>>>                   Hi,
>>>>                   I just want to know how RLS handles SUBSCRIBE
>>>>            messages without
>>>>                   using XCAP.
>>>>                   I assume that the server already has the list
>>>>            information.
>>>>                   I want send the SUBSRIBE message with resource list
>>>>            format:
>>>>
>>>>                   SUBSCRIBE sip:list at domain
>>>>                   .
>>>>                   .
>>>>                   supported:eventlist
>>>>                   Accept:application/rlmi+xml
>>>>                   Accept:multipart/related
>>>>                     I added rls, presence, presence_xml, and pua
>>>>            modlues in the
>>>>                   configuration file.
>>>>                   I do not have any problems to run the server.
>>>>                   Which database should I add list at doamin
>>>>            <mailto:list at doamin <mailto:list at doamin>
>>>>                   <mailto:list at doamin <mailto:list at doamin>>> to?
>>>>
>>>>                   How do I add the resource list?
>>>>                   What kind of format do I need to add a list if I
>>>>            want to add
>>>>                   joe at domain <mailto:joe at domain <mailto:joe at domain>
>>>>            <mailto:joe at domain <mailto:joe at domain>>>, bob at domain
>>>>                   <mailto:bob at domain <mailto:bob at domain>
>>>>            <mailto:bob at domain <mailto:bob at domain>>>, tom at domain
>>>>                   <mailto:tom at domain <mailto:tom at domain>
>>>>            <mailto:tom at domain <mailto:tom at domain>>> ?
>>>>
>>>>
>>>>                   Do you have some kind of examples?
>>>>
>>>>                   Thanks you.
>>>>                   Jeon
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>                   _______________________________________________
>>>>                   Users mailing list
>>>>                   Users at lists.opensips.org
>>>>            <mailto:Users at lists.opensips.org>
>>>>            <mailto:Users at lists.opensips.org
>>>>            <mailto:Users at lists.opensips.org>>
>>>>
>>>>
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20081028/1eec2065/attachment-0001.htm 


More information about the Users mailing list