[OpenSIPS-Users] Validate dialog confusion

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Jan 6 16:19:15 CET 2015


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 <john.nash778 at gmail.com 
> <mailto:john.nash778 at gmail.com>> 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
>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> 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
>>         Users at lists.opensips.org  <mailto:Users at lists.opensips.org>
>>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20150106/91fd9770/attachment.htm>


More information about the Users mailing list