Initial LisgloSIPS V2 implementation

This commit is contained in:
hectorzhao
2026-06-22 10:56:38 +08:00
commit 5fa1bd35e9
303 changed files with 35644 additions and 0 deletions
@@ -0,0 +1,19 @@
[Unit]
Description=Load LisgloSIPS Server A nftables rules
Documentation=file:/etc/nftables.d/
After=network-online.target
Wants=network-online.target
Before=rtpengine-daemon.service opensips.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=-/usr/sbin/nft delete table inet lisglosips_s19_rtpengine
ExecStartPre=-/usr/sbin/nft delete table inet lisglosips_s18_opensips
ExecStart=/usr/sbin/nft -f /etc/nftables.d/lisglosips-s18-opensips.nft
ExecStart=/usr/sbin/nft -f /etc/nftables.d/lisglosips-s19-rtpengine.nft
ExecStop=-/usr/sbin/nft delete table inet lisglosips_s19_rtpengine
ExecStop=-/usr/sbin/nft delete table inet lisglosips_s18_opensips
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,9 @@
[Unit]
Description=Finalize RTPEngine recordings into LisgloSIPS ready files
After=rtpengine-recording-daemon.service
[Service]
Type=oneshot
User=rtpengine
Group=rtpengine
ExecStart=/usr/local/sbin/lisglosips-recording-finalize /dev/shm/voip_rec
@@ -0,0 +1,11 @@
[Unit]
Description=Run LisgloSIPS recording finalizer frequently
[Timer]
OnBootSec=10s
OnUnitActiveSec=5s
AccuracySec=1s
Unit=lisglosips-recording-finalize.service
[Install]
WantedBy=timers.target
@@ -0,0 +1,6 @@
[Unit]
After=network-online.target tailscaled.service lisglosips-a-firewall.service
Wants=network-online.target tailscaled.service lisglosips-a-firewall.service
[Service]
ExecStartPre=/bin/sh -c 'for i in $(seq 1 60); do ip address show | grep -q "100.90.90.90" && exit 0; sleep 1; done; echo "Tailscale address 100.90.90.90 not ready" >&2; exit 1'
@@ -0,0 +1,22 @@
[Unit]
Description=RTP/media Recording Daemon for LisgloSIPS
Documentation=man:rtpengine-recording(8)
After=network-online.target rtpengine-daemon.service dev-shm-voip_rec.mount
Requires=network-online.target rtpengine-daemon.service
RequiresMountsFor=/dev/shm/voip_rec
[Service]
Type=notify
LimitNOFILE=100000
RuntimeDirectory=rtpengine-recording
PIDFile=/run/rtpengine-recording/rtpengine-recording-daemon.pid
AmbientCapabilities=CAP_NET_ADMIN CAP_CHOWN
CapabilityBoundingSet=CAP_NET_ADMIN CAP_CHOWN
User=rtpengine
Group=rtpengine
ExecStart=/usr/bin/rtpengine-recording -f -E --no-log-timestamps --pidfile /run/rtpengine-recording/rtpengine-recording-daemon.pid --config-file /etc/rtpengine/rtpengine-recording.conf
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,9 @@
[Unit]
After=
After=network-online.target rtpengine-daemon.service dev-shm-voip_rec.mount
Requires=
Requires=network-online.target rtpengine-daemon.service
[Service]
CapabilityBoundingSet=
CapabilityBoundingSet=CAP_NET_ADMIN CAP_CHOWN