[SIP Beyond VoIP] Address through SylkServer
tihomir.hadzhiev at acision.com
Wed Aug 29 10:21:03 CEST 2012
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
File "/usr/local/lib/python2.7/dist-packages/sylk/applications/__init__.py", line 137, in handle_notification
File "/usr/local/lib/python2.7/dist-packages/sylk/applications/__init__.py", line 196, in _NH_SIPIncomingRequestGotRequest
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 email@example.com
Checked with trace on the communication and I see that the client is sending it correctly where address part is:
And Host part is:
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 .
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
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')
Saúl Ibarra Corretgé
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