emq-TE1/install/p25cross.sh

473 lines
11 KiB
Bash

#!/bin/bash
SCRIPT_NAME="p25cross.sh"
# Registra el inicio en /opt/curl.txt
echo "Inicio: $SCRIPT_NAME" >> /opt/curl.txt
if [ ! -f "/etc/apt/sources.list.d/dvswitch.list" ]
then
cd /opt
if [ -f "/opt/buster" ]
then
rm /opt/buster*
fi
wget http://dvswitch.org/buster
sudo chmod +x buster
./buster
apt-get update -y
fi
if [ -d "/opt/p25bridge" ]
then
rm -r /opt/p25bridge
fi
if [ ! -f "/opt/MMDVM_Bridge/MMDVM_Bridge" ]; then
apt-get install MMDVM_Bridge -y && wait
fi
if [ ! -f "/opt/Analog_Bridge/Analog_Bridge" ]; then
apt-get install Analog_Bridge -y && wait
fi
# Lista de servicios a reiniciar
servicios=("md380-emu.service" "analog_bridge.service" "mmdvm_bridge.service")
# Recorre la lista de servicios y verifica si están activos
for servicio in "${servicios[@]}"; do
if systemctl status "$servicio" | grep "service; enabled;" >/dev/null 2>&1; then
echo "stop $servicio"
sudo systemctl disable "$servicio"
sudo systemctl stop "$servicio"
fi
done
if [ ! -f "/opt/P25Gateway/P25Gateway" ]
then
cd /opt
git clone https://github.com/g4klx/P25Clients.git
mv /opt/P25Clients/P25Gateway/ /opt/
cd /opt/P25Gateway
make
fi
if [ ! -d "/var/log/mmdvm" ]
then
mkdir /var/log/mmdvm
fi
sudo chmod 777 /var/log/mmdvm
mkdir /opt/p25bridge
cp /opt/Analog_Bridge/* /opt/p25bridge/
cp /opt/MMDVM_Bridge/* /opt/p25bridge/
cp -r /opt/P25Gateway/* /opt/p25bridge/
cp /opt/md380-emu/* /opt/p25bridge/
sudo chmod +x /opt/p25bridge/*
#########################
sudo cat > /opt/p25bridge/Analog_Bridge_DMR.ini <<- "EOF"
[GENERAL]
decoderFallBack = true
useEmulator = false
subscriberFile = ./user.csv
exportMetadata = true
[AMBE_AUDIO]
server = 127.0.0.1
fromDMRPort = 31800
toDMRPort = 31803
ambeMode = DMR
minTxTimeMS = 2000
gatewayDmrId = 714000125
repeaterID = 714000126
txTg = 37500
txTs = 2
colorCode = 1
[USRP]
server = 127.0.0.1
toASLPort = 32801
fromASLPort = 34801
aslAudio = AUDIO_UNITY
agcGain = -20
dmrAudio = AUDIO_UNITY
dmrGain = 0.35
EOF
sudo cat > /opt/p25bridge/Analog_Bridge_P25.ini <<- "EOF"
[GENERAL]
decoderFallBack = true
useEmulator = false
subscriberFile = ./user.csv
exportMetadata = true
[AMBE_AUDIO]
server = 127.0.0.1
fromDMRPort = 34800
toDMRPort = 34803
ambeMode = P25
minTxTimeMS = 2000
gatewayDmrId = 714000125
repeaterID = 714000126
txTg = 37500
txTs = 2
colorCode = 1
[USRP]
server = 127.0.0.1
toASLPort = 34801
fromASLPort = 32801
aslAudio = AUDIO_UNITY
agcGain = -20
dmrAudio = AUDIO_UNITY
dmrGain = 0.35
EOF
sudo cat > /opt/p25bridge/MMDVM_Bridge.ini <<- "EOF"
[General]
Callsign=HP3ICC
Id=0000000
Timeout=220
Duplex=0
[Info]
RXFrequency=0
TXFrequency=0
Power=1
Latitude=41.7333
Longitude=-50.3999
Height=0
Location=P25 < Bridge > DMR
Description=MMDVM_Bridge
URL=https://groups.io/g/DVSwitch
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
DisplayLevel=0
FileLevel=0
FilePath=/var/log/mmdvm
FileRoot=MMDVM_Bridge
[DMR Id Lookup]
File=/opt/data-files/DMRIds.dat
Time=24
[NXDN Id Lookup]
File=/var/lib/mmdvm/NXDN.csv
Time=24
[Modem]
Port=/dev/null
RSSIMappingFile=/dev/null
Trace=0
Debug=0
[D-Star]
Enable=0
Module=B
[DMR]
Enable=1
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0
[System Fusion]
Enable=0
[P25]
Enable=1
NAC=293
[NXDN]
Enable=0
RAN=1
Id=12345
[D-Star Network]
Enable=0
GatewayAddress=127.0.0.1
GatewayPort=20010
LocalPort=20011
Debug=0
[DMR Network]
Enable=1
Address=127.0.0.1
Port=62030
Jitter=240
Local=62032
Password=passw0rd
# for DMR+ see https://github.com/DVSwitch/MMDVM_Bridge/blob/master/DOC/DMRplus_startup_options.md
# for XLX the syntax is: Options=XLX:4009
Options=XLX:4001
Slot1=0
Slot2=1
Debug=0
[System Fusion Network]
Enable=0
LocalAddress=0
LocalPort=3280
GatewayAddress=127.0.0.1
GatewayPort=4280
Debug=0
[P25 Network]
Enable=1
GatewayAddress=127.0.0.1
GatewayPort=42820
LocalPort=32810
Debug=0
[NXDN Network]
Enable=0
#LocalAddress=127.0.0.1
Debug=0
LocalPort=14021
GatewayAddress=127.0.0.1
GatewayPort=14020
EOF
sudo cat > /opt/p25bridge/P25Gateway.ini <<- "EOF"
[General]
Callsign=HP3ICC
RptAddress=127.0.0.1
RptPort=32810
LocalPort=42820
Debug=0
Daemon=0
[Id Lookup]
Name=/opt/data-files/DMRIds.dat
Time=24
[Voice]
Enabled=0
#Language=en_GB
#Directory=./Audio
[Log]
# Logging levels, 0=No logging
DisplayLevel=0
FileLevel=0
FilePath=/var/log/mmdvm
FileRoot=P25Gateway
FileRotate=1
[Network]
Port=42810
HostsFile1=/opt/P25Hosts2.txt
#/var/lib/mmdvm/P25Hosts.txt
#./P25Hosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42811
P252DMRAddress=127.0.0.1
P252DMRPort=42812
# Enter your P25 TG number below:
Static=7144
Startup=7144
RFHangTime=120
NetHangTime=0
Debug=0
[Remote Commands]
Enable=0
Port=6074
EOF
#
sudo cat > /opt/p25bridge/DVSwitch.ini <<- "EOF"
; MMDVM_Bridge export / import configuration file.
; This file should be placed along side of MMDVM_Bridge or it can be
; supplied as a path on the MMDVM_BRIDGE environment variable.
; Configure the Quantar Repeater Partner
; Note that the TX and RX ports are already reversed for MMDVM_Bridge <--> Quantar_Bridge
[QUANTAR]
;logFilePath = /var/log/Quantar_Bridge.log
;Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
;TXPort = 34803 ; Port to send AMBE TLV frames to (export)
;RXPort = 34800 ; Port to listen on (import)
;quantarPort = 1994 ; HDLC frames To/From the Quantar repeater
;logLevel = 2 ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
;debug = 0 ; Debug 0 = off, 1 = on (adds lots of additional messages)
; Configure the DMR Partner
; Audio format is AMBE 72 bit
[DMR]
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
TXPort = 31800 ; Port to send AMBE TLV frames to (export)
RXPort = 31803 ; Port to listen on (import)
Slot = 2 ; Export slot
; Configure the D-Star Partner
; Audio format is AMBE 48 bit (DSAMBE)
[DSTAR]
;Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
;TXPort = 32100 ; Port to send AMBE TLV frames to (export)
;RXPort = 32103 ; Port to listen on (import)
;FallbackID = 7140001 ; In case we can not find a valid DMR id in the database, export this one
;ExportTG = 9 ; Which TG to export
;Slot = 2 ; Export slot
; Configure the NXDN Partner
; Audio format is AMBE 72 bit
[NXDN]
;Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
;TXPort = 33100 ; Port to send AMBE TLV frames to (export)
;RXPort = 33103 ; Port to listen on (import)
;FallbackID = 7140001 ; In case we can not find a valid DMR id in the database, export this one
;NXDNFallbackID = 12345 ; Use this ID when the input DMR ID is not found in the database
;Translate = 1234=4321 ; Translate NXDN TG < -- > DMR TG (bidirectional)
;Slot = 2 ; Export slot
; Configure the P25 Partner
; Audio format is IMBE 88 bit
[P25]
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
TXPort = 34800 ; Port to send AMBE TLV frames to (export)
RXPort = 34803 ; Port to listen on (import)
Slot = 2 ; Export slot
; Configure the Yaesu Fusion Partner
; Audio format is AMBE 72 bit
; Audio format is IMBE 88 bit
[YSF]
;Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
;TXPort = 35100 ; Port to send AMBE TLV frames to (export)
;RXPort = 35103 ; Port to listen on (import)
;FallbackID = 7140001 ; In case we can not find a valid DMR id in the database, export this one
;ExportTG = 1234 ; Which TG to export
;Slot = 2 ; Export slot
EOF
#
cat > /lib/systemd/system/analog_bridge1.service <<- "EOF"
[Unit]
Description=Analog_Bridge Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 03/25/2021
[Service]
User=root
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
#RestartPreventExitStatus=252 253 254
WorkingDirectory=/opt/p25bridge
Environment=AnalogBridgeLogDir=/var/log/dvswitch
#ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;'
ExecStart=/opt/p25bridge/Analog_Bridge /opt/p25bridge/Analog_Bridge_DMR.ini
#Analog_Bridge.ini
ExecStartPost= -/usr/local/sbin/update-config.sh
[Install]
WantedBy=multi-user.target
# 254 matching IDs
# 253 ini parse errors
# 252 dv3000 not found, fallback not enabled
EOF
#
cat > /lib/systemd/system/analog_bridge2.service <<- "EOF"
[Unit]
Description=Analog_Bridge Service2
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 03/25/2021
[Service]
User=root
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
#RestartPreventExitStatus=252 253 254
WorkingDirectory=/opt/p25bridge
Environment=AnalogBridgeLogDir=/var/log/dvswitch
#ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;'
ExecStart=/opt/p25bridge/Analog_Bridge /opt/p25bridge/Analog_Bridge_P25.ini
#Analog_Bridge.ini
ExecStartPost= -/usr/local/sbin/update-config.sh
[Install]
WantedBy=multi-user.target
# 254 matching IDs
# 253 ini parse errors
# 252 dv3000 not found, fallback not enabled
EOF
#
cat > /lib/systemd/system/mmdvm_bridgeP25b.service <<- "EOF"
[Unit]
Description=MMDVM_Bridge Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 10/16/2020
[Service]
User=root
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/opt/p25bridge
#ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;'
ExecStart=/opt/p25bridge/MMDVM_Bridge /opt/p25bridge/MMDVM_Bridge.ini
[Install]
WantedBy=multi-user.target
EOF
#
cat > /lib/systemd/system/p25gatewayP25b.service <<- "EOF"
[Unit]
Description=P25 Gateway Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 04/20/2018
[Service]
User=root
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/opt/p25bridge
ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;'
ExecStart=/opt/p25bridge/P25Gateway /opt/p25bridge/P25Gateway.ini
[Install]
WantedBy=multi-user.target
EOF
#
cat > /lib/systemd/system/md380-emuP25b.service <<- "EOF"
[Unit]
Description=MD-380 Emulator p25bridge
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 10/04/2020
[Service]
User=root
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/opt/user06
#ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;'
ExecStart=/usr/bin/qemu-arm-static /opt/p25bridge/md380-emu -S 2876
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
# Registra el final en /opt/curl.txt
echo "Finalizado: $SCRIPT_NAME" >> /opt/curl.txt