|
@@ -281,6 +281,11 @@ CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/
|
281
|
281
|
# web site used to obtain the external IP address of the system
|
282
|
282
|
GET_IP_ADDRESS_URL="checkip.two-dns.de"
|
283
|
283
|
|
|
284
|
+# Password used for VoIP server
|
|
285
|
+VOIP_SERVER_PASSWORD=
|
|
286
|
+# Port on which VoIP server listens
|
|
287
|
+VOIP_PORT=64738
|
|
288
|
+
|
284
|
289
|
# other possible services to obtain the external IP address
|
285
|
290
|
EXTERNAL_IP_SERVICES=( \
|
286
|
291
|
'https://check.torproject.org/' \
|
|
@@ -367,6 +372,8 @@ function show_help {
|
367
|
372
|
echo ' --email Your email address'
|
368
|
373
|
echo ' --usb Path for the USB drive (eg. /dev/sdb1)'
|
369
|
374
|
echo ' --cjdns Enable CJDNS'
|
|
375
|
+ echo ' --vpass VoIP server password'
|
|
376
|
+ echo ' --vport VoIP server port'
|
370
|
377
|
echo ''
|
371
|
378
|
echo 'system types'
|
372
|
379
|
echo '------------'
|
|
@@ -943,6 +950,16 @@ case $key in
|
943
|
950
|
shift
|
944
|
951
|
ENABLE_CJDNS="yes"
|
945
|
952
|
;;
|
|
953
|
+ # VoIP server password
|
|
954
|
+ --vpass)
|
|
955
|
+ shift
|
|
956
|
+ VOIP_SERVER_PASSWORD=$1
|
|
957
|
+ ;;
|
|
958
|
+ # VoIP server port
|
|
959
|
+ --vport)
|
|
960
|
+ shift
|
|
961
|
+ VOIP_PORT=$1
|
|
962
|
+ ;;
|
946
|
963
|
*)
|
947
|
964
|
# unknown option
|
948
|
965
|
;;
|
|
@@ -995,6 +1012,12 @@ function read_configuration {
|
995
|
1012
|
fi
|
996
|
1013
|
|
997
|
1014
|
if [ -f $CONFIGURATION_FILE ]; then
|
|
1015
|
+ if grep -q "VOIP_PORT" $CONFIGURATION_FILE; then
|
|
1016
|
+ VOIP_PORT=$(grep "VOIP_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1017
|
+ fi
|
|
1018
|
+ if grep -q "VOIP_SERVER_PASSWORD" $CONFIGURATION_FILE; then
|
|
1019
|
+ VOIP_SERVER_PASSWORD=$(grep "VOIP_SERVER_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1020
|
+ fi
|
998
|
1021
|
if grep -q "GET_IP_ADDRESS_URL" $CONFIGURATION_FILE; then
|
999
|
1022
|
GET_IP_ADDRESS_URL=$(grep "GET_IP_ADDRESS_URL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
1000
|
1023
|
fi
|
|
@@ -4509,6 +4532,19 @@ function save_firewall_settings {
|
4509
|
4532
|
chmod +x /etc/network/if-up.d/iptables
|
4510
|
4533
|
}
|
4511
|
4534
|
|
|
4535
|
+function configure_firewall_for_voip {
|
|
4536
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
|
4537
|
+ return
|
|
4538
|
+ fi
|
|
4539
|
+ if grep -Fxq "configure_firewall_for_voip" $COMPLETION_FILE; then
|
|
4540
|
+ return
|
|
4541
|
+ fi
|
|
4542
|
+ iptables -A INPUT -i eth0 -p udp --dport $VOIP_PORT -j ACCEPT
|
|
4543
|
+ iptables -A INPUT -i eth0 -p tcp --dport $VOIP_PORT -j ACCEPT
|
|
4544
|
+ save_firewall_settings
|
|
4545
|
+ echo 'configure_firewall_for_voip' >> $COMPLETION_FILE
|
|
4546
|
+}
|
|
4547
|
+
|
4512
|
4548
|
function configure_firewall_for_cjdns {
|
4513
|
4549
|
if grep -Fxq "configure_firewall_for_cjdns" $COMPLETION_FILE; then
|
4514
|
4550
|
return
|
|
@@ -8338,6 +8374,87 @@ function install_dynamicdns {
|
8338
|
8374
|
echo 'install_dynamicdns' >> $COMPLETION_FILE
|
8339
|
8375
|
}
|
8340
|
8376
|
|
|
8377
|
+function get_voip_server_password {
|
|
8378
|
+ if [ -f /home/$MY_USERNAME/README ]; then
|
|
8379
|
+ if grep -q "VoIP server password" /home/$MY_USERNAME/README; then
|
|
8380
|
+ if [ ! $VOIP_SERVER_PASSWORD ]; then
|
|
8381
|
+ VOIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "VoIP server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
|
8382
|
+ fi
|
|
8383
|
+ fi
|
|
8384
|
+ fi
|
|
8385
|
+}
|
|
8386
|
+
|
|
8387
|
+function install_voip {
|
|
8388
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
|
8389
|
+ return
|
|
8390
|
+ fi
|
|
8391
|
+ if grep -Fxq "install_voip" $COMPLETION_FILE; then
|
|
8392
|
+ return
|
|
8393
|
+ fi
|
|
8394
|
+ apt-get -y install mumble-server
|
|
8395
|
+
|
|
8396
|
+ get_voip_server_password
|
|
8397
|
+ if [ ! $VOIP_SERVER_PASSWORD ]; then
|
|
8398
|
+ VOIP_SERVER_PASSWORD=$(openssl rand -base64 $MINIMUM_PASSWORD_LENGTH)
|
|
8399
|
+ fi
|
|
8400
|
+ if [ ${#VOIP_SERVER_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
|
|
8401
|
+ VOIP_SERVER_PASSWORD=$(openssl rand -base64 $MINIMUM_PASSWORD_LENGTH)
|
|
8402
|
+ fi
|
|
8403
|
+
|
|
8404
|
+ # Make an ssl cert for the server
|
|
8405
|
+ makecert mumble
|
|
8406
|
+
|
|
8407
|
+ # Check that the cert was created
|
|
8408
|
+ if [ ! -f /etc/ssl/certs/mumble.crt ]; then
|
|
8409
|
+ echo 'VoIP server certificate not created'
|
|
8410
|
+ exit 57892
|
|
8411
|
+ fi
|
|
8412
|
+ if [ ! -f /etc/ssl/private/mumble.key ]; then
|
|
8413
|
+ echo 'VoIP server key not created'
|
|
8414
|
+ exit 57893
|
|
8415
|
+ fi
|
|
8416
|
+
|
|
8417
|
+ sed -i "s|welcometext=.*|welcometext=\"<br />Welcome to $DOMAIN_NAME <b>VoIP</b>.<br />Chat freely!<br />\"|g" /etc/mumble-server.ini
|
|
8418
|
+
|
|
8419
|
+ if [ $VOIP_SERVER_PASSWORD ]; then
|
|
8420
|
+ sed -i "s|serverpassword=.*|serverpassword=$VOIP_SERVER_PASSWORD|g" /etc/mumble-server.ini
|
|
8421
|
+ fi
|
|
8422
|
+
|
|
8423
|
+ sed -i 's|#autobanAttempts.*|autobanAttempts = 10|g' /etc/mumble-server.ini
|
|
8424
|
+ sed -i 's|#autobanTimeframe.*|autobanTimeframe = 120|g' /etc/mumble-server.ini
|
|
8425
|
+ sed -i 's|#autobanTime.*|autobanTime = 300|g' /etc/mumble-server.ini
|
|
8426
|
+ sed -i 's|#sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
|
|
8427
|
+ sed -i 's|sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
|
|
8428
|
+ if ! grep -q "allowping" /etc/mumble-server.ini; then
|
|
8429
|
+ echo 'allowping=False' >> /etc/mumble-server.ini
|
|
8430
|
+ fi
|
|
8431
|
+ sed -i 's|allowping=.*|allowping=False|g' /etc/mumble-server.ini
|
|
8432
|
+ sed -i 's|#sslCert=.*|sslCert=/etc/ssl/certs/mumble.crt|g' /etc/mumble-server.ini
|
|
8433
|
+ sed -i 's|#sslKey=.*|sslKey=/etc/ssl/privare/mumble.key|g' /etc/mumble-server.ini
|
|
8434
|
+ sed -i 's|#certrequired=.*|certrequired=True|g' /etc/mumble-server.ini
|
|
8435
|
+ sed -i 's|users=100|users=10|g' /etc/mumble-server.ini
|
|
8436
|
+ sed -i 's|#channelnestinglimit=10|channelnestinglimit=10|g' /etc/mumble-server.ini
|
|
8437
|
+ sed -i 's|#textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
|
|
8438
|
+ sed -i 's|textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
|
|
8439
|
+ sed -i 's|#imagemessagelength=.*|imagemessagelength=131072|g' /etc/mumble-server.ini
|
|
8440
|
+ sed -i 's|#allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
|
|
8441
|
+ sed -i 's|allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
|
|
8442
|
+ sed -i "s|port=.*|port=$VOIP_PORT|g" /etc/mumble-server.ini
|
|
8443
|
+
|
|
8444
|
+ service mumble-server restart
|
|
8445
|
+
|
|
8446
|
+ if ! grep -q "VoIP Server" /home/$MY_USERNAME/README; then
|
|
8447
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
8448
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
8449
|
+ echo 'VoIP Server' >> /home/$MY_USERNAME/README
|
|
8450
|
+ echo '===========' >> /home/$MY_USERNAME/README
|
|
8451
|
+ echo 'VoIP server password: $VOIP_SERVER_PASSWORD' >> /home/$MY_USERNAME/README
|
|
8452
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
8453
|
+ fi
|
|
8454
|
+
|
|
8455
|
+ echo 'install_voip' >> $COMPLETION_FILE
|
|
8456
|
+}
|
|
8457
|
+
|
8341
|
8458
|
function install_final {
|
8342
|
8459
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
8343
|
8460
|
return
|
|
@@ -8369,6 +8486,7 @@ configure_firewall_for_dns
|
8369
|
8486
|
configure_firewall_for_ftp
|
8370
|
8487
|
configure_firewall_for_web_access
|
8371
|
8488
|
configure_firewall_for_cjdns
|
|
8489
|
+configure_firewall_for_voip
|
8372
|
8490
|
remove_proprietary_repos
|
8373
|
8491
|
change_debian_repos
|
8374
|
8492
|
enable_backports
|
|
@@ -8422,6 +8540,7 @@ install_xmpp
|
8422
|
8540
|
configure_firewall_for_xmpp
|
8423
|
8541
|
install_irc_server
|
8424
|
8542
|
configure_firewall_for_irc
|
|
8543
|
+install_voip
|
8425
|
8544
|
install_wiki
|
8426
|
8545
|
install_blog
|
8427
|
8546
|
install_gnu_social
|