|
| 1 | +# FaxSync |
| 2 | + |
| 3 | +Windows faxes are not stored in the filesystem like [normal systems](https://en.wikipedia.org/wiki/Linux) do, so you have to do an entire song and dance to get all faxes on a machine. |
| 4 | + |
| 5 | +This should build a `FaxSync.exe` executable, which can then be used to either extract the last N days of faxes (default 1 week): |
| 6 | + |
| 7 | +``` |
| 8 | +> FaxSync.exe \\myfaxserver 10 |
| 9 | +``` |
| 10 | + |
| 11 | +Or you can show some information about the fax server |
| 12 | + |
| 13 | +``` |
| 14 | +> FaxSync.exe \\myfaxserver info |
| 15 | +``` |
| 16 | + |
| 17 | +## Creating a windows fax service api client in VB |
| 18 | + |
| 19 | +Don't do this. |
| 20 | + |
| 21 | +I cannot stress that enough--do not do this. It's a soul crushing journey through incomplete documentation, old Windows APIs, and boneheaded design decision. |
| 22 | + |
| 23 | +If you do, here are some notes: |
| 24 | + |
| 25 | + - Faxes on windows are handled by an archaic API. Inbound faxes are hidden on the filesystem, locked away in a proprietary database. |
| 26 | + - Access is provided through the `FAXCOMEXLib` .COM library, which you can use through .NET systems |
| 27 | + - An example is provided from the MS docs (see second link below). This is helpful, but: |
| 28 | + - Note that to use this, you must enable the `FAXCOMEXLib` .COM reference. See Project Explorer > References > Add Reference |
| 29 | + - The specific reference is "Microsoft Fax Service Extended COM Type Library", version 1.0. Something tells me there won't be a version 2.0. |
| 30 | + - You'll also need to add a `Imports FAXCOMEXLib` to the top of the file. |
| 31 | + - Skip the line which has the `objFaxServer.Folders.IncomingArchive.Refresh()` method, this will fail with `0x80070032 Operation Failed.` |
| 32 | + - Googling this will not help. Why is it there? Why is it like this? A mystery lost to the ages. |
| 33 | + - `FaxIncomingMessage`'s `TransmissionEnd` date does not exist. It's an invalid date. |
| 34 | + - (At least with our fax system), `FaxIncomingMessage`'s `SenderFaxNumber` doesn't exist, rather it's a part of the `CallerId` string |
| 35 | + |
| 36 | +Useful links: |
| 37 | + - [Fax Server Documentation](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-faxserve) |
| 38 | + - [Open a fax from the Incoming Fax Archive](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-opening-a-fax-from-the-incoming-archive) |
0 commit comments