<!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>