Compare commits

...

4 commits

Author SHA1 Message Date
Moritz Kempe
2c925a1aa5 Merge remote-tracking branch 'grimm/main' 2024-08-12 14:55:32 +02:00
Moritz Kempe
c3b3314c92 minor corrections and huge corrections 2024-08-12 14:49:10 +02:00
Moritz Kempe
044a2fc9f3 Merge remote-tracking branch 'grimm/main' 2024-08-12 13:45:23 +02:00
Moritz Kempe
ea37a75ba0 added libspandsp-dev dependency and note to ATO modem command 2024-08-12 13:44:52 +02:00

View file

@ -6,7 +6,7 @@ Linux Fax Stack using Hylafax and t38modem.
This guide was created using information from the opalvoid wiki (http://wiki.opalvoip.org/index.php?n=Main.HomePage) This guide was created using information from the opalvoid wiki (http://wiki.opalvoip.org/index.php?n=Main.HomePage)
## Softwarestack ## Software stack
### ptlib ### ptlib
(legacy) library for doing a little bit of everything. (legacy) library for doing a little bit of everything.
@ -15,9 +15,9 @@ This guide was created using information from the opalvoid wiki (http://wiki.opa
Voice codec used by e.g. mumble. Voice codec used by e.g. mumble.
### t38modem ### t38modem
Emulates a serial modem from SIP connetion Emulates a serial modem from SIP connection
### Hylafax ### HylaFax
Enterprise grade software, managing physical and emulated modems. Enterprise grade software, managing physical and emulated modems.
Has some problems: https://github.com/lexbailey/compilerfax/blob/main/hylafax_is_broken Has some problems: https://github.com/lexbailey/compilerfax/blob/main/hylafax_is_broken
@ -32,7 +32,7 @@ For this guide we'll use ptlib 2.18.6 and opal 3.18.6.
#### Installing Requirements #### Installing Requirements
First we'll need some packages First we'll need some packages
```bash ```bash
apt-get install build-essential git wget pkg-config libssl-dev libsrtp2-dev -y apt-get install build-essential git wget pkg-config libssl-dev libsrtp2-dev libspandsp-dev -y
``` ```
#### Download sourcecode #### Download sourcecode
Versions: Versions:
@ -56,7 +56,7 @@ make install
``` ```
#### t38modem #### t38modem
If you are getting error about `-1` not being able to be casted to a `long unsigned int` due to `-Wnarrowing` inside `dle.cxx`, you can add `-Wno-narrowing` after the `CPPFLAGS` in the Makefile to disable this error If you are getting error about `-1` not being able to be cast to a `long unsigned int` due to `-Wnarrowing` inside `dle.cxx`, you can add `-Wno-narrowing` after the `CPPFLAGS` in the Makefile to disable this error
```bash ```bash
git clone https://github.com/hehol/t38modem git clone https://github.com/hehol/t38modem
@ -245,6 +245,9 @@ sudo chmod 700 -R /etc/t38modem/config/
- Pitfalls: - Pitfalls:
- If you are already connected to your SIP server it may not give proper response codes. My provider returns `500 Internal Server Error` - If you are already connected to your SIP server it may not give proper response codes. My provider returns `500 Internal Server Error`
- Test the command before running the init script! - Test the command before running the init script!
- Do not try to used `ATO` to switch to a data connection, t38modem will return `ERROR`.
Thats hardcoded in `pmodeme.cxx` in `void ModemEngineBody::HandleCmdRest(PString &resp)`.
Dont let that hodld you back.
### systemd service ### systemd service
If you want to run a fax server, you can create a systemd service template to let your emulated fax modem start automatically on system boot. If you want to run a fax server, you can create a systemd service template to let your emulated fax modem start automatically on system boot.
@ -277,16 +280,14 @@ sudo systemctl start t38modem@XX.service
<hr/> <hr/>
## Install HylaFax ## Install HylaFax
These instructions were tested using Hylafax version 6
- Version 6
- `sudo apt install hylafax-server` - `sudo apt install hylafax-server`
- Set Postfix Configuration to **Local only** in dpkg-reconfigure menu - Set Postfix Configuration to **Local only** in dpkg-reconfigure menu
## Configure HylaFax
- Run `sudo faxsetup` - Run `sudo faxsetup`
- Add new modem - Add new modem
- Enter correct modem port (`ttyT38-XX`) - Enter correct modem port (`ttyT38-XX`)
- Enter dialing configuration - Enter dialing configuration (see Dial Rules for Eventphone EPVPN)
- Accept default configuration for everything else - Accept default configuration for everything else
- It should automatically detect it to be a `T38FAX` modem - It should automatically detect it to be a `T38FAX` modem
- Look at `man sendfax` to send faxes - Look at `man sendfax` to send faxes
@ -298,7 +299,7 @@ sudo systemctl start t38modem@XX.service
- If your call is cleared because it `Could not find common media capabilities` t38modem may not have been able to load PTLib or Opal. Check your library paths! - If your call is cleared because it `Could not find common media capabilities` t38modem may not have been able to load PTLib or Opal. Check your library paths!
## Cron ### Cron
- Alias your fax admin account as `FaxMaster` (`/etc/aliases`) - Alias your fax admin account as `FaxMaster` (`/etc/aliases`)
@ -316,19 +317,21 @@ FaxMaster: $USER # replace with fax admin account
25 23 * * * sh /usr/sbin/faxcron | mail FaxMaster 25 23 * * * sh /usr/sbin/faxcron | mail FaxMaster
``` ```
## FaxDispatch ### Dial Rules for Eventphone EPVPN
If you want to use Eventhone EPVPN, you can apply the following dial settings onto your modems.
- https://legacy.hylafax.org/content/Advanced_Permissions_with_6.0 You can find the config at `/etc/hylafax/config.ttyT38-1`.
In this case `ttyT38-1` is the modem block device.
## Dial Rules for Eventphone
``` ```
# /etc/hylafax/config.ttyXX # /etc/hylafax/config.ttyXX
CountryCode: 1 CountryCode: 1
AreaCode: 999 AreaCode: 999
``` ```
## TODO ## FaxDispatch
- https://legacy.hylafax.org/content/Advanced_Permissions_with_6.0
# TODO
- **TODO: Test on Debian / RockPi / RaspberryPi** - **TODO: Test on Debian / RockPi / RaspberryPi**
- **TODO: Test on Eventphone Infra** - **TODO: Test on Eventphone Infra**
- **TODO: Package t38modem with service files and config** - **TODO: Package t38modem with service files and config**