Hello to everybody.

I am currently working with Kamailio 3.3.1 on RedHat.

The "loose_route" function was not working correctly and I observed some very strange behaviour (not as one described in the documentation of the function).

I have found that there needs to be a port included in the "alias" variable for the loose_route function to work correctly.

However, upon adding the port to alias, the INVITE messages were no longer authenticated (Kamailio just accepted them and didn't send proxy-auth header in 407 message).

 

My alias:

 

alias="domain.ch:5060"

 

Examining default routing logic, I found the problem here:

 

if (is_method("REGISTER") || from_uri==myself)

{

# authenticate requests

...

}

 

The "from_uri==myself" was no longer evaluated as true, because there was a port at the end of the alias.

The FROM Header of the INVITE messages looks like:

 

From: "acc1" <sip:acc1@domain.ch>;tag=12345

 

..so .. no port number there.

 

Btw, I have fixed this with replacing the "myself" list with my own defined variable MY_DOMAIN.

 

#!define MY_DOMAIN ".*@domain.ch"

 

So now the condition looks like this:

 

if (is_method("REGISTER") || from_uri=~MY_DOMAIN)

{

...

}

 

 

I am not sure if this is a bug that needs to be fixed or not. I am just pointing my finger at it and I hope it will contribute to the development.

Also, a valid description of this behavior (when using port in alias) would be appreciated.

 

Cheers,

Martin