From what I understand fax over VoIP is very unreliable due to the real-time requirements of the fax protocol. Simply using VoIP to send fax message to POTS-connected fax machines is hence not possible.
Besides from proprietary fax API:s (such as sending fax messages via a company specific SOAP API), what standards based protocols are there for sending fax messages programmatically over IP?