[SIP Beyond VoIP] Address through SylkServer

Hadzhiev, Tihomir tihomir.hadzhiev at acision.com
Wed Aug 29 10:21:03 CEST 2012


Yep,

Tried this, but the validator is still complaining that this is Invalid SIP URI:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 766, in runUntilCurrent
    f(*a, **kw)
  File "/usr/local/lib/python2.7/dist-packages/sylk/applications/__init__.py", line 137, in handle_notification
    handler(notification)
  File "/usr/local/lib/python2.7/dist-packages/sylk/applications/__init__.py", line 196, in _NH_SIPIncomingRequestGotRequest
    app.incoming_sip_message(request, notification.data)
  File "/usr/local/lib/python2.7/dist-packages/sylk/applications/xmppgateway/__init__.py", line 172, in incoming_sip_message
    recipient = Identity(FrozenURI.parse(to_uri))
  File "/usr/local/lib/python2.7/dist-packages/sylk/applications/xmppgateway/datatypes.py", line 62, in parse
    raise ValueError('invalid SIP uri: %s' % value)
ValueError: invalid SIP uri: sip:-739277318 at chat.facebook.com@facebook.testing.com

Checked with trace on the communication and I see that the client is sending it correctly where address part is:

-739277318%40chat.facebook.com

And Host part is:

facebook.testing.com

So ideal would be to tackle the URI syntax check on the Sylk so the whole first part before the actual @facebook.testing.com is interpreted as normal string .

Cheers,
Tiho

-----Original Message-----
From: Saúl Ibarra Corretgé [mailto:saul at ag-projects.com]
Sent: Wednesday, August 29, 2012 9:43 AM
To: Hadzhiev, Tihomir
Cc: sipbeyondvoip at lists.ag-projects.com
Subject: Re: [SIP Beyond VoIP] Address through SylkServer

Hi,

On Aug 28, 2012, at 4:56 PM, Hadzhiev, Tihomir wrote:

> Hi Saul,
>
> Thanks for the tip, but I can't really understand ( not trying to play fool of course :) ) your suggestions.
>
> The expected string towards the XMPP server would be:
>
> -739277318\40chat.facebook.com at facebook.testing.com
>
> And If I use the @ sign instead of the \40 Sylk will catch the URL @chat.facebook.com, without the rest ( @facebook.testing.com ).
>
> And I could get the following sentence:
>
> You need to percent encode the URI so that it looks like a correct SIP URI
>
> I tried to percent the "\" only as the 40 is needed as a string, as well as the "\".
>
> So could you please suggest if that's possible at all how the full URI would look like ? a real example would really suffice :)

All those numbers confused me, this is just JID escaping as per XEP-0106. You need to replace the '@' sign with a '\40', but in order to add the '\' character to a Python string you need to escape it, so you'll need to replace '@' with '\\40'.

Now, the resulting URI is not a valid SIP URI, so I suggest you do the following:

- Percent-encode the URI on the SIP side, that is: sip:-739277318%40chat.facebook.com at facebook.testing.com
- Fix the URI to be a valid escaped JID:
    s = "-739277318%40chat.facebook.com at facebook.testing.com"
    valid_jid = s.replace('%40', '\\40')


Regards,

--
Saúl Ibarra Corretgé
AG Projects





This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you for understanding.




More information about the SIPBeyondVoIP mailing list