0.7.5 changes to build rtpengine kernel module and others

This commit is contained in:
Dave Horton
2022-06-02 12:18:58 -04:00
parent 97d29c426f
commit 29cb8a4158
19 changed files with 155 additions and 69 deletions
+5 -3
View File
@@ -39,19 +39,16 @@ Parameters:
Type: String
AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}
ConstraintDescription: must be a valid network CIDR
Default: 0.0.0.0/0
AllowedSipCidr:
Description: Please set CIDR to x.x.x.x/32 to allow one specific IP address sip access, 0.0.0.0/0 to allow all IP addresses access, or another CIDR range.
Type: String
ConstraintDescription: must be a valid network CIDR
AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}
Default: 0.0.0.0/0
AllowedRtpCidr:
Description: Please set CIDR to x.x.x.x/32 to allow one specific IP address to send RTP traffic, 0.0.0.0/0 to allow all IP addresses access, or another CIDR range.
Type: String
ConstraintDescription: must be a valid network CIDR
AllowedPattern: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}
Default: 0.0.0.0/0
VpcCidr:
Description: CIDR range for the VPC.
Type: String
@@ -262,6 +259,11 @@ Resources:
FromPort: 3020
ToPort: 3020
CidrIp: !Ref VpcCidr
SecurityGroupEgress:
- IpProtocol: -1
FromPort: 0
ToPort: 0
CidrIp: 0.0.0.0/0
DependsOn:
- PublicRoute
sshSecurityGroup:
+13 -33
View File
@@ -4,11 +4,11 @@ AWSTemplateFormatVersion: "2010-09-09"
Mappings:
AWSRegion2AMI:
eu-west-1:
SbcSipAmi: ami-0f6ba44ac3543e61c
SbcRtpAmi: ami-080cd1b1866f6e4c7
FsAmi: ami-0d5660935da86a3b5
WebserverAmi: ami-0eb0eeaf07446071c
MonitoringServerAmi: ami-098dba4d4bc6702fd
SbcSipAmi: ami-0cbc5e0bb7e933065
SbcRtpAmi: ami-05c83bae865ca64a8
FsAmi: ami-0ab8aec3b49e4d15a
WebserverAmi: ami-02e90b9bad0811506
MonitoringServerAmi: ami-094af6205e6cefe90
Parameters:
KeyName:
@@ -261,13 +261,6 @@ Parameters:
- 0
- 1
Default: 1
EnableHomer:
Type: Number
Description: enable homer sip traces?
AllowedValues:
- 0
- 1
Default: 1
Resources:
###########################################
@@ -818,18 +811,6 @@ Resources:
Key: Name
Value: !Sub '${Prefix}-sbc-sip-2'
SbcSipServerEIP3:
Type: AWS::EC2::EIP
Properties:
Domain: vpc
Tags:
-
Key: Environment
Value: !Sub '${Prefix}-sbc-sip'
-
Key: Name
Value: !Sub '${Prefix}-sbc-sip-3'
# --- SIP server EC2 IAM role
SbcSipServerIamRole:
Type: AWS::IAM::Role
@@ -1040,7 +1021,7 @@ Resources:
STATS_HOST: '127.0.0.1',
STATS_PORT: 8125,
STATS_PROTOCOL: 'tcp',
STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE}
STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE},
STATS_TELEGRAF: 1
}
},
@@ -1094,13 +1075,10 @@ Resources:
sudo sed -i -e "s/influxdb:8086/${MONITORING_SERVER_IP}:8086/g" /etc/telegraf/telegraf.conf
sudo systemctl restart telegraf
# point drachtio server to the HEP endpoint on the monitoring server
if [[ "$ENABLE_HOMER" == "1" ]]; then
echo "enabling HEP and restarting drachtio server"
sudo sed -i -e "s/--address 0.0.0.0 --port 9022/--address 0.0.0.0 --port 9022 --homer ${MONITORING_SERVER_IP}:9060 --homer-id 10/g" /etc/systemd/system/drachtio.service
sudo systemctl daemon-reload
sudo systemctl restart drachtio
fi
echo "enabling HEP and restarting drachtio server"
sudo sed -i -e "s/--address 0.0.0.0 --port 9022/--address 0.0.0.0 --port 9022 --homer ${MONITORING_SERVER_IP}:9060 --homer-id 10/g" /etc/systemd/system/drachtio.service
sudo systemctl daemon-reload
sudo systemctl restart drachtio
echo "starting jambonz apps"
sudo -u admin bash -c "pm2 restart /home/admin/apps/ecosystem.config.js"
@@ -1117,7 +1095,6 @@ Resources:
JAMBONES_REDIS_HOST: !GetAtt ElastiCacheCluster.RedisEndpoint.Address
JAMBONES_CLUSTER_ID: !Ref Prefix
JAMBONES_SAMPLE_RATE: !Ref StatsSampleRate
ENABLE_HOMER: !Ref EnableHomer
MONITORING_SERVER_IP: !GetAtt MonitoringServerEC2.PrivateIp
AWS_SNS_TOPIC_ARN: !Ref SbcSipServerSNSTopic
JAMBONES_TIME_SERIES_HOST: !GetAtt MonitoringServerEC2.PrivateIp
@@ -1648,6 +1625,9 @@ Resources:
STATS_TELEGRAF: 1,
STATS_SAMPLE_RATE: ${JAMBONES_SAMPLE_RATE},
HTTP_PORT: 3000,
HOMER_BASE_URL: 'http://${MONITORING_SERVER_IP}:9080',
HOMER_USERNAME: 'admin',
HOMER_PASSWORD: 'sipcapture',
JWT_SECRET: '${JWT_SECRET}'
},
},
@@ -18,14 +18,14 @@ echo "LWS_VERSION version to install is ${LWS_VERSION}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
cd /tmp
tar xvfz SpeechSDK-Linux-1.20.0.tar.gz
cd SpeechSDK-Linux-1.20.0
tar xvfz SpeechSDK-Linux-1.21.0.tar.gz
cd SpeechSDK-Linux-1.21.0
sudo cp -r include /usr/local/include/MicrosoftSpeechSDK
sudo cp -r lib/ /usr/local/lib/MicrosoftSpeechSDK
sudo ln -s /usr/local/lib/MicrosoftSpeechSDK/x64/libMicrosoft.CognitiveServices.Speech.core.so /usr/local/lib/libMicrosoft.CognitiveServices.Speech.core.so
cd
rm -Rf /tmpSpeechSDK-Linux-1.20.0
rm -Rf /tmpSpeechSDK-Linux-1.20.0.tar.gz
rm -Rf /tmpSpeechSDK-Linux-1.21.0
rm -Rf /tmpSpeechSDK-Linux-1.21.0.tar.gz
git config --global pull.rebase true
cd /usr/local/src
@@ -1,5 +1,5 @@
#!/bin/bash
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - && sudo apt-get install -y nodejs
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && sudo apt-get install -y nodejs
sudo npm install -g npm@latest
node -v
npm -v
+5 -2
View File
@@ -4,8 +4,8 @@
"ssh_username": "admin",
"ami_description": "jambonz feature server",
"instance_type": "t2.xlarge",
"drachtio_version": "v0.8.16",
"jambonz_version": "v0.7.5-rc10",
"drachtio_version": "v0.8.17",
"jambonz_version": "v0.7.5",
"install_telegraf": "yes",
"install_datadog": "no",
"datadog_key" : "",
@@ -114,6 +114,9 @@
{
"type": "shell",
"inline": [
"echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections",
"echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections",
"sudo apt-get -y install iptables-persistent",
"sudo rm -Rf /tmp/*",
"sudo rm /root/.ssh/authorized_keys",
"sudo rm /home/admin/.ssh/authorized_keys"
@@ -1,5 +1,5 @@
#!/bin/bash
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && sudo apt-get install -y nodejs
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - && sudo apt-get install -y nodejs
sudo npm install -g npm@latest
node -v
npm -v
+4 -1
View File
@@ -4,7 +4,7 @@
"ssh_username": "admin",
"ami_description": "jambonz monitoring server",
"instance_type": "t2.xlarge",
"jambonz_version": "v0.7.5-rc10",
"jambonz_version": "v0.7.5",
"homer_user": "homer_user",
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
"install_influxdb": "yes",
@@ -103,6 +103,9 @@
{
"type": "shell",
"inline": [
"echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections",
"echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections",
"sudo apt-get -y install iptables-persistent",
"sudo rm -Rf /tmp/*",
"sudo rm /root/.ssh/authorized_keys",
"sudo rm /home/admin/.ssh/authorized_keys"
@@ -0,0 +1,50 @@
[rtpengine-recording]
table = 42
log-level = 5
### number of worker threads (default 8)
# num-threads = 16
### where to forward to (unix socket)
# forward-to = /run/rtpengine/sock
### where to store recordings: file (default), db, both
output-storage = file
### format of stored recordings: wav (default), mp3
# output-format = mp3
# output-format = pcma
output-format = wav
### directory containing rtpengine metadata files
spool-dir = /var/spool/recording
### where to store media files to
output-dir = /tmp/recordings
### File name pattern to be used for recording files
output-pattern = %Y%m%d%H00/rtpengine-%c-%t-M%S%u
### resample all output audio
resample-to = 8000
### bits per second for MP3 encoding
# mp3_bitrate = 24000
### mix participating sources into a single output
output-mixed = true
### create one output file for each source
# output-single = false
### mix method: direct (mix input) channels (multi-channel)
mix-method = direct
### mysql configuration for db storage
# mysql-host = localhost
# mysql-port = 3306
# mysql-user = rtpengine
# mysql-pass = secret
# mysql-db = rtpengine
@@ -0,0 +1,29 @@
[Unit]
Description=rtpengine-recording
After=syslog.target network.target local-fs.target
[Service]
; service
Type=forking
Environment="LD_LIBRARY_PATH=/usr/local/lib/"
ExecStart=/usr/local/bin/rtpengine-recording --config-file=/etc/rtpengine-recording.ini
TimeoutSec=15s
Restart=always
; exec
User=root
Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
;LimitSTACK=240
LimitRTPRIO=infinity
LimitRTTIME=7000000
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
[Install]
WantedBy=multi-user.target
@@ -3,7 +3,7 @@
cd /home/admin/apps
cp /tmp/ecosystem.config.js .
cd /home/admin/apps/sbc-rtpengine-sidecar && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-rtpengine-sidecar && npm ci --unsafe-perm
sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt
@@ -3,9 +3,6 @@ VERSION=$1
echo "rtpengine version to install is ${VERSION}"
# install linux headers
apt-get install linux-headers-$(uname -r)
cd /usr/local/src
git clone https://github.com/BelledonneCommunications/bcg729.git
cd bcg729
@@ -29,11 +26,24 @@ mkdir /lib/modules/`uname -r`/updates/
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/`uname -r`/updates
depmod -a
modprobe xt_RTPENGINE
cat << EOF >> /etc/modules
xt_RTPENGINE
EOF
echo 'add 42' > /proc/rtpengine/control
iptables -I INPUT -p udp --dport 40000:60000 -j RTPENGINE --id 42
cp /usr/local/src/rtpengine/daemon/rtpengine /usr/local/bin
cp /usr/local/src/rtpengine/recording-daemon/rtpengine-recording /usr/local/bin/
sudo mv /tmp/rtpengine.service /etc/systemd/system
sudo mv /tmp/rtpengine-recording.service /etc/systemd/system
sudo mv /tmp/rtpengine-recording.ini /etc/rtpengine-recording.ini
sudo chmod 644 /etc/systemd/system/rtpengine.service
sudo chmod 644 /etc/systemd/system/rtpengine-recording.service
sudo chmod 644 /etc/rtpengine-recording.ini
mkdir -p /var/spool/recording
mkdir -p /recording
sudo systemctl enable rtpengine
sudo systemctl enable rtpengine-recording
sudo systemctl start rtpengine
sudo systemctl start rtpengine-recording
+6 -3
View File
@@ -3,8 +3,8 @@
"region": "us-east-1",
"ssh_username": "admin",
"ami_description": "jambonz SBC media server",
"drachtio_version": "v0.8.16",
"jambonz_version": "v0.7.5-rc12",
"drachtio_version": "v0.8.17",
"jambonz_version": "v0.7.5",
"instance_type": "t2.xlarge",
"rtp_engine_version": "mr10.2.1.5",
"rtp_engine_min_port": "40000",
@@ -52,7 +52,7 @@
"sudo apt-get update",
"sudo apt-get -y install python lsof gcc g++ make cmake build-essential git autoconf automake default-mysql-client redis-tools \\",
"curl telnet libtool libtool-bin libssl-dev libcurl4-openssl-dev libz-dev systemd-coredump liblz4-tool \\",
"iptables-dev libavformat-dev liblua5.1-0-dev libavfilter-dev libavcodec-dev libswresample-dev \\",
"iptables-dev linux-headers-$(uname -r) libavformat-dev liblua5.1-0-dev libavfilter-dev libavcodec-dev libswresample-dev \\",
"libevent-dev libpcap-dev libxmlrpc-core-c3-dev markdown libjson-glib-dev lsb-release \\",
"libhiredis-dev gperf libspandsp-dev default-libmysqlclient-dev htop dnsutils gdb libtcmalloc-minimal4 \\",
"gnupg2 wget pkg-config ca-certificates libjpeg-dev libsqlite3-dev libpcre3-dev libldns-dev \\",
@@ -111,6 +111,9 @@
{
"type": "shell",
"inline": [
"echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections",
"echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections",
"sudo apt-get -y install iptables-persistent",
"sudo rm -Rf /tmp/*",
"sudo rm /root/.ssh/authorized_keys",
"sudo rm /home/admin/.ssh/authorized_keys"
@@ -6,12 +6,12 @@ mkdir apps
cp /tmp/ecosystem.config.js apps
cd apps
cd /home/admin/apps/sbc-inbound && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-outbound && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-registrar && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-call-router && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-options-handler && sudo npm install --unsafe-perm
cd /home/admin/apps/jambonz-smpp-esme && sudo npm install --unsafe-perm
cd /home/admin/apps/sbc-inbound && npm ci --unsafe-perm
cd /home/admin/apps/sbc-outbound && npm ci --unsafe-perm
cd /home/admin/apps/sbc-registrar && npm ci --unsafe-perm
cd /home/admin/apps/sbc-call-router && npm ci --unsafe-perm
cd /home/admin/apps/sbc-options-handler && npm ci --unsafe-perm
cd /home/admin/apps/jambonz-smpp-esme && npm ci --unsafe-perm
sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt
+5 -6
View File
@@ -4,8 +4,8 @@
"ssh_username": "admin",
"ami_description": "jambonz SBC SIP",
"instance_type": "t2.xlarge",
"drachtio_version": "v0.8.16",
"jambonz_version": "v0.7.5-rc10",
"drachtio_version": "v0.8.17",
"jambonz_version": "v0.7.5",
"install_datadog": "no",
"datadog_key" : "",
"install_telegraf": "yes"
@@ -109,13 +109,12 @@
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `jambonz_version`}}",
"script": "scripts/install_app.sh"
},
{
"type": "shell",
"script": "scripts/install_fail2ban.sh"
},
{
"type": "shell",
"inline": [
"echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections",
"echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections",
"sudo apt-get -y install iptables-persistent",
"sudo rm -Rf /tmp/*",
"sudo rm /root/.ssh/authorized_keys",
"sudo rm /home/admin/.ssh/authorized_keys"
@@ -4,9 +4,13 @@ VERSION=$1
cd /home/admin/apps
cp /tmp/ecosystem.config.js .
cd /home/admin/apps/jambonz-api-server && sudo npm install --unsafe-perm
cd /home/admin/apps/jambonz-webapp && sudo npm install --unsafe-perm && npm run build
cd /home/admin/apps/public-apps && sudo npm install --unsafe-perm
echo "building jambonz-api-server.."
cd /home/admin/apps/jambonz-api-server && npm ci --unsafe-perm
echo "building jambonz-webapp.."
cd /home/admin/apps/jambonz-webapp && npm ci --unsafe-perm && npm run build
echo "building public-apps.."
mkdir -p /home/admin/apps/public-apps
cd /home/admin/apps/public-apps && npm ci --unsafe-perm
sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt
@@ -18,4 +22,4 @@ sudo -u admin bash -c "pm2 set pm2-logrotate:compress true"
sudo chown -R admin:admin /home/admin/apps
sudo cp /tmp/auto-assign-elastic-ip.sh /usr/local/bin
sudo chmod +x /usr/local/bin/auto-assign-elastic-ip.sh
sudo chmod +x /usr/local/bin/auto-assign-elastic-ip.sh
+4 -1
View File
@@ -4,7 +4,7 @@
"ssh_username": "admin",
"ami_description": "jambonz webserver",
"instance_type": "t2.xlarge",
"jambonz_version": "v0.7.5-rc10",
"jambonz_version": "v0.7.5",
"install_datadog": "no",
"install_telegraf": "yes"
},
@@ -94,6 +94,9 @@
{
"type": "shell",
"inline": [
"echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections",
"echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections",
"sudo apt-get -y install iptables-persistent",
"sudo rm -Rf /tmp/*",
"sudo rm /root/.ssh/authorized_keys",
"sudo rm /home/admin/.ssh/authorized_keys"