<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    <div class="moz-cite-prefix">On 8/23/12 11:54 AM, <a class="moz-txt-link-abbreviated" href="mailto:martian@centrum.sk">martian@centrum.sk</a>
      wrote:<br>
    </div>
    <blockquote cite="mid:20120823115419.63CC468C@centrum.sk"
      type="cite">
      <p style="padding:0 0 0 0; margin:0 0 0 0;">Hello to everybody.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">I am currently working
        with Kamailio 3.3.1 on RedHat.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">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).</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">I have found that
        there needs to be a port included in the "alias" variable for
        the loose_route function to work correctly.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">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).</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">My alias:</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">alias="domain.ch:5060"</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">Examining default
        routing logic, I found the problem here:</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">if
        (is_method("REGISTER") || from_uri==myself)</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">{</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;"><span
          class="Apple-tab-span" style="white-space: pre;"> </span>#
        authenticate requests</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;"><span
          class="Apple-tab-span" style="white-space: pre;"> </span>...</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">}</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">The "from_uri==myself"
        was no longer evaluated as true, because there was a port at the
        end of the alias.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">The FROM Header of the
        INVITE messages looks like:</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">From: "acc1"
        <a class="moz-txt-link-rfc2396E" href="sip:acc1@domain.ch">&lt;sip:acc1@domain.ch&gt;</a>;tag=12345</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">..so .. no port number
        there.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">Btw, I have fixed this
        with replacing the "myself" list with my own defined variable
        MY_DOMAIN.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">#!define MY_DOMAIN
        <a class="moz-txt-link-rfc2396E" href="mailto:.*@domain.ch">".*@domain.ch"</a></p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">So now the condition
        looks like this:</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">if
        (is_method("REGISTER") || from_uri=~MY_DOMAIN)</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">{</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">...</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">}</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">&nbsp;</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">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.</p>
      <p style="padding:0 0 0 0; margin:0 0 0 0;">Also, a valid
        description of this behavior (when using port in alias) would be
        appreciated.</p>
    </blockquote>
    <br>
    if you enclose the value of the alias parameter in double quotes,
    then it is taken as string value. If you want to set it to a
    host:port, then remove the double quotes:<br>
    <br>
    <p style="padding:0 0 0 0; margin:0 0 0 0;">alias=domain.ch:5060<br>
    </p>
    <p style="padding:0 0 0 0; margin:0 0 0 0;"><br>
      Why do you say the loose_route() was working strangely? Do you add
      the hostname as record-route, not the IP address? Detail more
      about what you think is wrong with record routing/loose routing.<br>
      <br>
    </p>
    <br>
    Cheers,<br>
    Daniel<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - <a class="moz-txt-link-freetext" href="http://asipto.com/u/kat">http://asipto.com/u/kat</a></pre>
  </body>
</html>