updates for 0.8.2

This commit is contained in:
Dave Horton
2023-04-01 17:52:22 -04:00
parent b02001f00a
commit 91f3526a40
22 changed files with 275 additions and 22 deletions

View File

@@ -103,7 +103,7 @@ Conditions:
Mappings:
AWSRegion2AMI:
us-east-1:
Ami: ami-0f32d62635b3ad5f8
Ami: ami-0eedbdac5ab1b336f
Resources:
IamCloudwatchRole:

View File

@@ -14,6 +14,7 @@ sudo npm install -g pino-pretty pm2 pm2-logrotate gulp grunt
echo "0 * * * * root fsw-clear-old-calls --password JambonzR0ck$ >> /var/log/fsw-clear-old-calls.log 2>&1" | sudo tee -a /etc/crontab
echo "0 1 * * * root find /tmp -name \"*.mp3\" -mtime +2 -exec rm {} \; > /dev/null 2>&1" | sudo tee -a /etc/crontab
echo "0 2 * * * root find /usr/local/freeswitch/storage/http_file_cache -mtime +7 -exec rm {} \; > /dev/null 2>&1" | sudo tee -a /etc/crontab
sudo -u admin bash -c "pm2 install pm2-logrotate"
sudo -u admin bash -c "pm2 set pm2-logrotate:max_size 1G"

View File

@@ -6,7 +6,7 @@ GRPC_VERSION=c66d2cc
GOOGLE_API_VERSION=e9da6f8b469c52b83f900e820be30762e9e05c57
AWS_SDK_VERSION=1.8.129
LWS_VERSION=v3.2.3
MODULES_VERSION=v0.6.11
MODULES_VERSION=v0.6.12
echo "freeswitch version to install is ${FREESWITCH_VERSION}"
echo "drachtio modules version to install is ${MODULES_VERSION}"
@@ -18,8 +18,8 @@ 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.24.2.tar.gz
cd SpeechSDK-Linux-1.24.2
tar xvfz SpeechSDK-Linux-1.26.0.tar.gz
cd SpeechSDK-Linux-1.26.0
sudo cp -r include /usr/local/include/MicrosoftSpeechSDK
sudo cp -r lib/ /usr/local/lib/MicrosoftSpeechSDK
if [ "$ARCH" == "arm64" ]; then

View File

@@ -5,7 +5,7 @@
"ami_description": "jambonz feature server",
"instance_type": "t2.xlarge",
"drachtio_version": "v0.8.21",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"ami_base_image_arch": "amd64",
"ami_base_image_owner": "136693071363",
"install_telegraf": "yes",

View File

@@ -0,0 +1,13 @@
steps:
- name: 'gcr.io/drachtio-cpaas/packer'
args:
- build
- -var
- image_name=jambonz-mini-082
- -var
- project_id=drachtio-cpaas
- -var
- image_family=debian-11-bullseye-v20230306
- -var
- image_zone=us-central1-c
- template.json

View File

@@ -0,0 +1,29 @@
[Unit]
Description=drachtio
After=syslog.target network.target local-fs.target
[Service]
; service
Type=forking
ExecStartPre=/bin/sh -c 'systemctl set-environment LOCAL_IP=`curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip`'
ExecStart=/usr/local/bin/drachtio --daemon -f /etc/drachtio-5070.conf.xml --contact sip:${LOCAL_IP}:5070;transport=udp,tcp --address 0.0.0.0 --port 9023
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

View File

@@ -0,0 +1,32 @@
[Unit]
Description=drachtio
After=syslog.target network.target local-fs.target
[Service]
; service
Type=forking
ExecStartPre=/bin/sh -c 'systemctl set-environment LOCAL_IP=`curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip`'
ExecStartPre=/bin/sh -c 'systemctl set-environment PUBLIC_IP=`curl -s -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip`'
ExecStart=/usr/local/bin/drachtio --daemon --contact sip:${LOCAL_IP};transport=udp --external-ip ${PUBLIC_IP} \
--contact sip:${LOCAL_IP};transport=tcp \
--address 0.0.0.0 --port 9022 --homer 127.0.0.1:9060 --homer-id 10
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

View File

@@ -185,7 +185,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",
@@ -409,7 +409,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",

View File

