I might be missing something with the limited information you gave but if all 4 cities have an IP connection between each other, put a server in one location and have them all attach to that jabber server on it.
As long as all offices can see each other, there’s really not much to it. designate a box as the jabber server in an office and have the user’s client attach to that server.
I have 4 independients locations. All them with independient IP. I want to configure in a location a openfire server but I need to know how I have to open ports in firewall to that other 3 locations can send petitions to connect to the server.
I only want to mount a unique openfire server to the 4 locations.
I think so my problem is finished. I have opened 5222 port in firewall where is installed openfire server and when I try to connect me from other 3 localitions with spark I enter public IP, user and pass and I can connect me.
What other ports have I open to send files and other functions?
for local p2p file transfers within one office nothing special is needed. For file transfers between office A and B Spark should use the in-band protocol (sending the file as chunks within normal messages).