[sr-dev] New Kamailio module Obfuscate

Muhammad Shahzad shaheryarkh at gmail.com
Fri Aug 8 12:23:56 CEST 2014


humm, it is suppose to contain the original message that was feed to
event_route[network:msg], it would be same as $mb till this route changes
the contents of it stores the new contents in $mb, then the $mb and
$raw_msg would contain different contents (original vs modified), this may
be useful in other routes, such as error_route or local_route e.g. for
comparison etc.

Of course, you can remove this variable, since i don't have any concrete
use of it in my mind (other then comparing any changes to message were done
by event_route[network:msg] in other routes).

Thank you.




On Fri, Aug 8, 2014 at 11:07 AM, Daniel-Constantin Mierla <miconda at gmail.com
> wrote:

>  I see that the code introduces a new variable $raw_msg. It looks like
> being message buffer which is returned by $mb, thus redundant.
>
>
> Cheers,
> Daniel
>
> On 05/08/14 12:06, Muhammad Shahzad wrote:
>
>  yup, i always download kamailio from official repo mentioned here,
>
> http://www.kamailio.org/wiki/install/devel/git
>
>  Thank you.
>
>
>
>
> On Tue, Aug 5, 2014 at 3:03 PM, Daniel-Constantin Mierla <
> miconda at gmail.com> wrote:
>
>>
>> On 05/08/14 11:55, Muhammad Shahzad wrote:
>>
>>  OK, created the patch finally...
>>
>>
>> http://webrtc.voip-demos.com/0001-added-support-for-network-io-intercept.patch
>>
>>
>>  I will look over it and push it to the repository if everything is ok.
>>
>>
>>
>>  I had to add all file i wanted to include in the commit using "git
>> add", even the ones that are already included in git repo, e.g. corex.xml
>> and corex_mod.c.
>>
>>  Strange, I never had to do it -- did you clone the git repository from
>> sip-router.org?
>>
>>
>>  I will just let you know i hit my head on wall just 17 times to make it
>> work. :-(
>>
>>  Hopefully it was facebook wall :-)
>>
>> Daniel
>>
>>
>>
>>  Thank you.
>>
>>
>>
>>
>> On Tue, Aug 5, 2014 at 2:40 PM, Daniel-Constantin Mierla <
>> miconda at gmail.com> wrote:
>>
>>>  You should use:
>>>
>>> git format-patch -1 <sha>
>>>
>>> The <sha> in your case appears to be f415b0c . If it is last commit,
>>> should work with:
>>>
>>> git format-patch -1 HEAD
>>>
>>> Cheers,
>>> Daniel
>>>
>>>
>>> On 05/08/14 11:25, Muhammad Shahzad wrote:
>>>
>>>   These commands do not seem to work for me. Can you please do the
>>> patch?
>>>
>>>  1. adding files work,
>>>
>>> git add modules/corex/corex_nio.c modules/corex/corex_nio.h
>>>
>>> git status
>>> # On branch master
>>> # Changes to be committed:
>>> #   (use "git reset HEAD <file>..." to unstage)
>>> #
>>> #    new file:   modules/corex/corex_nio.c
>>> #    new file:   modules/corex/corex_nio.h
>>> #
>>> # Changes not staged for commit:
>>> #   (use "git add <file>..." to update what will be committed)
>>> #   (use "git checkout -- <file>..." to discard changes in working
>>> directory)
>>> #
>>> #    modified:   modules/corex/README
>>> #    modified:   modules/corex/corex_mod.c
>>> #    modified:   modules/corex/doc/corex.xml
>>> #    modified:   modules/corex/doc/corex_admin.xml
>>> #
>>>
>>>  2. making commit seems to work,
>>>
>>> git commit -m "added support for network io intercept."
>>> [master f415b0c] added support for network io intercept.
>>>  2 files changed, 268 insertions(+)
>>>  create mode 100644 modules/corex/corex_nio.c
>>>  create mode 100644 modules/corex/corex_nio.h
>>>
>>>  3. git format-patch does not work,
>>>
>>> git format-patch
>>>  [no-output]
>>>
>>>  4. Also tried,
>>>
>>> git format-patch master --stdout
>>>  [no-output]
>>>
>>> git format-patch master --stdout > /tmp/nio.patch
>>> [no-output]
>>>
>>>
>>>  I don't know what is wrong, i have git version 1.7.10.4 on debian
>>> wheezy.
>>>
>>> i miss subversion so badly...
>>>
>>>  Thank you.
>>>
>>>
>>>
>>>
>>> On Tue, Aug 5, 2014 at 1:26 PM, Daniel-Constantin Mierla <
>>> miconda at gmail.com> wrote:
>>>
>>>>  Can you do a commit on your local git clone and send the patch? It is
>>>> easier to review the changes. Practically use:
>>>>
>>>> - git add -- to add new files
>>>> - git commit -- to commit changes
>>>> - git format-patch -- to get the commit in a file
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 05/08/14 01:14, Muhammad Shahzad wrote:
>>>>
>>>>  Done all changes as you suggested.
>>>>
>>>>  1. The code is embedded in corex module. Two new files added named,
>>>> corex_nio.h and corex_nio.c. Some minor changes to corex_mod.c to call the
>>>> methods defined in corex_nio.h.
>>>>  2. Event route name changed to event_route[network:msg].
>>>>  3. function name changed from is_msg_obfuscated to is_incoming.
>>>>  4. one additional module parameter is added, named
>>>> network_io_intercept, to enable disable the whole functionality. (default
>>>> is disabled)
>>>>  5. The README file and doc folder is updated with relevant
>>>> documentation, examples and use cases etc.
>>>>
>>>> The code is available for review and download at,
>>>>
>>>> http://webrtc.voip-demos.com/corex.tbz2
>>>>
>>>>  Regarding the actual encryption / compression etc., i am planning to
>>>> add some example PERL / LUA scripts later on.
>>>>
>>>>  Thank you.
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Aug 4, 2014 at 8:19 PM, Muhammad Shahzad <shaheryarkh at gmail.com
>>>> > wrote:
>>>>
>>>>>  Thank you for your valuable suggestions, i appreciate it.
>>>>>
>>>>> I agree about module name, in fact a couple friends have already sent
>>>>> me email privately suggesting the same. May be something like
>>>>> "nio_intercept" would be better, since module only intercepts the network
>>>>> in/output and leaves it to script writer what to do with it.
>>>>>
>>>>>  Regarding embedding in corex, that is interesting, however i need to
>>>>> go through its code to understand it a bit and then attempt to embed it.
>>>>> Later on, i will create separate module which import this functionality
>>>>> from corex and do specific tasks such as compression and faking http etc.
>>>>>
>>>>>  There is a good progress on doubango SDK side as well and at least
>>>>> idoubs would be ready soon (7 to 10 days approx). Then mobile voip
>>>>> developers can fully test this functionality at both ends.
>>>>>
>>>>>  Anyways let me look at corex module and see if and how can i embed
>>>>> this. In the meantime more suggestions and comments on this are warmly
>>>>> welcome from everyone.
>>>>>
>>>>> Thank you.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Aug 4, 2014 at 7:55 PM, Daniel-Constantin Mierla <
>>>>> miconda at gmail.com> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I looked at the code and my conclusion was that the name is a bit
>>>>>> confusing.
>>>>>>
>>>>>> While indeed you can do obfuscation using some embedded language or
>>>>>> other meanings from the config file, the module itself doesn't do anything
>>>>>> related. It executes an event route for network packet in/out.
>>>>>>
>>>>>> Such functionaly is of course useful, just to remind the given
>>>>>> example with obfuscation. But I think a better name to reflect the
>>>>>> behaviour should be given.
>>>>>>
>>>>>> Maybe obfuscate should be a module that implement some algorithms for
>>>>>> obfuscations, like you mentions:
>>>>>> - simply compressing (gz)
>>>>>> - compressing and encapsulation as body in a http request/reply
>>>>>> - itv
>>>>>>
>>>>>> My proposal would be:
>>>>>> - either rename the module or embed in another module (e.g., corex)
>>>>>> what was developed for these event route execution. The event route name
>>>>>> should be related to network reception/transmission (e.g., network:msg).
>>>>>> Also the is_obfuscated_msg() should be something like is_incoming()
>>>>>> - have a new module obfuscate to implement some algorithm as proof of
>>>>>> concept (e.g., gzip -- i guess plenty of code from gzcompress module is
>>>>>> very useful just to take from there). Then others may contribute more, as
>>>>>> they have new ideas or from what you listed (http ecapsulation is at least
>>>>>> interesting, considering many allow port 80 and inspect for http).
>>>>>>
>>>>>> Of course, these are my opinions, so the discussion can go on for
>>>>>> deciding on how to proceed.
>>>>>>
>>>>>> Cheers,
>>>>>> Daniel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 02/08/14 23:57, Muhammad Shahzad wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> As already discussed in detail in following email thread,
>>>>>>>
>>>>>>>
>>>>>>> https://www.mail-archive.com/sr-users@lists.sip-router.org/msg19922.html
>>>>>>>
>>>>>>> The new Kamailio module obfuscate is ready for testing and can be
>>>>>>> downloaded at,
>>>>>>>
>>>>>>> http://webrtc.voip-demos.com/obfuscate.tbz2
>>>>>>>
>>>>>>> It contains full code, with documentation and usage scenarios etc.
>>>>>>>
>>>>>>> Adding Kamailio dev team, can you guys review the code and add this
>>>>>>> module to Kamailio trunk if possible? I will be responsible for its
>>>>>>> maintenance and bug fixes etc. if any.
>>>>>>>
>>>>>>> Thank you.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>   --
>>>>>> Daniel-Constantin Mierla - http://www.asipto.com
>>>>>> http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>>>
>>>>
>>>
>>> --
>>> Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>>
>>>
>>
>> --
>> Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>>
>>
>
> --
> 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 ::: Oct 15-17, San Francisco, USA
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140808/35525bbb/attachment-0001.html>


More information about the sr-dev mailing list