2017-01-30 15:20:51 -05:00
|
|
|
#! /bin/bash
|
|
|
|
|
|
|
|
#################################################
|
|
|
|
# #
|
|
|
|
# Install DMRlink in seperate directories by #
|
|
|
|
# Application #
|
|
|
|
#################################################
|
|
|
|
|
|
|
|
#Install the required support programs
|
|
|
|
# if [ ! -f /opt/dmrlink/get_ids.sh ]; then
|
|
|
|
apt-get install unzip -y
|
|
|
|
apt-get install python-dev -y
|
|
|
|
apt-get install python-pip -y
|
|
|
|
apt-get install python-twisted -y
|
|
|
|
apt-get install python-twisted -y
|
|
|
|
pip install bitstring
|
|
|
|
pip install bitarray
|
|
|
|
|
|
|
|
cd /opt
|
|
|
|
git clone https://github.com/n0mjs710/dmr_utils.git
|
|
|
|
cd dmr_utils/
|
|
|
|
pip install .
|
|
|
|
|
|
|
|
# To allow multiple instances of DMRlink to run
|
|
|
|
# You need multiple ipsc directories, dmrlink.py and dmrlink.cfg
|
|
|
|
# The needed files are copied to /opt/dmrlink
|
|
|
|
|
|
|
|
echo "Required programs installed, continuing"
|
|
|
|
|
|
|
|
# fi
|
|
|
|
|
|
|
|
# ambe_audio.cfg
|
|
|
|
# ambe_audio_commands.txt
|
|
|
|
# ambe_audio.py
|
|
|
|
# bridge.py
|
|
|
|
# bridge_rules_SAMPLE.py
|
|
|
|
# confbridge.py
|
|
|
|
# confbridge_rules_SAMPLE.py
|
|
|
|
# dmrlink_config.py
|
|
|
|
# dmrlink_log.py
|
|
|
|
# dmrlink.py
|
|
|
|
# dmrlink_SAMPLE.cfg
|
|
|
|
# documents
|
|
|
|
## get_ids.sh
|
|
|
|
# init.d
|
|
|
|
# ipsc
|
|
|
|
# known_bridges_SAMPLE.py
|
|
|
|
# LICENSE.txt
|
|
|
|
# log.py
|
|
|
|
# mk-dmrlink
|
|
|
|
## peer_ids.csv
|
|
|
|
# pickle_stat_reader.py
|
|
|
|
# playback_config_SAMPLE.py
|
|
|
|
# playback.py
|
|
|
|
# play_group.py
|
|
|
|
# rcm_db_log.py
|
|
|
|
# rcm.py
|
|
|
|
# README.md
|
|
|
|
# record.py
|
|
|
|
# requirements.txt
|
|
|
|
# sub_acl_SAMPLE.py
|
|
|
|
## subscriber_ids.csv
|
|
|
|
## talkgroup_ids.csv
|
|
|
|
# template.bin
|
|
|
|
# template.py
|
|
|
|
|
|
|
|
|
|
|
|
# Put scripts in /opt/dmrlink
|
|
|
|
# cp /srv/DMRlink/get_ids.sh /opt/dmrlink # should be linked to /etc/cron.daily
|
|
|
|
# cp /srv/DMRlink/init.d/bridge /opt/dmrlink/rc.bridge
|
|
|
|
|
|
|
|
# Make needed directories
|
|
|
|
mkdir -p /opt/dmrlink/ambe_audio/
|
|
|
|
mkdir -p /opt/dmrlink/bridge/
|
|
|
|
mkdir -p /opt/dmrlink/confbridge/
|
|
|
|
mkdir -p /opt/dmrlink/log/
|
|
|
|
mkdir -p /opt/dmrlink/playback/
|
|
|
|
mkdir -p /opt/dmrlink/play_group/
|
|
|
|
mkdir -p /opt/dmrlink/record/
|
|
|
|
mkdir -p /opt/dmrlink/rcm/
|
|
|
|
mkdir -p /opt/dmrlink/samples
|
|
|
|
mkdir -p /var/log/dmrlink
|
|
|
|
|
|
|
|
cd /opt/dmrlink
|
|
|
|
|
|
|
|
# Put common files in /opt/dmrlink
|
|
|
|
cp /srv/DMRlink/get_ids.sh /opt/dmrlink
|
|
|
|
cp /srv/DMRlink/peer_ids.csv /opt/dmrlink
|
|
|
|
cp /srv/DMRlink/subscriber_ids.csv /opt/dmrlink
|
|
|
|
cp /srv/DMRlink/talkgroup_ids.csv /opt/dmrlink
|
|
|
|
|
|
|
|
# Copy ipsc directory into each app directory
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/ambe_audio/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/bridge/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/confbridge/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/log/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/playback/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/play_group/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/record/
|
|
|
|
cp -rf /srv/DMRlink/ipsc/ /opt/dmrlink/rcm/
|
|
|
|
|
|
|
|
# Put a copy of the samples together for easy reference
|
|
|
|
cp /srv/DMRlink/bridge_rules_SAMPLE.py /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/confbridge_rules_SAMPLE.py /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/known_bridges_SAMPLE.py /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/playback_config_SAMPLE.py /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/ambe_audio.cfg /opt/dmrlink/samples
|
|
|
|
cp /srv/DMRlink/sub_acl_SAMPLE.py /opt/dmrlink/samples
|
|
|
|
|
|
|
|
# Put the doc together for easy reference
|
|
|
|
cp -rf /srv/DMRlink/documents /srv/dmrlink
|
|
|
|
cp /srv/DMRlink/LICENSE.txt /opt/dmrlink/documents
|
|
|
|
cp /srv/DMRlink/requirements.txt /opt/dmrlink/documents
|
|
|
|
cp /srv/DMRlink/ambe_audio_commands.txt /opt/dmrlink/documents
|
|
|
|
|
|
|
|
# ambe_audio
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/ambe_audio/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/ambe_audio.cfg /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/ambe_audio.py /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/ambe_audio_commands.txt /opt/dmrlink/ambe_audio/
|
|
|
|
cp /srv/DMRlink/template.bin /opt/dmrlink/ambe_audio/
|
|
|
|
|
|
|
|
# Bridge app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/bridge/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/bridge.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/bridge_rules_SAMPLE.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/known_bridges_SAMPLE.py /opt/dmrlink/bridge/
|
|
|
|
cp /srv/DMRlink/sub_acl_SAMPLE.py /opt/dmrlink/bridge/
|
|
|
|
|
|
|
|
# ConfBridge app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/confbridge/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/confbridge.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/confbridge_rules_SAMPLE.py /opt/dmrlink/confbridge/
|
|
|
|
# Need these?
|
|
|
|
cp /srv/DMRlink/known_bridges_SAMPLE.py /opt/dmrlink/confbridge/
|
|
|
|
cp /srv/DMRlink/sub_acl_SAMPLE.py /opt/dmrlink/confbridge/
|
|
|
|
|
|
|
|
# Log app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/log/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/log/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/log/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/log/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/log/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/log.py /opt/dmrlink/log/
|
|
|
|
|
|
|
|
# Playback (Parrot)
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/playback/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/playback/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/playback/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/playback/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/playback/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/playback.py /opt/dmrlink/playback/
|
|
|
|
cp /srv/DMRlink/playback_config_SAMPLE.py /opt/dmrlink/playback/
|
|
|
|
|
|
|
|
# Play Group app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/play_group/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/play_group/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/play_group/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/play_group/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/play_group/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/play_group.py /opt/dmrlink/play_group/
|
|
|
|
|
|
|
|
# record app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/record/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/record/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/record/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/record/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/record/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/record.py /opt/dmrlink/record/
|
|
|
|
|
|
|
|
# rcm app
|
|
|
|
cp /srv/DMRlink/dmrlink.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/dmrlink_config.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/dmrlink_log.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/template.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/dmrlink_SAMPLE.cfg /opt/dmrlink/rcm/
|
|
|
|
#
|
|
|
|
cp /srv/DMRlink/rcm_db_log.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/rcm.py /opt/dmrlink/rcm/
|
|
|
|
cp /srv/DMRlink/pickle_stat_reader.py /opt/dmrlink/rcm/
|
|
|
|
|
2017-01-05 15:01:32 -05:00
|
|
|
|