[This answer is valid for CC V4.1 or later. Solution 1, our recommended solution, requires calibre 2.32 or later.]
There are three solutions to ensuring that file names for a book are the same on multiple devices regardless of the delivery path. You might want to use one of these solutions if you are using a reading app that is capable of syncing reading positions across devices, such as Moon+.
CC settings mentioned below are found in CC / Settings / File names.
If none of the CC file name settings are chosen, CC's wireless device connection will use the file name provided by calibre, and CC's Cloud and Content Server connections will use the default CC template.
Solution 1: Use CC template everywhere (recommended. Requires calibre 2.32 or later)
If you use more than on CC connection type (Cloud, Content Server, Wireless Device) then the recommended solution is to check the box "Use CC template everywhere". This tells CC to ignore any file name provided by calibre, instead computing the file name itself using a simplified form of a calibre file save template. The default template is
{title} - {authors}
If you don't want to use the default template then after you check the box you should go to book details for some book and select "Edit file name template" on the book details menu. A dialog will open showing you the current template and what file name it generates for the book you see in book details. See What can I use in a CC file name template? for more information about CC file name templates.
Note: unless you also check the box "Replace existing book files" in CC's settings, sending a book to the device via the wireless device that calibre knows is already on the device will not evaluate the template. Instead it will overwrite the existing book file to prevent having multiple copies of the book on the device. Checking the "Replace ..." box tells CC to evaluate the save template, renaming the existing book file if necessary
Solution 2: Use calibre's unique book ID as the file name.
Check CC's setting "Use book ID as filename" (Settings / File names). This tells CC to use the book's unique ID as the file name no matter how the book gets to the device. Although this works well for syncing (which is why the option was added), it has the problem that the book file names become meaningless; a series of numbers. Don't use this solution if you ever look at the file names of books on the device.
Solution 3
If you use the content server but do not use CC Cloud, check "Use calibre's file name" in CC's settings. This tells CC to ask the content server for the file name the wireless device would use.
This solution works if you are running the content server in calibre's GUI. If you are running it from the command line then the content server will not be able to get the file name from the wireless device, in which case you must use the first or second option.
Don't use this option if you use CC's cloud connection.