The ability to transfer files in Office Communicator is an effective collaboration feature (and is often underused). A file can be shared in the context of a discussion by dragging-and-dropping it directly in the Communicator conversation session window. It is real time, and you avoid the storage headaches and application-context-switch that email attachments can bring.
From experience here the facts that matter most about file transfers and solutions to some common problems.
- The actual data transfer in a file transfer is peer-to-peer. Several SIP transactions are used to setup the session with the OCS server, but the data transfer is then carried out peer-to-peer between the Communicator clients. One exception to this rule is when Microsoft ForeFront Security for Office Communications Server is installed on the OCS server. In this case, all communication goes through the OCS server.
- Ports 6891-6901 are used on the client machines to transfer the files. A random port is chosen between 6891 and 6900 (6891 us used to advertise the randomly chosen port).
- File Transfers across a firewall is not supported in OCS 2007 R2. See the post “Communicator File Transfers Across a Firewall Are Not Supported” for more information.
- File transfers between internal users (i.e. clients inside the firewall) do not involve the Edge server.
- The protocol used to do the transfer is TFTP (Trivial File Transfer Protocol).
Common Problems & Solutions
The best diagnostic to a failed file transfer between two Communicator clients is the usually the error message returned directly in the Communicator client. Here are the most likely reasons for a file transfer failure and what to do about it:
1) Is the File Transfer Going Across a Firewall? For example, if one Communicator client is inside a corporate firewall, and another is logged in externally through the OCS Edge Access role (with no VPN), attempting to transfer a file will fail. This is not a supported scenario in OCS 2007 R2. See the post “Communicator File Transfers Across a Firewall Are Not Supported” for more information.
2) Ensure that File Transferring is Enabled on the OCS server and Check which File Extensions it is Configured to Block.
By default OCS installs with the Intelligent IM Filter activated. You can then configure it to block or allow certain file extensions. By default .zip, .doc, and .xml are allowed, but executable binaries and script extensions are blocked. To see this setting in the OCS management console, navigate to:
- OCS 2007 R2: Front-End or Pool | Filtering Tools | Intelligent Instant Message Filter | File Transfer Filter tab.
- OCS 2007: Front-End or Pool | Application Properties | Intelligent Instant Message Filter | File Transfer tab.
3) Is Either Client Running VMWare Workstation?
If a user has VMware Workstation installed (not just running) on their client machine, Office Communicator file transfers tend to fail. If you disable the extra NICs that VMware creates in your Network Connections folder they should be able to send and receive successfully (thanks to Tom Pacyk for that nugget of information which I have verified as true). Basically the extra network adapters that VMware Workstation or VMWare Server Console create cause Communicator trouble when it is trying to figure out which network adapter is best to use for the file transfer.
4) Is there Network Access Between the Two Client Machines?
A variety of network architectures or DNS settings can prevent two machines from seeing or accessing each other on the network. A simple ping or attempted access to a network share will let you know whether this is an issue.
5) Is any Anti-Virus or Firewall Software Restricting Ports 6891-6901 on either Communicator Client?
Client-side port filtering or intercepting on either client will cause a failure. The most likely candidates for this is anti-virus software or firewall software.
6) Are File Transfers Explicitly Disabled on either Client Machine via Group Policy?
File transfers can be disabled through a Group Policy setting (or registry setting). The setting is documented in the Microsoft Office Communications Server 2007 R2 Client Group Policy Documentation.
7) Are ports 6891-6901 Accessible on any OCS Servers with Forefront Security for OCS Installed on it?
Forefront Security for OCS can be used to scan Communicator file transfers for viruses. For external file transfers, the firewall needs to be configured to allow inbound connections for the default Communicator file transfer ports. These default ports can be changed via registry keys. See Introduction to Forefront Security for Office Communications Server for more information.
Are the Communicator Clients Up-To-Date?
Communicator clients with the latest updates minimize the chances of a known issue causing a problem.
Read more about the April 2010 updates here: http://blog.insideocs.com/2010/04/15/april-2010-updates-for-communicator-2007-r2-and-live-meeting/.
If all else fails, enabling event logging in the Communicator client (Options | General | Turn on Logging in Communicator) and checking the event logs after a failed file transfer is usually helpful. If you want to try to debug the actual file transfer SIP session, a great article on digging deeper into that is available here: A deep dive into the Office Communicator 2007 R2 file transfer process.
Another good resource is this TechNet article: Why Are My Users Unable to Use Communicator 2007 R2 to Transfer Files?