@@ -0,0 +1,170 @@
{
"variables": {
"region": "us-east-1",
"ssh_username": "admin",
"ami_description": "jambonz all-in-one AMI",
"instance_type": "c2-standard-4",
"drachtio_version": "v0.8.21",
"jambonz_version": "v0.8.2",
"jambonz_user": "admin",
"jambonz_password": "JambonzR0ck$",
"install_telegraf": "yes",
"homer_user": "homer_user",
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
"install_influxdb": "yes",
"install_homer": "yes",
"install_jaeger": "yes",
"install_cloudwatch": "yes",
"install_nodered": "no",
"influxdb_ip": "127.0.0.1",
"rtp_engine_version": "mr11.2.1.5",
"rtp_engine_min_port": "40000",
"rtp_engine_max_port": "60000",
"mediaserver_name" : "jambonz",
"preferred_codec_list" : "PCMU,PCMA,OPUS,G722",
"project_id": "drachtio-cpaas",
"image_family": "debian-11-bullseye-v20230306",
"image_zone": "us-east1-b"
},
"builders": [
{
"type": "googlecompute",
"project_id": "{{user `project_id`}}",
"source_image": "{{user `image_family`}}",
"ssh_username": "{{user `ssh_username`}}",
"zone": "{{user `image_zone`}}",
"machine_type": "{{user `instance_type`}}",
"disk_size": "60"
}
],
"provisioners": [
{
"type": "shell",
"inline": [
"sudo apt-get update",
"sudo apt-get remove --auto-remove nftables",
"sudo apt-get purge nftables",
"sudo apt-get -y install python lsof gcc g++ make cmake build-essential git autoconf automake default-mysql-client redis-tools \\",
"curl argon2 telnet libtool libtool-bin libssl-dev libcurl4-openssl-dev libz-dev systemd-coredump liblz4-tool \\",
"libxtables-dev libip6tc-dev libip4tc-dev libiptc-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 \\",
"gnupg2 wget pkg-config ca-certificates libjpeg-dev libsqlite3-dev libpcre3-dev libldns-dev \\",
"libspeex-dev libspeexdsp-dev libedit-dev libtiff-dev yasm libswscale-dev haveged jq fail2ban \\",
"libopus-dev libsndfile-dev libshout3-dev libmpg123-dev libmp3lame-dev libopusfile-dev libgoogle-perftools-dev",
"sudo chmod a+w /usr/local/src",
"mkdir ~/apps",
"cd ~/apps",
"git config --global advice.detachedHead false",
"git clone https://github.com/jambonz/sbc-call-router.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/fsw-clear-old-calls.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/sbc-outbound.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/sbc-inbound.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/sbc-sip-sidecar.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/jambonz-feature-server.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/jambonz-api-server.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/jambonz-webapp.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/jambonz-smpp-esme.git -b {{user `jambonz_version`}}",
"git clone https://github.com/jambonz/sbc-rtpengine-sidecar.git -b {{user `jambonz_version`}}"
]
},
{
"type": "file",
"source": "files/",
"destination": "/tmp"
},
{
"type": "shell",
"script": "scripts/install_os_tuning.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `drachtio_version`}} GCP",
"script": "scripts/install_drachtio.sh"
},
{
"type": "shell",
"environment_vars": [
"ARCH=amd64",
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
],
"script": "scripts/install_freeswitch.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `rtp_engine_version`}}",
"script": "scripts/install_rtpengine.sh"
},
{
"type": "shell",
"script": "scripts/install_nodejs.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_influxdb`}}",
"script": "scripts/install_influxdb.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{build `ID`}} {{user `apiban_username`}} {{user `apiban_password`}}",
"script": "scripts/install_apiban.sh"
},
{
"type": "shell",
"script": "scripts/install_nginx.sh"
},
{
"type": "shell",
"script": "scripts/install_redis.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
"script": "scripts/install_postgresql.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_homer`}} {{user `influxdb_ip`}}",
"script": "scripts/install_telegraf.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_influxdb`}}",
"script": "scripts/install_grafana.sh"
},
{
"type": "shell",
"script": "scripts/install_fail2ban.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_jaeger`}}",
"script": "scripts/install_jaeger.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `jambonz_user`}} {{user `jambonz_password`}}",
"script": "scripts/install_mysql.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `jambonz_version`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
"script": "scripts/install_app.sh"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
"script": "scripts/install_homer.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/*"
]
}
]
}

