How does file transfer work?

Hi community,

I wonder if how does file transfer work in Openfire server? I know that, normaly, when users send a file, it will use P2P first, if it fails, it try to transfer via file transfer proxy. So, I want to know how to negotiate protocols for transfering file when users start file transfer.

Please help,