[SIP Beyond VoIP] escaped sip uris in xcap rls documents

Juha Heinanen jh at tutpro.com
Tue Sep 27 18:03:15 CEST 2011


i "solved" the problem described below by adding a line in
xcaplib/client.py XCAPClientBase _put function that un-escapes : and @
chars:

    def _put(self, application, resource, node=None, etag=None, etagnot=None, headers=None, **kwargs):
        resource = resource.replace("%3A", ":").replace("%40", "@")

most likely that is not the correct way to solve the issue.  better
solutions are welcome.

-- juha

Juha Heinanen writes:

> i noticed that sip uris get escaped in rls documents created using
> xcap-rls-services command, for example:
> 
> T 2011/03/26 03:26:47.830225 192.98.102.10:40892 -> 192.98.102.10:8080 [AP]
> <?xml version='1.0' encoding='UTF-8'?>
> <rls-services xmlns="urn:ietf:params:xml:ns:rls-services">
>   <service uri="sip:jh_all at test.fi">
>     <resource-list>http%3A//xcap.test.fi%3A8080/xcap-root/resource-lists/users/sip%3Ajh%40test.fi/generallist.xml/%7E%7E/resource-lists/list%5B%40name%3D%22oma_buddylist%22%5D</resource-list>
>     <packages>
>       <package>presence</package>
>     </packages>
>   </service>
>   <service xmlns:rl="urn:ietf:params:xml:ns:resource-lists" uri="sip:jh-buddies at test.fi">
>     <list>
>       <rl:entry uri="sip%3Atest%40test.fi"/>
>       <rl:entry uri="sip%3Afoo%40test.fi"/>
>     </list>
>     <packages>
>       <package>presence</package>
>     </packages>
>   </service>
> </rls-services>
> 
> as result presence server is not able to handle the resulting subscribes
> because the escaped chars in their request uris.
> 
> i don't remember seeing this with earlier versions of sipclients.  has
> something changed recently that causes the escapes?  according to
> rfc3261 char : after sip and char @ after userpart cannot be escaped.
> 
> -- juha


More information about the SIPBeyondVoIP mailing list