<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <br>
    <blockquote
cite="mid:CAGuaRCtBvqzMPvNL98jGdTs_ZR3zZK4qQUmG7zdg75jmd3+_vw@mail.gmail.com"
      type="cite">
      <pre wrap="">Thanks for the reply.

We have already came to the same conclusion by some testing in our
lab. It seems its a bug in provider which not constructing BYE message
properly.

But i'm interested in if its possible to detect the fault in this BYE
and construct a new one and then relay it to the UAC.

I mean can i do this :

contact-header = INVITE's contact-header
if (contact-header != BYE's ruri)
{
  construct BYE message with contact header
  t_relay()
 }

Cheers
aft

</pre>
    </blockquote>
    <br>
    Hi aft,<br>
    <br>
    I think to do what you want you can save Contact field + callid pair
    taken from the INVITEs that comes from your side.<br>
    Then when BYE comes from such provider you should find a correct
    Contact for that call-id and if it exists and not equal to R-URI you
    can rewrite it.<br>
    <br>
    For example to write to R-URI value from $var(correct_ruri) you can
    use <b>$ru = $var(correct_ruri);</b> statement.<br>
    <br>
    What about a place where contact can be saved, i think htable will
    be the nice one.<br>
    Please pay attention to "autoexpire" parameter of htable module. You
    should take care about the staled records to avoid memory usage
    problems.<br>
    <br>
    Cheers,<br>
    Vitaliy Aleksandrov<br>
  </body>
</html>