Hi Paul, Effectively it seems to me that the Homestead API guide does not explain the what does "PUT /impu/<public ID>/reg-data".
As said before I am not a Guru but looking to the Homestead API at: https://github.com/Metaswitch/homestead/blob/dev/docs/homestead_api.md and to the project Clearwater Call Flow (Dialog Initiation (on-net): http://www.projectclearwater.org/technical/call-flows/ and evaluated the traces that I took on Sprout it seems to me that they are actually using the second PUT request to retrieve the subscriber profile/registration state from Homestead cache. So in my opinion what in the Homestead API guide is indicated under GET /impu/<public ID>/reg-data can be actually obtained in a similar way through a PUT request (the call flow seems to say the same thing). In my traces I have not been able to find a GET /impu/<public ID>/reg-data however I tested the API and it is returning exactly the same response using a PUT (reqtype call) or the GET as indicated by the API guide. So IN MY OPINION: PUT /impu/<public ID>/reg-data[?impi=<private ID>] Is able to change the registration state (API guide) PUT /impu/<public ID>/reg-data Only retrieves registration data from Homestead cache. Then I am not able to be 100% sure that for homestead using GET or PUT is exactly the same thing. Hope this helps, Abaco 2014-11-28 5:24 GMT+01:00 Paul Sun <[email protected]>: > Thank for the information. > > > > Any idea on the different between below URI request from sprout to > homestead? > > > > PUT /impu/<public ID>/reg-data[?impi=<private ID>] > > > > PUT /impu/<public ID>/reg-data > > > > Thanks > > > > - -PS > > > > > > *From:* Ruggero Schiavi [mailto:[email protected]] > *Sent:* Thursday, November 27, 2014 7:08 PM > *To:* Paul Sun > *Cc:* [email protected] > *Subject:* Re: [Clearwater] Flow in CLearwater in each component > > > > Hi Paul, > > I think that this link may help you: > https://github.com/Metaswitch/homestead/blob/dev/docs/homestead_api.md > > > > And this one can help to interact with Homestead databases if you need: > > > > > https://github.com/Metaswitch/clearwater-docs/wiki/Troubleshooting-and-Recovery > > > > Now I try even if I am not a real Guru to give you an idea of the > interaction Sprout - Homestead. You can verify the flow using tools like > "tshark", you can collect a trace and then using for example wireshark you > can see the flow (filtering by SIP and HTTP) and comparing it to an IMS > procedure flow you should be able to understand it. > > The flow I am going to give to you as example is the registration, you > have to remember that sprout plays, if I-CSCF functionality is enabled > (like in my case), both I/S-CSCF roles. > > You can give a glance to the general registration procedure at the > following link: > > > > http://www.eventhelix.com/ims/registration/ims_registration.pdf > > > > In IMS we have these two phases registration because of the authorization > mechanism. > > First Sprout receives the register request, the I-CSCF part of it needs to > retrieve the S-CSCF assigned to that user: you see the first HTTP get > request starting from sprout to Homestead and you see a first 200 OK > response with a payload like: > > > > {"result-code":2002,"scscf":"sprout_name.your.domain:5054";transport=TCP} > > > > After this the I-CSCF component of sprout knows which is the S-CSCF to > which forward the request (in my case itself). > > Now the S-CSCF perform the second HSS query: this one will provide > authentication information that will be used to challenge the user. The 200 > OK response in this case looks like: > > > > {"digest":{"hal1":"xxxx","realm":"your.domain","qop":"auth"}} > > > > Now sprout answers with a 401 unauthorized challenging the user > application as previewed by the standard. > > The user application will solve the challenge and send the solution in a > new register request: you have the same interaction from the I-CSCF with > homestead to retrieve the s-cscf, exactly like before. > > Now the information of the users such as Initial Filter Criteria are > downloaded by the S-CSCF from the HSS, i.e. Homestead, using HTTP PUT this > will change the registration status on the HSS. You can verify in the 200 > OK answer by Homestead the presence of the IFCs data. If the authentication > is correctly verified by the S-CSCF it will answer with a 200 OK and the > registration process can be considered concluded. > > > > Be careful because in the middle of these messages you can find other HTTP > requests directed to Ralf for billing purposes. > > > > This is not a deep explanation of the registration process, it's focused > only to give a simple idea of the flow Sprout-Homestead during it. > > > > Hope this helps, > > > > Abaco > > > > P.S. if you have an external HSS the flow is practically the same, is only > homestead that not having the data itself queries you HSS through Diameter > protocol. From the Sprout standpoint nothing changes everything should > involve only Homestead > > > > > > > > 2014-11-27 9:33 GMT+01:00 Paul Sun <[email protected]>: > > Can anyone explain the flow between sprout and homestead? > > Thanks > > > - PS > > From: Paul Sun > Sent: Wednesday, November 26, 2014 3:42 PM > To: [email protected] > Subject: Flow in CLearwater in each component > > > Hi > > Is there any material describing the flow in each components when a SIP > REGISTER/SUBSCRIBE/INVITE is received? E.g. when SIP REGISTER is picked up > in SPROUT, it will send HTTP request to HOMSTEAD, but what HTTP GET/PUT is > supposed to achieve? > > Thanks > > > - PS > _______________________________________________ > Clearwater mailing list > [email protected] > http://lists.projectclearwater.org/listinfo/clearwater > > > _______________________________________________ Clearwater mailing list [email protected] http://lists.projectclearwater.org/listinfo/clearwater
