2

I am developing ASP.NET MVC application as a part of summer experience job from my college. I have a requirement where i need to implement a fax functionality. Because i am still student, and this is my first real application, i'm kinda confused how to make this function and what libraries should i use. Third party services (such as mail to fax and so on) are not considered due to the nature of application - it is going to be a service that help doctors to get access to patients encounters. This data is private and cannot be sent to any third party service.

I am using Visual Web Developer 2008 express edition if this matters.

The fax machine is going to be installed on the server, and faxes will be sent from there. I am looking for advice or, maybe some good resources that can help me. Thanks.

Alex
  • 608
  • 4
  • 11
  • 25
  • If you're going to fax using a faxmodem, you need to look at what tools it offers you. Usually, it involves something that looks like a printer driver. – Steven Sudit Aug 19 '10 at 15:10
  • Once I had to write a testing-tool for the fax-ability of a mobile... that was really a hard task. Unfortunately the protocol for fax is rare... but using monitoring tools you can easily monitor what commands have been send to the modem. What you finally need is to set up the communication protocol to your modem/faxmodem and create a TIF as document which will be sent... all possible with "only" the .NET framework. For the modem you will need the AT-commands - if you're using serial port communication. By the way: good luck! – OlafW Aug 19 '10 at 15:24
  • Olaf isn't wrong, but I'd recommend using a high-level an API as possible. – Steven Sudit Aug 19 '10 at 15:47

3 Answers3

5

I've worked on faxing in our application. Our app integrates with various fax services through configuration options. I recommend buying or using something off-the-shelf and integrating with it. Some examples include:

  • Microsoft Fax Server, free with existing Windows Server licenses.

  • Faxman, which costs a nominal fee, works great. Can fax PDFs with an optional add-on.

  • RightFax is a very expensive solution. Can fax PDFs with an optional add-on.

You might look into the Adapter pattern to abstract the faxing implementation from your service.

Paul Williams
  • 16,585
  • 5
  • 47
  • 82
2

The easiest approach here would be to use some sort of email to fax facility--either hosted locally or in the cloud--to send the faxes. Will make your life much, much easier as you won't have to take it back to the old school and get down with dialtones.

If you do have to send stuff, you should probably look at externalizing the operation to your own service for a few reasons:

1) testability/maintainability/flow -- if its external you can create a stubbed API and write your web app to talk to that first, then get down with dialtones later. But its not a blocking issue. And your test suite doesn't need a faxmodem.

2) usability -- faxes take a while to send, if they succeed at all. Passing off the request quickly and telling a user its being sent then notifying them of success makes a bit more sense then a really long running "PROCESSING" graphic.

Wyatt Barnett
  • 15,573
  • 3
  • 34
  • 53
  • i can't use email to fax facility, as my bosses want me to create this functionality, and i have no idea how to make it. And what externalizing means? creating another app for sending faxes? – Alex Aug 19 '10 at 21:20
  • 2
    Well, I can't solve the politics for ya, though bosses usually understand "I can make this in 6 months, or we can be up and running tomorrow for cheaper with X". But if you must build it, I would separate the sending to a separate app/service that just sends queued faxes. – Wyatt Barnett Aug 19 '10 at 22:03
0

I'd start by looking at TAPI, which is Microsoft's Telephony API. There are .Net wrappers listed in the Wikipedia page.

Stewart Ritchie
  • 926
  • 7
  • 13