Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 121775
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T04:01:26+00:00 2026-05-11T04:01:26+00:00

I have a Windows application that utilizes a 3rd-party tool ( FaxMan ) to

  • 0

I have a Windows application that utilizes a 3rd-party tool (FaxMan) to send faxes via a COM port attached to the PC. In order to stress test my application I want to create some virtual COM ports that pretend to have fax modems attached. I then want to ‘spoof’ the sending of faxes, without physically sending anything. The virtual COM ports would need to respond to standard AT commands as if the fax was being sent. The ability to spoof failures would be an added bonus.

My first thoughts are using a virtual COM port driver to redirect to a telnet or other TCP session – I could then have a TCP server that pretends to go through the fax motions. However, I am happy to pay for a component if one exists.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T04:01:27+00:00Added an answer on May 11, 2026 at 4:01 am

    I worked on this problem for several years, developing a LAN fax product. I doubt you can do it well.

    Developing a virtual COM driver means developing a kernel driver (unless you can buy one off the shelf): which is doable (I did it) but I’d guess it’s far more trouble than it’s worth (I’d be surprised if it’s worth your while).

    Another problem is that there are a variety of fax modems and fax modem standards (and you say you’re hoping to emulate one well enough to fool FaxMan).

    Another (essential) problem is that the simpler (non-error-correcting) fax protocols are a (hard) real-time protocol: there is some (more or less) buffering on the fax modem, but the PC attached to the fax modem cannot to afford to underrun when sending or to overrun when receiving … which means that redirecting this traffic via telnet (with the TCP timers and buffers) either breaks the fax session at worst (FaxMan will time out) or at best mean that your testing isn’t representative of what the real-world (non-emulated) performance will be.

    What are you trying to stress-test anyway: your application, or the third-party FaxMan?

    I suggest that the cheapest solution and the most realistic test would be using real hardware: real COM ports, real fax modems, and real (or, possibly, simulated) telephone lines.


    Edit to answer the questions from the comments in Michael’s answer

    Assuming that the transport of the data is a small problem (e.g. because you can simply connect two serial ports back to back), is writing software which emulates a fax modem a small problem?

    It might be small: if your load test is merely ‘send fax data to the bit bucket’ then your emulated modem mostly just needs to respond ‘OK’ to every/anything that looks like an AT command, plus various other responses to the various fax-specific AT+F_whatever_ commands. But that’s a pretty low-fidelity, not a very stringent, test.

    That would be pretty simple – but isn’t there some protocol involved in the FAX data transmission? Or is the protocol just a variant of the AT command set, and spoofing an ‘OK’ is all there is to it? I honestly don’t know, but I assumed there would be a somewhat more complex protocol.

    The telephony protocols have names like ‘T.4’ and ‘T.30’. The PC-to-faxmodem protocol is usually a protocol called ‘class 1 fax’ or ‘class 2 fax’. The latter (‘class 2’ or ‘class 2.0’) is the higher-level of the two: more ASCII and less binary data, not so timing-sensitive (class 1 is sensitive to 10s of msec iirc), because it encapsulates/wraps more of the underlying T.30 negotiation than class 1 does; it consists of extended AT commands (i.e. AT+F_something_ commands, and their responses) plus a dump of the binary-encoded fax image data.

    Some of the responses are more than just ‘OK’ (i.e. they represent the available/negotiated fax session parameters) but (in class 2 rather than class 1) they’re ASCII-encoded rather than binary, so not too difficult really at all.

    There has to be some sort of handshaking, right? Otherwise a plain, old FAX machine would likely lose a bunch of data when it was loading a new page.

    Yes there’s some handshaking (‘May I send now?’) between pages (i.e. before each page). A load-testing emulation which isn’t testing the timing would just respond ‘yeah, go ahead (I’m only going to be dumping the data into the bit bucket anyway without even looking at it, so what do I care)’ to the handshake enquiry.

    The emulation would also have to watch the binary image data (which it’s getting from the PC) for <DLE><ETX> and <DLE><DLE>, in order to respond OK at the end of the PC-dumps-image-data-to-the-modem.

    I don’t know what timers might be built into the FaxMan application (whether or not you might need to add artifical delays to your emulated responses, to prevent FaxMan’s realising that the responses are abnormally quick): maybe not, but maybe.

    There may or may not be any hand-shaking within the page:

    • With older fax machines/fax protocols, there isn’t: instead the devices negotiate ‘fax session parameters’, including the baud rate, before the page: they negotiate a synchronous baud rate which both ends are able to support. That (ability to handle a whole page-worth of data, synchronously) is part of why it’s a hard-real-time protocol.
    • Newer fax machines / fax protocols support ‘error correction’ within each page: the page is sent in smaller (but still synchrnonous) chunks: and each chunk acknowledged, or NAKed and retransmitted.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 104k
  • Answers 104k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer The best way is not to use recursion. These stuff… May 11, 2026 at 8:32 pm
  • Editorial Team
    Editorial Team added an answer Learning to program in the .NET CF is about learning… May 11, 2026 at 8:32 pm
  • Editorial Team
    Editorial Team added an answer Have you tried: progress = event.bytesLoaded/event.bytesTotal; bytesTotal / bytesLoaded should… May 11, 2026 at 8:32 pm

Related Questions

I need to process large image files into smaller image files. I would like
Hey all, I'm pulling my hair out on this one. I've checked all my
I have a web application that makes heavy use of the Session state to
I currently have a database that gets updated from a legacy application. I'd like

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.