Hi John,

Ideally, you should do something like:
    if (loose_route() || match_dialog() ) {
        ....
    }

In this way you can catch also bogus sequential requests without Route header.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 31.12.2014 14:27, John Nash wrote:
Or may be should try to match_dialog and then relay

On Wed, Dec 31, 2014 at 5:57 PM, John Nash <[email protected] <mailto:[email protected]>> wrote:

    OK got it. I also have a situation where I receive BYE from callee
    which has "To" tag but no route header. As per default script this
    request should not be allowed to go further. Would
    fix_route_dialog(); work or I should just relay it?

    On Wed, Dec 31, 2014 at 1:37 AM, Bogdan-Andrei Iancu
    <[email protected] <mailto:[email protected]>> wrote:

        Hi John,

        1) if the request does not match any dialog it will go on the
        "else" branch where it simply logs the "valid request" - this
        is a simple example, but the idea is that without dialog state
        you cannot check if valid or not; and you maybe do not create
        dialogs for all your calls and maybe not all your sequential
        request are part of a INVITE dialog (you may have re-SUBSCRIBE
        or NOTIFYs)

        2) the function just fixes, you need to send it out as usual
        via the t_relay(),

        Regards,

        Bogdan-Andrei Iancu
        OpenSIPS Founder and Developer
        http://www.opensips-solutions.com

        On 30.12.2014 12:16, John Nash wrote:
        I was looking at usage of validate_dialog() and saw the
        following snippet from module documentation page. If you
        check the else part... as per my understanding if a dialog is
        not found ($DLG_status) will be NULL) it will go to else part
        which indicates a message has To tag but dialog not found.
        How can it be a valid in-dialog request.

             if (has_totag()) {
                 loose_route();
                 if ($DLG_status!=NULL && !validate_dialog() ) {
                     xlog(" in-dialog bogus request \n");
                 } else {
                     xlog(" in-dialog valid request - $DLG_dir !\n");
                 }
             }
        Also there is one more code
            if (has_totag()) {
                 loose_route();
                 if ($DLG_status!=NULL)
                     if (!validate_dialog())
                         fix_route_dialog();
             }

        After calling fix_route_dialog() do I need to just relay the
        message? I mean this function will "fix" the message and
        send?....I was trying to look for some security check where
        someone can inject a route header and a to tag (Bogus of
        course) to reach to my gateways through my proxy.



        _______________________________________________
        Users mailing list
        [email protected]  <mailto:[email protected]>
        http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to