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 <mico...@gmail.com <mailto:mico...@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
    <mico...@gmail.com <mailto:mico...@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 <http://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
        <mico...@gmail.com <mailto:mico...@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 <mico...@gmail.com <mailto:mico...@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
                <shaherya...@gmail.com
                <mailto:shaherya...@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 <mico...@gmail.com
                    <mailto:mico...@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://twitter.com/#%21/miconda> -
                        http://www.linkedin.com/in/miconda




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



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



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



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

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to