|
@@ -381,6 +381,9 @@ VOIP_SERVER_PASSWORD=
|
381
|
381
|
VOIP_PORT=64738
|
382
|
382
|
SIP_SERVER_PASSWORD=
|
383
|
383
|
SIP_PORT=5060
|
|
384
|
+VOIP_TURN_PORT=3478
|
|
385
|
+VOIP_TURN_TLS_PORT=5349
|
|
386
|
+VOIP_TURN_NONCE=
|
384
|
387
|
|
385
|
388
|
# Location of VoIP database and configuration
|
386
|
389
|
VOIP_DATABASE="mumble-server.sqlite"
|
|
@@ -1065,6 +1068,15 @@ function read_configuration {
|
1065
|
1068
|
# Ensure that a copy of the config exists for upgrade purposes
|
1066
|
1069
|
if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
|
1067
|
1070
|
cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
|
|
1071
|
+ fi
|
|
1072
|
+ if grep -q "VOIP_TURN_PORT" $CONFIGURATION_FILE; then
|
|
1073
|
+ VOIP_TURN_PORT=$(grep "VOIP_TURN_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1074
|
+ fi
|
|
1075
|
+ if grep -q "VOIP_TURN_TLS_PORT" $CONFIGURATION_FILE; then
|
|
1076
|
+ VOIP_TURN_TLS_PORT=$(grep "VOIP_TURN_TLS_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1077
|
+ fi
|
|
1078
|
+ if grep -q "VOIP_TURN_NONCE" $CONFIGURATION_FILE; then
|
|
1079
|
+ VOIP_TURN_NONCE=$(grep "VOIP_TURN_NONCE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
1068
|
1080
|
fi
|
1069
|
1081
|
if grep -q "DEFAULT_SEARCH" $CONFIGURATION_FILE; then
|
1070
|
1082
|
DEFAULT_SEARCH=$(grep "DEFAULT_SEARCH" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
@@ -4002,6 +4014,24 @@ function configure_firewall_for_voip {
|
4002
|
4014
|
echo 'configure_firewall_for_voip' >> $COMPLETION_FILE
|
4003
|
4015
|
}
|
4004
|
4016
|
|
|
4017
|
+function configure_firewall_for_voip_turn {
|
|
4018
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
|
|
4019
|
+ return
|
|
4020
|
+ fi
|
|
4021
|
+ if grep -Fxq "configure_firewall_for_voip_turn" $COMPLETION_FILE; then
|
|
4022
|
+ return
|
|
4023
|
+ fi
|
|
4024
|
+ if [[ $ONION_ONLY != "no" ]]; then
|
|
4025
|
+ return
|
|
4026
|
+ fi
|
|
4027
|
+ iptables -A INPUT -p udp --dport $VOIP_TURN_PORT -j ACCEPT
|
|
4028
|
+ iptables -A INPUT -p tcp --dport $VOIP_TURN_PORT -j ACCEPT
|
|
4029
|
+ iptables -A INPUT -p tcp --dport $VOIP_TURN_TLS_PORT -j ACCEPT
|
|
4030
|
+ save_firewall_settings
|
|
4031
|
+ echo 'configure_firewall_for_voip_turn' >> $COMPLETION_FILE
|
|
4032
|
+}
|
|
4033
|
+
|
|
4034
|
+
|
4005
|
4035
|
function configure_firewall_for_sip {
|
4006
|
4036
|
if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
|
4007
|
4037
|
return
|
|
@@ -10347,6 +10377,144 @@ function install_sip {
|
10347
|
10377
|
echo 'install_sip' >> $COMPLETION_FILE
|
10348
|
10378
|
}
|
10349
|
10379
|
|
|
10380
|
+function install_sip_turn {
|
|
10381
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
|
|
10382
|
+ return
|
|
10383
|
+ fi
|
|
10384
|
+ if grep -Fxq "install_sip_turn" $COMPLETION_FILE; then
|
|
10385
|
+ return
|
|
10386
|
+ fi
|
|
10387
|
+
|
|
10388
|
+ apt-get -y install turnserver
|
|
10389
|
+
|
|
10390
|
+ if [ ! $VOIP_TURN_NONCE ]; then
|
|
10391
|
+ VOIP_TURN_NONCE="$(openssl rand -base64 32 | cut -c1-30)"
|
|
10392
|
+ fi
|
|
10393
|
+
|
|
10394
|
+ echo '##' > /etc/turnserver/turnserver.conf
|
|
10395
|
+ echo '# TurnServer configuration file.' >> /etc/turnserver/turnserver.conf
|
|
10396
|
+ echo '#' >> /etc/turnserver/turnserver.conf
|
|
10397
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10398
|
+ echo '## Public IPv4 address of any relayed address (if not set, no relay for IPv4).' >> /etc/turnserver/turnserver.conf
|
|
10399
|
+ echo '## To have multiple address, separate addresses with a comma' >> /etc/turnserver/turnserver.conf
|
|
10400
|
+ echo '## (i.e. listen_address = { "172.16.0.1", "172.17.0.1" }).' >> /etc/turnserver/turnserver.conf
|
|
10401
|
+ echo "listen_address = { \"192.168.0.1\" }" >> /etc/turnserver/turnserver.conf
|
|
10402
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10403
|
+ echo '## Public IPv6 address of any relayed address (if not set, no relay for IPv6).' >> /etc/turnserver/turnserver.conf
|
|
10404
|
+ echo '## To have multiple address, separate address with a comma' >> /etc/turnserver/turnserver.conf
|
|
10405
|
+ echo '## (i.e. listen_addressv6 = { "2001:db8:1::1", "2001:db8:2::1" }).' >> /etc/turnserver/turnserver.conf
|
|
10406
|
+ echo "#listen_addressv6 = { \"2001:db8::1\" }" >> /etc/turnserver/turnserver.conf
|
|
10407
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10408
|
+ echo '## UDP listening port.' >> /etc/turnserver/turnserver.conf
|
|
10409
|
+ echo "udp_port = $VOIP_TURN_PORT" >> /etc/turnserver/turnserver.conf
|
|
10410
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10411
|
+ echo '## TCP listening port.' >> /etc/turnserver/turnserver.conf
|
|
10412
|
+ echo "tcp_port = $VOIP_TURN_PORT" >> /etc/turnserver/turnserver.conf
|
|
10413
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10414
|
+ echo '## TLS listening port.' >> /etc/turnserver/turnserver.conf
|
|
10415
|
+ echo "tls_port = $VOIP_TURN_TLS_PORT" >> /etc/turnserver/turnserver.conf
|
|
10416
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10417
|
+ echo '## TLS support.' >> /etc/turnserver/turnserver.conf
|
|
10418
|
+ echo 'tls = true' >> /etc/turnserver/turnserver.conf
|
|
10419
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10420
|
+ echo '## DTLS support. It is an experimental feature and is not defined in TURN' >> /etc/turnserver/turnserver.conf
|
|
10421
|
+ echo '## standard.' >> /etc/turnserver/turnserver.conf
|
|
10422
|
+ echo 'dtls = false' >> /etc/turnserver/turnserver.conf
|
|
10423
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10424
|
+ echo '## Maximum allocation port number.' >> /etc/turnserver/turnserver.conf
|
|
10425
|
+ echo 'max_port = 65535' >> /etc/turnserver/turnserver.conf
|
|
10426
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10427
|
+ echo '## Minimum allocation port number.' >> /etc/turnserver/turnserver.conf
|
|
10428
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10429
|
+ echo 'min_port = 49152' >> /etc/turnserver/turnserver.conf
|
|
10430
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10431
|
+ echo '## TURN-TCP support.' >> /etc/turnserver/turnserver.conf
|
|
10432
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10433
|
+ echo 'turn_tcp = true' >> /etc/turnserver/turnserver.conf
|
|
10434
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10435
|
+ echo '## TURN-TCP buffering mode:' >> /etc/turnserver/turnserver.conf
|
|
10436
|
+ echo '## - true, use userspace buffering;' >> /etc/turnserver/turnserver.conf
|
|
10437
|
+ echo '## - false, use kernel buffering.' >> /etc/turnserver/turnserver.conf
|
|
10438
|
+ echo 'tcp_buffer_userspace = true' >> /etc/turnserver/turnserver.conf
|
|
10439
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10440
|
+ echo '## TURN-TCP maximum buffer size.' >> /etc/turnserver/turnserver.conf
|
|
10441
|
+ echo 'tcp_buffer_size = 32768' >> /etc/turnserver/turnserver.conf
|
|
10442
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10443
|
+ echo '## Daemon mode.' >> /etc/turnserver/turnserver.conf
|
|
10444
|
+ echo 'daemon = true' >> /etc/turnserver/turnserver.conf
|
|
10445
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10446
|
+ echo '## Unprivileged user.' >> /etc/turnserver/turnserver.conf
|
|
10447
|
+ echo '## If you want to use this feature create a system user.' >> /etc/turnserver/turnserver.conf
|
|
10448
|
+ echo '## On Linux: adduser --system --group turnserver' >> /etc/turnserver/turnserver.conf
|
|
10449
|
+ echo 'unpriv_user = turnserver' >> /etc/turnserver/turnserver.conf
|
|
10450
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10451
|
+ echo '## Realm value.' >> /etc/turnserver/turnserver.conf
|
|
10452
|
+ echo "realm = \"$DEFAULT_DOMAIN_NAME\"" >> /etc/turnserver/turnserver.conf
|
|
10453
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10454
|
+ echo '## Nonce key.' >> /etc/turnserver/turnserver.conf
|
|
10455
|
+ echo "nonce_key = \"$VOIP_TURN_NONCE\"" >> /etc/turnserver/turnserver.conf
|
|
10456
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10457
|
+ echo '## Max relay per username.' >> /etc/turnserver/turnserver.conf
|
|
10458
|
+ echo 'max_relay_per_username = 5' >> /etc/turnserver/turnserver.conf
|
|
10459
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10460
|
+ echo '## Allocation lifetime.' >> /etc/turnserver/turnserver.conf
|
|
10461
|
+ echo 'allocation_lifetime = 1800' >> /etc/turnserver/turnserver.conf
|
|
10462
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10463
|
+ echo '## Allocation bandwidth limitation (in KBytes/s).' >> /etc/turnserver/turnserver.conf
|
|
10464
|
+ echo '## 0 value means bandwidth quota disabled.' >> /etc/turnserver/turnserver.conf
|
|
10465
|
+ echo 'bandwidth_per_allocation = 150' >> /etc/turnserver/turnserver.conf
|
|
10466
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10467
|
+ echo '## Restricted user bandwidth (in KBytes/s).' >> /etc/turnserver/turnserver.conf
|
|
10468
|
+ echo '## 0 value means bandwidth limitation disabled.' >> /etc/turnserver/turnserver.conf
|
|
10469
|
+ echo 'restricted_bandwidth = 10' >> /etc/turnserver/turnserver.conf
|
|
10470
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10471
|
+ echo '## Denied addresses.' >> /etc/turnserver/turnserver.conf
|
|
10472
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10473
|
+ echo '# disallow relaying to localhost' >> /etc/turnserver/turnserver.conf
|
|
10474
|
+ echo 'denied_address {' >> /etc/turnserver/turnserver.conf
|
|
10475
|
+ echo ' address = "127.0.0.1"' >> /etc/turnserver/turnserver.conf
|
|
10476
|
+ echo ' mask = "8"' >> /etc/turnserver/turnserver.conf
|
|
10477
|
+ echo ' port = 0' >> /etc/turnserver/turnserver.conf
|
|
10478
|
+ echo '}' >> /etc/turnserver/turnserver.conf
|
|
10479
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10480
|
+ echo '# disallow relaying to ip6-localhost' >> /etc/turnserver/turnserver.conf
|
|
10481
|
+ echo 'denied_address {' >> /etc/turnserver/turnserver.conf
|
|
10482
|
+ echo ' address = "::1"' >> /etc/turnserver/turnserver.conf
|
|
10483
|
+ echo ' mask = "128"' >> /etc/turnserver/turnserver.conf
|
|
10484
|
+ echo ' port = 0' >> /etc/turnserver/turnserver.conf
|
|
10485
|
+ echo '}' >> /etc/turnserver/turnserver.conf
|
|
10486
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10487
|
+ echo '## Certification Authority file.' >> /etc/turnserver/turnserver.conf
|
|
10488
|
+ echo "ca_file = \"/etc/ssl/certs/ca-certificates.crt\"" >> /etc/turnserver/turnserver.conf
|
|
10489
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10490
|
+ echo '## Server certificate file.' >> /etc/turnserver/turnserver.conf
|
|
10491
|
+ if [ -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.pem ]; then
|
|
10492
|
+ echo "cert_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.pem\"" >> /etc/turnserver/turnserver.conf
|
|
10493
|
+ else
|
|
10494
|
+ if [ -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.crt ]; then
|
|
10495
|
+ echo "cert_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.crt\"" >> /etc/turnserver/turnserver.conf
|
|
10496
|
+ else
|
|
10497
|
+
|
|
10498
|
+ fi
|
|
10499
|
+ fi
|
|
10500
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10501
|
+ echo '## Private key file.' >> /etc/turnserver/turnserver.conf
|
|
10502
|
+ echo "private_key_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.key\"" >> /etc/turnserver/turnserver.conf
|
|
10503
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10504
|
+ echo '## Account method.' >> /etc/turnserver/turnserver.conf
|
|
10505
|
+ echo "account_method = \"file\"" >> /etc/turnserver/turnserver.conf
|
|
10506
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10507
|
+ echo '## Account file (if account_method = file).' >> /etc/turnserver/turnserver.conf
|
|
10508
|
+ echo "account_file = \"/etc/turnserver/turnusers.txt\"" >> /etc/turnserver/turnserver.conf
|
|
10509
|
+ echo '' >> /etc/turnserver/turnserver.conf
|
|
10510
|
+ echo '## mod_tmpuser.' >> /etc/turnserver/turnserver.conf
|
|
10511
|
+ echo 'mod_tmpuser = false' >> /etc/turnserver/turnserver.conf
|
|
10512
|
+
|
|
10513
|
+ systemctl restart turnserver
|
|
10514
|
+
|
|
10515
|
+ echo 'install_sip_turn' >> $COMPLETION_FILE
|
|
10516
|
+}
|
|
10517
|
+
|
10350
|
10518
|
function install_final {
|
10351
|
10519
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
10352
|
10520
|
return
|
|
@@ -10361,29 +10529,29 @@ function install_final {
|
10361
|
10529
|
clear
|
10362
|
10530
|
echo ''
|
10363
|
10531
|
echo $"
|
10364
|
|
- *** ${PROJECT_NAME} installation is complete. Rebooting... ***
|
|
10532
|
+ *** ${PROJECT_NAME} installation is complete. Rebooting... ***
|
10365
|
10533
|
|
10366
|
10534
|
Now forward these ports from your internet router
|
10367
|
10535
|
|
10368
|
|
- HTTP 80
|
10369
|
|
- HTTPS 443
|
10370
|
|
- SSH 2222
|
10371
|
|
- DLNA 1900
|
10372
|
|
- DLNA 8200
|
10373
|
|
- XMPP 5222-5223
|
10374
|
|
- XMPP 5269
|
10375
|
|
- XMPP 5280-5281
|
10376
|
|
- IRC 6697
|
10377
|
|
- Git 9418
|
10378
|
|
- Email 25
|
10379
|
|
- Email 587
|
10380
|
|
- Email 465
|
10381
|
|
- Email 993
|
10382
|
|
- VoIP 64738
|
10383
|
|
- VoIP 5060
|
10384
|
|
- Tox 33445
|
10385
|
|
- IPFS 4001
|
10386
|
|
-"
|
|
10536
|
+ HTTP 80
|
|
10537
|
+ HTTPS 443
|
|
10538
|
+ SSH 2222
|
|
10539
|
+ DLNA 1900
|
|
10540
|
+ DLNA 8200
|
|
10541
|
+ XMPP 5222-5223
|
|
10542
|
+ XMPP 5269
|
|
10543
|
+ XMPP 5280-5281
|
|
10544
|
+ IRC 6697
|
|
10545
|
+ Git 9418
|
|
10546
|
+ Email 25
|
|
10547
|
+ Email 587
|
|
10548
|
+ Email 465
|
|
10549
|
+ Email 993
|
|
10550
|
+ VoIP 64738
|
|
10551
|
+ VoIP 5060
|
|
10552
|
+ Tox 33445
|
|
10553
|
+ IPFS 4001
|
|
10554
|
+ "
|
10387
|
10555
|
if [ -f "/home/$MY_USERNAME/README" ]; then
|
10388
|
10556
|
echo $"See /home/$MY_USERNAME/README for post-installation instructions."
|
10389
|
10557
|
echo ''
|
|
@@ -10412,6 +10580,7 @@ configure_firewall_for_dns
|
10412
|
10580
|
configure_firewall_for_ftp
|
10413
|
10581
|
configure_firewall_for_web_access
|
10414
|
10582
|
configure_firewall_for_voip
|
|
10583
|
+configure_firewall_for_voip_turn
|
10415
|
10584
|
configure_firewall_for_sip
|
10416
|
10585
|
configure_firewall_for_avahi
|
10417
|
10586
|
configure_firewall_for_zeronet
|
|
@@ -10501,6 +10670,7 @@ install_voip
|
10501
|
10670
|
install_sip
|
10502
|
10671
|
update_sipwitch_daemon
|
10503
|
10672
|
install_wiki
|
|
10673
|
+install_sip_turn
|
10504
|
10674
|
install_blog
|
10505
|
10675
|
mark_blog_domain
|
10506
|
10676
|
install_gnu_social
|