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
Hi aft,
I think to do what you want you can save Contact field + callid pair taken from the INVITEs that comes from your side. 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.
For example to write to R-URI value from $var(correct_ruri) you can use *$ru = $var(correct_ruri);* statement.
What about a place where contact can be saved, i think htable will be the nice one. Please pay attention to "autoexpire" parameter of htable module. You should take care about the staled records to avoid memory usage problems.
Cheers, Vitaliy Aleksandrov