[OpenSIPS-Devel] Presence and non integrated xcap server. Did somebody managed to get it working?
Anca Vamanu
anca at opensips.org
Wed May 13 10:46:53 CEST 2009
HI Genady,
You followed exactly my course of investigation. I also added an error
buffer and discovered that there was an error when getting the etag. I
already fixed that in xcap_client module.
You can stick with 1.5.x branch, but please take xcap_client module from
svn branch of 1.5. It already contains the necessary fixes.
|
|# svn co
https://opensips.svn.sourceforge.net/svnroot/opensips/branches/1.5
opensips_1_5
Regards,
Anca
|
|
Belenky, Genady (HP Software and Solutions) wrote:
> Hi Anca,
>
> I will try to get eyebeam or bria licences for the proper testing. Thanks for the recommendation!
> Meanwhile I just created all the necessary presence rules by myself and inserted them into OpenXCAP by using xcapclient (simulating the missing functionality in X-Lite).
>
> I keep my "xcap" database tables in two different schemas - one in "opensips" and another one in "openxcap". This way I can be very close to the non-integrated XCAP server.
>
> And I discovered the reason for the "Error [22] while performing curl operation" - this was because the value "localhost" in the openXCAP "trusted_peers" parameter was not correctly resolved.
> This caused an authorization failure in openXCAP - I also checked the openXCAP logs and they confirmed that.
>
> After I replaced its value by 127.0.0.1, I did not get this error anymore, but I discovered another problem in the xcap_client module - "Error [23] while performing curl operation". According to the libcurl documentation it means "An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback."
>
> I added some debug output in xcap_functions.c, added a new errbuff variable and could see the libcurl error message in send_http_get: "Failed writing header".
> After that I'm concentrated on finding the error in get_xcap_etag - it seems that the body inside of "if(strncasecmp(ptr, ETAG_HDR, ETAG_HDR_LEN)== 0)" is not being executed.
> My debug output shows that ETAG_HDR has the value "Etag:", ETAG_HDR_LEN is set to "6" and ptr is "HTTP/1.1 200 OK"
>
> Can it be the reason? I will still stay with 1.5.1 since I believe, I have a problem in the xcap_client and not in presence_xml.
>
> Many thanks for your help, I will keep you informed.
>
> Best regards,
> Genady
>
> -----Original Message-----
> From: Anca Vamanu [mailto:anca at opensips.org]
> Sent: Montag, 11. Mai 2009 19:11
> To: Belenky, Genady (HP Software and Solutions)
> Cc: devel at lists.opensips.org
> Subject: Re: [OpenSIPS-Devel] Presence and non integrated xcap server. Did somebody managed to get it working?
>
> Hi Genady,
>
> First of all, you say that you are using X-lite for testing, but X-lite
> does not have an XCAP storage support. You should upgrade to eyebeam or
> bria for this.
>
> However, since the non integrated xcap part has not been much tested
> lately, after reading your e-mail I decided to test it a bit. And I
> discovered some problems. The ones from Counterpath seem to have changed
> some things in the XCAP URL format (I think that they are following OMA
> standards instead of IETF).
>
> To make it possible for OpenSIPS to use the same URL format I added two
> new parameters in presence_xml module. Here is how you should set them
> to have your platform working with eyebeam phones:
>
> modparam("presence_xml", "pres_rules_auid",
> "org.openmobilealliance.pres-rules")
> modparam("presence_xml", "pres_rules_filename", "pres-rules")
>
> Also I would mention that if you want a change in the xcap document to
> be effective more rapidly, you should change the 'query_period'
> parameter in 'xcap_client' module to a smaller value.
>
> I can not back port all the changes in 1.5.x branch since I changed the
> module interface for an enhancement. Therefore I would suggest you to
> upgrade to the svn trunk version at least only for the presence_xml module.
>
> I have another observation for your configuration: If you want to test
> the non integrated xcap behaviour, be careful not to configure openxcap
> and opensips to use the same database table for storing xcap documents (
> I think that this is exactly the case for your configuration).
>
> Please update and test again and if you have some other problems I will
> look into them.
>
> regards,
> Anca
>
>
> genabel wrote:
>
>> Hi,
>>
>> I'm trying to get the presence server (opensips 1.5.1) working together with
>> a non integrated xcap server. Currently I'm using openxcap for the demo
>> solution, but later I will use a commecial xcap server. In the demo solution
>> scenario openxcap has it's own database schema and tables and clearly
>> separated from the opensips data.
>>
>> The first use case is presence authorization rules related. Getting a
>> watcher-info notification, the presence server should issue an xcap request
>> towards the xcap server and use the information for the authorization
>> decision. I created the corresponding document in openxcap and tested it
>> with xcapclient.
>>
>> To make the life easier (tracing), I decided to use HTTP instead of HTTPS in
>> openxcap.
>>
>> As a client I'm using X-Lite. Both servers - opensips presence and openxcap
>> are running on the same virtual machine (Ubuntu).
>>
>> I have the following setting in my opensips.cfg :
>>
>> modparam("presence|presence_xml", "db_url",
>> "mysql://user:password@localhost/opensips")
>> modparam("presence_xml", "force_active", 0)
>> modparam("presence_xml", "pidf_manipulation", 1)
>> modparam("presence_xml", "integrated_xcap_server", 0)
>> modparam("presence_xml", "xcap_server", "myserver.local:8081")
>> modparam("presence", "server_address", "sip:XXX.XXX.XXX.XXX:5060")
>> modparam("presence", "fallback2db", 1)
>>
>> My openxcap is configured like that :
>>
>> [Server]
>> address = 0.0.0.0
>> port = 8081
>> root = http://myserver.local
>> backend = Database
>> document_validation = Yes
>>
>>
>> [Logging]
>>
>> [Authentication]
>> type = basic
>> cleartext_passwords = Yes
>> default_realm = myserver.local
>> trusted_peers = XXX.XXX.XXX.XXX
>>
>> [TLS]
>> certificate = tls/server.crt
>> private_key = tls/server.key
>>
>> [Database]
>> authentication_db_uri = mysql://openxcap:openxcap@localhost/openxcap
>> storage_db_uri = mysql://openxcap:openxcap@localhost/openxcap
>> subscriber_table = subscriber
>> xcap_table = xcap
>>
>> In this configuration I'm getting "ERROR:xcap_client:send_http_get: Error
>> [22] while performing curl operation" as far as the presence server is
>> trying to send an xcap request to openxcap.
>>
>> I also noticed that even I configured my presence server as a trusted peer
>> in the openxcap config file, I need to provide the user credentials in case
>> I want to access this URL in firefox or curl.
>>
>> Can it be the reason fot the error - missing xcap credentials configuration
>> or maybe I should use https?
>> And what is this curl related error message?
>>
>> I'm wondering if someone got a similar environment runnig. Any debugging
>> hints will be appreciated.
>>
>> Hope you can help me,
>> Best regards,
>> Genady
>>
>>
>>
>
>
More information about the Devel
mailing list