Here is the new function you added:

+int pv_get_raw_msg(sip_msg_t *msg, pv_param_t *param,
+	pv_value_t *res)
+{
+    str sb;
+    if(msg==NULL || res==NULL)
+        return -1;
+    sb.s = msg->buf;
+    sb.len = msg->len;
+    return pv_get_strval(msg, param, res, &sb);
+}

And next is the existing function for $mb:
int pv_get_msg_buf(struct sip_msg *msg, pv_param_t *param,
        pv_value_t *res)
{
    str s;
    if(msg==NULL)
        return -1;
   
    s.s = msg->buf;
    s.len = msg->len;
    return pv_get_strval(msg, param, res, &s);
}

They are the same apart of variables, so no matter where they will be used (before or after event route processing), they point to the same buffer, therefore they will return the same.

Cheers,
Daniel

On 08/08/14 12:23, Muhammad Shahzad wrote:
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@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@gmail.com> wrote:

On 05/08/14 11:55, Muhammad Shahzad wrote:

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@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@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@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@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.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


-- 
Daniel-Constantin Mierla

Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany ::: Oct 15-17, San Francisco, USA


-- 
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