View File

@@ -10,15 +10,23 @@ cd drachtio-server
git submodule update --init --recursive
./autogen.sh && mkdir -p build && cd $_ && ../configure --enable-tcmalloc=yes CPPFLAGS='-DNDEBUG -g -O2' && make -j 4 && sudo make install
if [ "$2" = "GCP" ]; then
sudo mv /tmp/gcp-drachtio.service /etc/systemd/system/drachtio.service
sudo mv /tmp/gcp-drachtio-5070.service /etc/systemd/system/drachtio-5070.service
else
sudo mv /tmp/drachtio.service /etc/systemd/system
sudo mv /tmp/drachtio-5070.service /etc/systemd/system
fi
sudo mv /tmp/drachtio.conf.xml /etc
sudo mv /tmp/drachtio.service /etc/systemd/system
sudo chmod 644 /etc/drachtio.conf.xml
sudo chmod 644 /etc/systemd/system/drachtio.service
sudo systemctl enable drachtio
sudo systemctl restart drachtio
sudo systemctl status drachtio.service
sudo journalctl -xe
sudo mv /tmp/drachtio-5070.conf.xml /etc
sudo mv /tmp/drachtio-5070.service /etc/systemd/system
sudo chmod 644 /etc/drachtio-5070.conf.xml
sudo chmod 644 /etc/systemd/system/drachtio-5070.service
sudo systemctl enable drachtio-5070

View File

@@ -6,7 +6,7 @@ GRPC_VERSION=c66d2cc
GOOGLE_API_VERSION=e9da6f8b469c52b83f900e820be30762e9e05c57
AWS_SDK_VERSION=1.8.129
LWS_VERSION=v3.2.3
MODULES_VERSION=v0.6.11
MODULES_VERSION=v0.6.12
echo "freeswitch version to install is ${FREESWITCH_VERSION}"
echo "drachtio modules version to install is ${MODULES_VERSION}"
@@ -18,8 +18,8 @@ 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.24.2.tar.gz
cd SpeechSDK-Linux-1.24.2
tar xvfz SpeechSDK-Linux-1.26.0.tar.gz
cd SpeechSDK-Linux-1.26.0
sudo cp -r include /usr/local/include/MicrosoftSpeechSDK
sudo cp -r lib/ /usr/local/lib/MicrosoftSpeechSDK
if [ "$ARCH" == "arm64" ]; then

View File

@@ -5,7 +5,7 @@
"ami_description": "jambonz all-in-one AMI",
"instance_type": "t2.xlarge",
"drachtio_version": "v0.8.21",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"jambonz_user": "admin",
"jambonz_password": "JambonzR0ck$",
"install_telegraf": "yes",

View File

@@ -185,7 +185,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",
@@ -415,7 +415,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",

View File

@@ -76,7 +76,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",
@@ -389,7 +389,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",
@@ -605,7 +605,7 @@
"type": "fill"
}
],
"measurement": "rtp_media_calls_count",
"measurement": "sbc_media_calls_count",
"orderByTime": "ASC",
"policy": "default",
"queryType": "randomWalk",

View File

@@ -4,7 +4,7 @@
"ssh_username": "admin",
"ami_description": "jambonz monitoring server",
"instance_type": "t2.xlarge",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"homer_user": "homer_user",
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
"install_influxdb": "yes",

View File

@@ -4,7 +4,7 @@
"ssh_username": "admin",
"ami_description": "jambonz SBC RTP server",
"drachtio_version": "v0.8.21",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"ami_base_image_arch": "amd64",
"ami_base_image_owner": "136693071363",
"instance_type": "t3.xlarge",

View File

@@ -5,7 +5,7 @@
"ami_description": "jambonz SBC SIP",
"instance_type": "t3.xlarge",
"drachtio_version": "v0.8.21",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"ami_base_image_arch": "amd64",
"ami_base_image_owner": "136693071363",
"install_datadog": "no",

View File

@@ -4,7 +4,7 @@
"ssh_username": "admin",
"ami_description": "jambonz webserver",
"instance_type": "t3.xlarge",
"jambonz_version": "v0.8.2-rc14",
"jambonz_version": "v0.8.2",
"ami_base_image_arch": "amd64",
"ami_base_image_owner": "136693071363",
"install_datadog": "no",