I was wrong in my previous message, but I found a thing, absolutely mysterious for me!
I was shiffering REGISTER requests both on client (Windows/SIP communicator/Microsoft Network Monitor) and server (Linux/Opensips/tcpdump) machines.
And I found, that the content of Contact header differs in network communication dump!
Contact header contains private IP address if captured on client and contains public IP address if captured on server!
How is it possible? Should I suppose some extra agent acting between my client and server, which is doing that? Or this can be an effect of opensips work?
Other words, can tcpdump "see" the results of opensips work, for example it's header substituting?
Unless you have fix_nated_contact, OpenSIPS does not change the contact - make a trace on the machine where opensips is running and check check for the incoming and outgoing messages look like.