[OpenSIPS-Users] OpenSIPS & OpenXCAP

Paris Stamatopoulos mobius at realize.gr
Tue Mar 16 11:47:56 CET 2010


Hello everyone,

I've been struggling for a few days with OpenSIPS and OpenXCAP and I've reached a certain point where I think I could really use some help on the matter. I've configured a dedicated OpenSIPS instance with pretty much the configuration mentioned in the openxcap website (http://www.openxcap.org/wiki/Installation) although I had to change it quite a bit for it to work with OpenSIPS 1.6.

I've also managed with quite a bit of tweaking to force openxcap and opensips-mi-proxy to work from non-standard directories. I've used the following versions:

python 2.6.4
python-application 1.2.3
python-gnutls 1.1.8-1
python-lxml 2.1.5-1
python-sqlobject 0.10.6
python-twisted-core 8.2.0-3
python-twisted-web 8.2.0-2
python-twisted-web2 8.1.0-2
python-zope.interface 3.5.2-1

On a ubuntu-server 9.10

I've also installed the python-xcaplib that came with OpenXCAP.

However when I run the test.py suite I get 6 failures which I don't know what to make of them:

test_pidf_manipulation (test_presrules.PresenceRulesTest) ... FAIL
Testing different ways of inserting an element as described in examples from Section 8.2.3 ... FAIL
Testing PUT requests of form '*[@att="some"]' which require looking into body of PUT ... FAIL
test_operations (test_resourcelists.DocumentTest) ... FAIL
test_operations (test_rlsservices.DocumentTest) ... FAIL
test_pidf_manipulation (test_pidf.PIDFTest) ... FAIL

OpenXCAP while in -no-fork shows lots of trace backs such as:

File "/opt/xcap/share/pyshared/xcap/appusage/__init__.py", line 91, in _check_schema_validation
            raise errors.SchemaValidationError(comment=self.xml_schema.error_log)
        xcap.errors.SchemaValidationError: <schema-validation-error><!--
        <string>:3:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_3_2_2: Element '{urn:ietf:params:xml:ns:resource-lists}list', attribute 'some-attribute': The attribute 'some-attribute' is not allowed.
        --></schema-validation-error>

xcap.uri.NodeParsingError: Failed to parse node: '/resource-lists/list[@name="friends"]/external[]/@anchor'

File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 328, in _runCallbacks
            self.result = callback(self.result, *args, **kw)
File "/opt/xcap/share/pyshared/xcap/appusage/__init__.py", line 247, in _cb_get_attribute
            raise errors.ResourceNotFound

File "/opt/xcap/share/pyshared/xcap/resource.py", line 23, in checkEtag
            http.checkPreconditions(request, etag=ETag(etag))
File "/usr/lib/python2.6/dist-packages/twisted/web2/http.py", line 256, in checkPreconditions
            raise HTTPError(StatusResponse(responsecode.PRECONDITION_FAILED, "Requested resource does not have a matching ETag."))
        twisted.web2.http.HTTPError:

File "/opt/xcap/share/pyshared/xcap/appusage/__init__.py", line 486, in get_document_local
            self._not_implemented('users')
File "/opt/xcap/share/pyshared/xcap/appusage/__init__.py", line 126, in _not_implemented
            raise errors.ResourceNotFound("Application %s does not implement %s context" % (self.id, context))
        xcap.errors.ResourceNotFound: Application xcap-caps does not implement users context

Could it be there is something wrong with my python-twisted version? Also please note that in order to make openxcap run in fork mode and log the errors I had to disable the Syslog error writing as mentioned also in the ticket http://openxcap.org/ticket/136 which I've opened.

Is maybe the test suite of openxcap obsolete?

As for the OpenSIPS,  I've modified my main OpenSIPS server to forward PUBLISH|SUBSCRIBE|NOTIFY requests to the Presence-OpenSIPS as follows:

if (has_totag()) {
if (loose_route()) {
                ...
} else {
if (is_method("SUBSCRIBE") && $rd == "VOIP_IP") {
                                                rewritehostport("PRESENCE_SERVER:PRESENCE_PORT");
                                t_relay();
                                                exit;
}
...
}
}

...

if( is_method("PUBLISH|SUBSCRIBE|NOTIFY") ) {
                rewritehostport("PRESENCE_SERVER:PRESENCE_PORT");
                t_relay();
                exit;
}

Requests seem to be properly forwarded to the Presence-OpenSIPS however I could use some confirmation that what I am doing is correct. I see that adding on eyebeam a contact appears on the list, however it appears grayed-out, I cannot subscribe to presence information of it.



More information about the Users mailing list