@jesdynf and @brady.miller, the thing I’m having quite a bit of difficulty with is getting the Hylafax interface to work from within the container. I had been able to use the Hylafax interface quite well (with some customization of faxq.php, fax_view.php, and fax_dispatch.php which I never finished submitting to the community but will circle back to at some point) with OpenEMR on bare metal – but not so here. I felt close to the finish line but now feel close to abandoning ship. Perhaps you can talk me back from walking off the plank!
My general setup before:
- OpenEMR on Ubuntu 18.04
- Two independent clinics with multi-site setup
- Hylafax server on same machine as OpenEMR
- 2-line Mainpine modem on machine
- Customization of faxing php files so that incoming faxes for one clinic get put in the archives folder, which then gets called by faxstat -a instead of -r for presentation on the interface (I used SESSION[‘site_id’] to help make the switch).
Using containers currently:
- Two openemr containers, one for each clinic (I felt like separating them, since it was so easy for me to deploy them independently and access them through different ports). Platform is Debian 10.
- The Debian 10 machine has no modem port for Mainpine modem. So Hylafax server is on a different machine in the same network.
- That different machine has openemr containers for the two clinics running as well. The idea was to mirror the instances, for physical redundancy. (The Hylafax server machine is much slower, so I want it to be the backup).
So far so good. The problem is the Hylafax interface. Everything works through faxstat calls. I installed Hylafax INSIDE the containers to get faxstat, and faxstat works when called from containers on the SAME machine as the Hylafax server. But it hangs when called from containers on the DIFFERENT machine. Output from faxstat -v:
Trying 192.168.10.28 [2] (192.168.10.28) at port 4559…
Connected to 192.168.10.28.
220 openemrhost server (HylaFAX ™ Version 7.0.3) ready.
-> USER root
230 User root logged in.
-> MDMFMT
200 Modem %m (%n): %s
-> EPRT |1|192.168.250.4|42835|
200 EPRT command successful.
-> LIST status
It just hangs there and times out. The strace output says this:
read(3, “425 Cannot build data connection”…, 1024) = 57
writev(1, [{iov_base=“425 Cannot build data connection”…, iov_len=55}, {iov_base="\n", iov_len=1}], 2) = 56
The only difference from one machine to the other is that I’m using a Docker socket proxy on the one that’s not working. I tried to run again on that machine without using the socket proxy, but that didn’t fix the problem.
My questions:
- What could be going on with above?
- Enscript doesn’t exist in the openemr container. With all these missing dependencies (faxstat, enscript,etc.), must I end up needing to learn how to build my own custom image to get all this to work and easily deploy?
- My custom solution for separation of faxes via site_id is now broken, since site_id is default for both. They come through different modem devices, so is that a variable I can use to separate?
- Related question: is there ONE place where I can see all the different environment variables used in OpenEMR? That gets back to the original thread.
Apologize for the long-windedness, but would appreciate guidance. I need to get faxes working again before the people who rely on the EMR hurt me. : )
–Venu