Fax tone parsing

A high level of quality assurance for fax reception is required at medical clinics since faxing is the primary technology used for communication between participant's pharmacies and their prescribing physician at the clinic. A combination of SpanDSP, Asterisk call files, Asterisk MixMonitor() application, and Nagios provides a solution.

The SpanDSP project offers a modem connect tone library capable of parsing individual fax tones from an audio stream. Using this library I was able to write a simple CED tone check for nagios (based on spandsp's fax_decode test).

A remote asterisk server, with PSTN connectivity provided by callcentric, generates a call file via cron which calls the target fax number, records both channels of the call, then processes the recording with the custom nagios CED tone check.

Custom migration to OpenEMR

OpenEMR offers a few examples for migration that can provide a start for those looking to migrate data to OpenEMR which I was able to use to start the process. Since the example code was for a system different than our custom Django application I had to re-write it to migrate our participant data. This was an iterative process as we added our custom OpenEMR forms and continued into the early stages of OpenEMR deployment. Creating a custom migration script requires intimate knowledge of the schemas and API's of both systems.

IT Manager

As the IT Manager of St. James Infirmary my responsibilities are IT asset management, network management, VoIP system management, and development and migration to OpenEMR.

Custom HA Uplink

Zocalo coffee shop migrated to digital registers with a solution from square. While these devices are able to process transactions off-line, some types of transactions need the square registers to be on-line. At the time the coffee shop had only one up-link provided by Comcast. Comcast was providing good service at the time, but with the increased demand for the registers to be on-line they needed higher availability.

Smart Shack

I live in a a really nice cottage behind the house of my roommates. When I moved in a lot needed to be done to modernize and I took the opportunity to learn more about general construction, electrical installations, and industrial wiring concepts.

Linux Kickstart installations

This solution was created to solve the problem of enabling hands free remote installations of Linux boxes. The objects that implement this solution are; a kick-start server, a networked rpm based Linux box (client), and the kick-start rpm. The kickstart server is configured as described in the resources section. Some of the code and ideals here are from coworkers at

Subscribe to RSS - Linux