restructurized and added Debian 12 guide
This commit is contained in:
parent
d8bcc6864f
commit
d9bacacbd0
1 changed files with 96 additions and 20 deletions
116
README.md
116
README.md
|
@ -1,26 +1,96 @@
|
|||
# Linux Fax Stack Setup (HylaFax & SIP)
|
||||
|
||||
- ***This guide is WIP***
|
||||
- Ubuntu 20.04 LTS VM (VirtualBox, LXC?)
|
||||
- **TODO: Test on Debian / RockPi / RaspberryPi**
|
||||
- **TODO: Test on Eventphone Infra**
|
||||
Linux Fax Stack using Hylafax and t38modem.
|
||||
|
||||
<hr/>
|
||||
***THIS GUIDE IS WIP***
|
||||
|
||||
## Setup t38modem
|
||||
This guide was created using information from the opalvoid wiki (http://wiki.opalvoip.org/index.php?n=Main.HomePage)
|
||||
|
||||
- **TODO: Package t38modem with service files and config**
|
||||
## Softwarestack
|
||||
|
||||
## Opal
|
||||
### ptlib
|
||||
(legacy) library for doing a little bit of everything.
|
||||
|
||||
- http://wiki.opalvoip.org/index.php?n=Main.HomePage
|
||||
### Opal
|
||||
Voice codec used by e.g. mumble.
|
||||
|
||||
### t38modem
|
||||
Emulates a serial modem from SIP connetion
|
||||
|
||||
### Hylafax
|
||||
Enterprise grade software, managing physical and emulated modems.
|
||||
|
||||
Has some problems: https://github.com/lexbailey/compilerfax/blob/main/hylafax_is_broken
|
||||
|
||||
## Operating Systems
|
||||
Unfortunately this software stack uses a lot of legacy software. Because of this, this guide was only tested on specific software versions
|
||||
|
||||
### Debian 12 Bookworm
|
||||
For Debian 12, we´ll only install dependencies which are hard requirements.
|
||||
For this guide we'll use ptlib 2.18.6 and opal 3.18.6.
|
||||
|
||||
#### Installing Requirements
|
||||
First we'll need some packages
|
||||
```bash
|
||||
apt-get install build-essential git wget pkg-config libssl-dev libsrtp2-dev -y
|
||||
```
|
||||
#### Download sourcecode
|
||||
Versions:
|
||||
- libpt (2.18.6) https://sourceforge.net/projects/opalvoip/files/v3.18 Cygni/Stable 6/
|
||||
- opal (3.18.6) https://sourceforge.net/projects/opalvoip/files/v3.18 Cygni/Stable 6/
|
||||
- t38mdem (4.6.2) https://github.com/hehol/t38modem/releases/tag/4.6.2
|
||||
|
||||
#### ptlib
|
||||
```bash
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
'''
|
||||
|
||||
#### opal
|
||||
```bash
|
||||
./configure
|
||||
make -j5
|
||||
make runtest
|
||||
make install
|
||||
'''
|
||||
|
||||
#### 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
|
||||
|
||||
'''bash
|
||||
git clone https://github.com/hehol/t38modem
|
||||
cd t38modem
|
||||
make
|
||||
'''
|
||||
|
||||
If running the t38modem executable, you should run these commands
|
||||
```bash
|
||||
cp /usr/local/lib/libpt.so.2.18.6 /lib
|
||||
cp /usr/local/lib/libopal.so.3.18.6 /lib
|
||||
```
|
||||
|
||||
To install t38modem run
|
||||
```bash
|
||||
cp t38modem /bin/t38modem
|
||||
``'
|
||||
|
||||
### Ubuntu 20.04 LTS
|
||||
Was tested on Ubuntu 20.04 LTS VM (VirtualBox, LXC?)
|
||||
|
||||
You can relies heavily on http://wiki.opalvoip.org/index.php?n=Main.HomePage
|
||||
|
||||
Versions:
|
||||
- libpt (2.18.6) https://sourceforge.net/projects/opalvoip/files/v3.18 Cygni/Stable 6/
|
||||
- opal (3.18.6) https://sourceforge.net/projects/opalvoip/files/v3.18 Cygni/Stable 6/
|
||||
- t38mdem (4.6.2) https://github.com/hehol/t38modem/releases/tag/4.6.2
|
||||
|
||||
Follow http://wiki.opalvoip.org/index.php?n=Main.BuildingPTLibUnix and http://wiki.opalvoip.org/index.php?n=Main.HomePage **but**
|
||||
- Don't use `libavformat-dev` -> Compile error in Opal
|
||||
- https://sourceforge.net/projects/opalvoip/files/
|
||||
- Version 3.18.6
|
||||
- **TODO: Test out other versions**
|
||||
- `.tar.bz2` files for *nix
|
||||
- Configure script needs `pkg-config` to be installed to find ptlib install
|
||||
- On SourceForge downloads `.tar.bz2` files for *nix
|
||||
|
||||
### Build PTLib
|
||||
#### Build PTLib
|
||||
|
||||
- Version 2.18.6
|
||||
- Dependency of Opal, bundled with Opal source code (SourceForge)
|
||||
|
@ -31,7 +101,7 @@
|
|||
sudo apt install \
|
||||
g++ git make autoconf libpcap-dev libexpat1-dev libssl-dev libsasl2-dev libldap2-dev \
|
||||
unixodbc-dev liblua5.3-dev libv8-dev libncurses-dev libsdl2-dev \
|
||||
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
|
||||
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev pkg-config
|
||||
```
|
||||
|
||||
- PTLib will be installed in the `/usr/local` tree -> set `PKG_CONFIG_PATH` to be findable (compile time)
|
||||
|
@ -50,7 +120,7 @@ make
|
|||
sudo make install
|
||||
```
|
||||
|
||||
### Build Opal
|
||||
#### Build Opal
|
||||
|
||||
- Version 3.18.6
|
||||
- http://wiki.opalvoip.org/index.php?n=Main.BuildingOpalUnix
|
||||
|
@ -76,11 +146,11 @@ make
|
|||
sudo make install
|
||||
```
|
||||
|
||||
## t38modem
|
||||
#### t38modem
|
||||
|
||||
- https://github.com/hehol/t38modem, Version 4.6.2
|
||||
- Could also use https://github.com/T38Modem/t38modem, not as maintained
|
||||
- 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` to the `CPPFLAGS` in the Makefile to disable this error
|
||||
- https://github.com/T38Modem/t38modem could also be used, but seems to be not as maintained
|
||||
- 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
|
||||
|
||||
```bash
|
||||
cd t38modem-x.y.z/
|
||||
|
@ -90,12 +160,13 @@ sudo cp ./t38modem /usr/local/bin
|
|||
|
||||
- t38modem can only find Opal if `LD_LIBRARY_PATH` and `PTLIBPLUGINDIR` are environment variables to the program
|
||||
|
||||
### Init script
|
||||
#### Init script
|
||||
|
||||
- To automatically start t38modem, you need to create Systemd services, as well as start and stop scripts
|
||||
- script is adapted from https://web.archive.org/web/20111231021042/https://www.foriamroot.org/hylafax-6-0-debian-or-ubuntu-t38modem-1-0-asterisk-1-6/
|
||||
- `sudo mkdir -p /etc/t38modem/bin/`
|
||||
|
||||
## Using t38modem (requires systemd)
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# /etc/t38modem/bin/run
|
||||
|
@ -252,3 +323,8 @@ FaxMaster: $USER # replace with fax admin account
|
|||
## FaxDispatch
|
||||
|
||||
- https://legacy.hylafax.org/content/Advanced_Permissions_with_6.0
|
||||
|
||||
## TODO
|
||||
- **TODO: Test on Debian / RockPi / RaspberryPi**
|
||||
- **TODO: Test on Eventphone Infra**
|
||||
- **TODO: Package t38modem with service files and config**
|
||||
|
|
Loading…
Reference in a new issue