I haven't checked the code for a definitive answer, but, iirc, tcp can
indeed have some limitations in accepting anything.
This is because TCP is a stream protocol, so the reading function needs
to know when to split the traffic in messages. With SIP is done via a
lightweight parser that searches as it reads for Content-Length. Then
once it encounters double \r\n it assumes the end if headers and expects
to read the body of the size specified by CL value.
For http, it relies either on CL or, if core parameter
tcp_accept_no_cl=yes, can handle as well chunked body which carries the
size with each chunk, last one being of size 0 (iirc). The tcp reader
can handle also MSRP or STUN messages.
But a random sequence of bytes may be rejected, as it cannot decide what
is the marker for end of a message.
The variants I could see now:
1) encapsulate the message as body of http (or sip with random values
for caller, callee, etc.. -- they are going to be discarded anyhow, but
perhaps they will get blocked by provider, if that was the concern, http
being safer from this point of view)
2) try with custom message format that has only the header
Content-Length: NUMBER followed by \r\n\r\n and the encrypted message as
body
3) think of a simple generic framing format (e.g., netstring) to send
over TCP the encrypted messages and patch the C code in Kamailio
tcp_read.c to get the message out of the frame
Cheers,
Daniel
On 20/09/14 19:12, Muhammad Shahzad wrote:
There is something wrong with your encryption setup, the event_route
[network:msg] gets raw messages that was either just received from the
network interface or the final message that is about to be sent over
network socket. The SIP parsing is done AFTER message has been
processed by this route. So, if SIP parsing fails then it means the
message was not correctly decrypted in event_route [network:msg].
Thank you.
On Sat, Sep 20, 2014 at 3:25 PM, Rahul MathuR
<[email protected] <mailto:[email protected]>> wrote:
Hello Gents,
Thanks for guiding me in the correct direction.
However, it so came out that when encrypted packets come to
kamailio over transport 'TCP' then it gets rejected from
tcp_read.c even before coming to corex module.
I guess, maybe it is getting rejected due to header parsing failure.
Any pointers here would be very helpful !!
Thanks one again..
On Wed, Sep 17, 2014 at 12:44 PM, Daniel-Constantin Mierla
<[email protected] <mailto:[email protected]>> wrote:
Hello,
the corex has a function to tell if the message is received by
kamailio or sent out:
-
http://kamailio.org/docs/modules/devel/modules/corex.html#idp29928
If you interconnect with other servers/gateways when you don't
what to do special encoding, then you need to test src ip or
look ar r-uri/dst uri.
Cheers,
Daniel
On 17/09/14 04:24, Rahul MathuR wrote:
Hi,
Did you get some free cycles to look at it ?
On Wed, Sep 17, 2014 at 12:12 AM, Rahul MathuR
<[email protected] <mailto:[email protected]>>
wrote:
Thanks for replying !
But how to check whether a particular message received by
Kamailio was sent by UAC or SIP Server ?
Also, on the same lines - how to know whether a
particular message about to be send from Kamailio is
bound to UAC or SIP Server ?
On Tue, Sep 16, 2014 at 10:51 PM, Muhammad Shahzad
<[email protected] <mailto:[email protected]>> wrote:
Hi,
The network io intercept feature basically allows
kamailio script writer to do whatever s/he may want
to do with raw SIP packets (that are just received by
kamailio or about to be sent out by kamailio), e.g.
encryption, compression or any final touches to sip
message before it is processed by kamailio core. That
is why it is purposely kept abstract and any
particular use or implementation is left to the
script writer.
In your case the encryption / decryption code is in
C/C++, you can try one of the followings,
1. Writeup a C/C++ program that receives outgoing SIP
message as text (and some other parameters, e.g.
encryption key) in input arguments and returns the
encrypted message in event_route [ network:msg ] and
vice versa (for incoming messages). You can call this
program directly from kamailio.cfg script.
2. Writeup e.g. a PERL wrapper for your encryption /
decryption C/C++ code and call it using kamailio
app_perl module within event_route [ network:msg ] as
demonstrated in this example,
http://kamailio.org/docs/modules/devel/modules/corex.html#idp125704
You can also use any other kamailio language bind of
you choice as well, e.g. Python, LUA, JAVA and so on.
I would recommend the second option, as it has less
processing overhead for kamailio.
Thank you.
On Tue, Sep 16, 2014 at 6:09 PM, Rahul MathuR
<[email protected]
<mailto:[email protected]>> wrote:
Hello,
I was going through the new features and stumbled
upon this new one - developed by Mohd. Shahzad Shafi.
As already mentioned on the wiki about this
module, I intend to use it for my custom security
layer between UACs and SIP Proxy (Kamailio) but
the issue is - the custom security layer
(encryption/decryption code) is written in C and
should precisely be applied for the messages
between UAC and Proxy.
Is there a way I can achieve this using Corex
module since it does intercept the network I/O
messages ?
Any help here would be really appreciated.
--
Warm Regds.
MathuRahul
_______________________________________________
sr-dev mailing list
[email protected]
<mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
_______________________________________________
sr-dev mailing list
[email protected]
<mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Warm Regds.
MathuRahul
--
Warm Regds.
MathuRahul
_______________________________________________
sr-dev mailing list
[email protected] <mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda>
-http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 -http://www.asipto.com
Sep 22-25, Berlin, Germany
_______________________________________________
sr-dev mailing list
[email protected] <mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Warm Regds.
MathuRahul
_______________________________________________
sr-dev mailing list
[email protected] <mailto:[email protected]>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany
_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev