|  | @@ -40,254 +40,254 @@ VOIP_DATABASE="mumble-server.sqlite"
 | 
	
		
			
			| 40 | 40 |  VOIP_CONFIG_FILE="mumble-server.ini"
 | 
	
		
			
			| 41 | 41 |  
 | 
	
		
			
			| 42 | 42 |  function reconfigure_mumble {
 | 
	
		
			
			| 43 |  | -	echo -n ''
 | 
	
		
			
			|  | 43 | +    echo -n ''
 | 
	
		
			
			| 44 | 44 |  }
 | 
	
		
			
			| 45 | 45 |  
 | 
	
		
			
			| 46 | 46 |  function upgrade_mumble {
 | 
	
		
			
			| 47 |  | -	echo -n ''
 | 
	
		
			
			|  | 47 | +    echo -n ''
 | 
	
		
			
			| 48 | 48 |  }
 | 
	
		
			
			| 49 | 49 |  
 | 
	
		
			
			| 50 | 50 |  function backup_local_mumble {
 | 
	
		
			
			| 51 |  | -	if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			| 52 |  | -		echo $"Backing up Mumble settings"
 | 
	
		
			
			| 53 |  | -		temp_backup_dir=/root/tempvoipbackup
 | 
	
		
			
			| 54 |  | -		if [ ! -d $temp_backup_dir ]; then
 | 
	
		
			
			| 55 |  | -			mkdir -p $temp_backup_dir
 | 
	
		
			
			| 56 |  | -		fi
 | 
	
		
			
			| 57 |  | -		cp -f /etc/mumble-server.ini $temp_backup_dir
 | 
	
		
			
			| 58 |  | -		cp -f /var/lib/mumble-server/mumble-server.sqlite $temp_backup_dir
 | 
	
		
			
			| 59 |  | -		backup_directory_to_usb $temp_backup_dir voip
 | 
	
		
			
			| 60 |  | -		echo $"Mumble settings backup complete"
 | 
	
		
			
			|  | 51 | +    if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			|  | 52 | +	echo $"Backing up Mumble settings"
 | 
	
		
			
			|  | 53 | +	temp_backup_dir=/root/tempvoipbackup
 | 
	
		
			
			|  | 54 | +	if [ ! -d $temp_backup_dir ]; then
 | 
	
		
			
			|  | 55 | +	    mkdir -p $temp_backup_dir
 | 
	
		
			
			| 61 | 56 |  	fi
 | 
	
		
			
			|  | 57 | +	cp -f /etc/mumble-server.ini $temp_backup_dir
 | 
	
		
			
			|  | 58 | +	cp -f /var/lib/mumble-server/mumble-server.sqlite $temp_backup_dir
 | 
	
		
			
			|  | 59 | +	backup_directory_to_usb $temp_backup_dir voip
 | 
	
		
			
			|  | 60 | +	echo $"Mumble settings backup complete"
 | 
	
		
			
			|  | 61 | +    fi
 | 
	
		
			
			| 62 | 62 |  }
 | 
	
		
			
			| 63 | 63 |  
 | 
	
		
			
			| 64 | 64 |  function restore_local_mumble {
 | 
	
		
			
			| 65 |  | -	if [ -d $USB_MOUNT/backup/voip ]; then
 | 
	
		
			
			| 66 |  | -		echo $"Restoring VoIP settings"
 | 
	
		
			
			| 67 |  | -		temp_restore_dir=/root/tempvoip
 | 
	
		
			
			| 68 |  | -		function_check restore_directory_from_usb
 | 
	
		
			
			| 69 |  | -		restore_directory_from_usb $temp_restore_dir voip
 | 
	
		
			
			| 70 |  | -		cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			| 71 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 72 |  | -			rm -rf $temp_restore_dir
 | 
	
		
			
			| 73 |  | -			function_check set_user_permissions
 | 
	
		
			
			| 74 |  | -			set_user_permissions
 | 
	
		
			
			| 75 |  | -			function_check backup_unmount_drive
 | 
	
		
			
			| 76 |  | -			backup_unmount_drive
 | 
	
		
			
			| 77 |  | -			exit 3679
 | 
	
		
			
			| 78 |  | -		fi
 | 
	
		
			
			| 79 |  | -		cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			| 80 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 81 |  | -			rm -rf $temp_restore_dir
 | 
	
		
			
			| 82 |  | -			function_check set_user_permissions
 | 
	
		
			
			| 83 |  | -			set_user_permissions
 | 
	
		
			
			| 84 |  | -			function_check backup_unmount_drive
 | 
	
		
			
			| 85 |  | -			backup_unmount_drive
 | 
	
		
			
			| 86 |  | -			exit 276
 | 
	
		
			
			| 87 |  | -		fi
 | 
	
		
			
			| 88 |  | -		rm -rf $temp_restore_dir
 | 
	
		
			
			| 89 |  | -		cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 90 |  | -		cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 91 |  | -		chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			| 92 |  | -		service mumble-server restart
 | 
	
		
			
			|  | 65 | +    if [ -d $USB_MOUNT/backup/voip ]; then
 | 
	
		
			
			|  | 66 | +	echo $"Restoring VoIP settings"
 | 
	
		
			
			|  | 67 | +	temp_restore_dir=/root/tempvoip
 | 
	
		
			
			|  | 68 | +	function_check restore_directory_from_usb
 | 
	
		
			
			|  | 69 | +	restore_directory_from_usb $temp_restore_dir voip
 | 
	
		
			
			|  | 70 | +	cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			|  | 71 | +	if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 72 | +	    rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 73 | +	    function_check set_user_permissions
 | 
	
		
			
			|  | 74 | +	    set_user_permissions
 | 
	
		
			
			|  | 75 | +	    function_check backup_unmount_drive
 | 
	
		
			
			|  | 76 | +	    backup_unmount_drive
 | 
	
		
			
			|  | 77 | +	    exit 3679
 | 
	
		
			
			|  | 78 | +	fi
 | 
	
		
			
			|  | 79 | +	cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			|  | 80 | +	if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 81 | +	    rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 82 | +	    function_check set_user_permissions
 | 
	
		
			
			|  | 83 | +	    set_user_permissions
 | 
	
		
			
			|  | 84 | +	    function_check backup_unmount_drive
 | 
	
		
			
			|  | 85 | +	    backup_unmount_drive
 | 
	
		
			
			|  | 86 | +	    exit 276
 | 
	
		
			
			| 93 | 87 |  	fi
 | 
	
		
			
			|  | 88 | +	rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 89 | +	cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 90 | +	cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 91 | +	chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			|  | 92 | +	service mumble-server restart
 | 
	
		
			
			|  | 93 | +    fi
 | 
	
		
			
			| 94 | 94 |  }
 | 
	
		
			
			| 95 | 95 |  
 | 
	
		
			
			| 96 | 96 |  function backup_remote_mumble {
 | 
	
		
			
			| 97 |  | -	if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			| 98 |  | -		echo $"Backing up VoIP settings"
 | 
	
		
			
			| 99 |  | -		if [ ! -d /root/tempvoipbackup ]; then
 | 
	
		
			
			| 100 |  | -			mkdir -p /root/tempvoipbackup
 | 
	
		
			
			| 101 |  | -		fi
 | 
	
		
			
			| 102 |  | -		cp -f /etc/mumble-server.ini /root/tempvoipbackup
 | 
	
		
			
			| 103 |  | -		cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
 | 
	
		
			
			| 104 |  | -		backup_directory_to_friend /root/tempvoipbackup voip
 | 
	
		
			
			| 105 |  | -		echo $"Backup of VoIP settings complete"
 | 
	
		
			
			|  | 97 | +    if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			|  | 98 | +	echo $"Backing up VoIP settings"
 | 
	
		
			
			|  | 99 | +	if [ ! -d /root/tempvoipbackup ]; then
 | 
	
		
			
			|  | 100 | +	    mkdir -p /root/tempvoipbackup
 | 
	
		
			
			| 106 | 101 |  	fi
 | 
	
		
			
			|  | 102 | +	cp -f /etc/mumble-server.ini /root/tempvoipbackup
 | 
	
		
			
			|  | 103 | +	cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
 | 
	
		
			
			|  | 104 | +	backup_directory_to_friend /root/tempvoipbackup voip
 | 
	
		
			
			|  | 105 | +	echo $"Backup of VoIP settings complete"
 | 
	
		
			
			|  | 106 | +    fi
 | 
	
		
			
			| 107 | 107 |  }
 | 
	
		
			
			| 108 | 108 |  
 | 
	
		
			
			| 109 | 109 |  function restore_remote_mumble {
 | 
	
		
			
			| 110 |  | -	if [ -d $SERVER_DIRECTORY/backup/voip ]; then
 | 
	
		
			
			| 111 |  | -		echo $"Restoring Mumble settings"
 | 
	
		
			
			| 112 |  | -		temp_restore_dir=/root/tempvoip
 | 
	
		
			
			| 113 |  | -		function_check restore_directory_from_friend
 | 
	
		
			
			| 114 |  | -		restore_directory_from_friend $temp_restore_dir voip
 | 
	
		
			
			| 115 |  | -		cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			| 116 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 117 |  | -			rm -rf $temp_restore_dir
 | 
	
		
			
			| 118 |  | -			exit 7823
 | 
	
		
			
			| 119 |  | -		fi
 | 
	
		
			
			| 120 |  | -		cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
 | 
	
		
			
			| 121 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 122 |  | -			rm -rf $temp_restore_dir
 | 
	
		
			
			| 123 |  | -			exit 7823
 | 
	
		
			
			| 124 |  | -		fi
 | 
	
		
			
			| 125 |  | -		cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			| 126 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 127 |  | -			rm -rf $temp_restore_dir
 | 
	
		
			
			| 128 |  | -			exit 276
 | 
	
		
			
			| 129 |  | -		fi
 | 
	
		
			
			| 130 |  | -		rm -rf $temp_restore_dir
 | 
	
		
			
			| 131 |  | -		cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 132 |  | -		cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 133 |  | -		chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			| 134 |  | -		service mumble-server restart
 | 
	
		
			
			| 135 |  | -		echo $"Restore of Mumble complete"
 | 
	
		
			
			|  | 110 | +    if [ -d $SERVER_DIRECTORY/backup/voip ]; then
 | 
	
		
			
			|  | 111 | +	echo $"Restoring Mumble settings"
 | 
	
		
			
			|  | 112 | +	temp_restore_dir=/root/tempvoip
 | 
	
		
			
			|  | 113 | +	function_check restore_directory_from_friend
 | 
	
		
			
			|  | 114 | +	restore_directory_from_friend $temp_restore_dir voip
 | 
	
		
			
			|  | 115 | +	cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			|  | 116 | +	if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 117 | +	    rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 118 | +	    exit 7823
 | 
	
		
			
			|  | 119 | +	fi
 | 
	
		
			
			|  | 120 | +	cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
 | 
	
		
			
			|  | 121 | +	if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 122 | +	    rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 123 | +	    exit 7823
 | 
	
		
			
			|  | 124 | +	fi
 | 
	
		
			
			|  | 125 | +	cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			|  | 126 | +	if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 127 | +	    rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 128 | +	    exit 276
 | 
	
		
			
			| 136 | 129 |  	fi
 | 
	
		
			
			|  | 130 | +	rm -rf $temp_restore_dir
 | 
	
		
			
			|  | 131 | +	cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 132 | +	cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 133 | +	chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			|  | 134 | +	service mumble-server restart
 | 
	
		
			
			|  | 135 | +	echo $"Restore of Mumble complete"
 | 
	
		
			
			|  | 136 | +    fi
 | 
	
		
			
			| 137 | 137 |  }
 | 
	
		
			
			| 138 | 138 |  
 | 
	
		
			
			| 139 | 139 |  function remove_mumble {
 | 
	
		
			
			| 140 |  | -	if !grep -Fxq "install_mumble" $COMPLETION_FILE; then
 | 
	
		
			
			| 141 |  | -		if ! grep -Fxq "install_voip" $COMPLETION_FILE; then
 | 
	
		
			
			| 142 |  | -			return
 | 
	
		
			
			| 143 |  | -		fi
 | 
	
		
			
			| 144 |  | -	fi
 | 
	
		
			
			| 145 |  | -	apt-get -y remove --purge mumble-server
 | 
	
		
			
			| 146 |  | -	iptables -D INPUT -p udp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			| 147 |  | -	iptables -D INPUT -p tcp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			| 148 |  | -	function_check save_firewall_settings
 | 
	
		
			
			| 149 |  | -	save_firewall_settings
 | 
	
		
			
			| 150 |  | -	if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			| 151 |  | -		rm /etc/mumble-server.ini
 | 
	
		
			
			|  | 140 | +    if !grep -Fxq "install_mumble" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 141 | +	if ! grep -Fxq "install_voip" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 142 | +	    return
 | 
	
		
			
			| 152 | 143 |  	fi
 | 
	
		
			
			| 153 |  | -	function_check remove_onion_service
 | 
	
		
			
			| 154 |  | -	remove_onion_service voip ${VOIP_PORT}
 | 
	
		
			
			| 155 |  | -	sed -i '/install_mumble/d' $COMPLETION_FILE
 | 
	
		
			
			| 156 |  | -	sed -i '/install_voip/d' $COMPLETION_FILE
 | 
	
		
			
			| 157 |  | -	sed -i '/configure_firewall_for_voip/d' $COMPLETION_FILE
 | 
	
		
			
			| 158 |  | -	sed -i '/VoIP /d' $COMPLETION_FILE
 | 
	
		
			
			|  | 144 | +    fi
 | 
	
		
			
			|  | 145 | +    apt-get -y remove --purge mumble-server
 | 
	
		
			
			|  | 146 | +    iptables -D INPUT -p udp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			|  | 147 | +    iptables -D INPUT -p tcp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			|  | 148 | +    function_check save_firewall_settings
 | 
	
		
			
			|  | 149 | +    save_firewall_settings
 | 
	
		
			
			|  | 150 | +    if [ -f /etc/mumble-server.ini ]; then
 | 
	
		
			
			|  | 151 | +	rm /etc/mumble-server.ini
 | 
	
		
			
			|  | 152 | +    fi
 | 
	
		
			
			|  | 153 | +    function_check remove_onion_service
 | 
	
		
			
			|  | 154 | +    remove_onion_service voip ${VOIP_PORT}
 | 
	
		
			
			|  | 155 | +    sed -i '/install_mumble/d' $COMPLETION_FILE
 | 
	
		
			
			|  | 156 | +    sed -i '/install_voip/d' $COMPLETION_FILE
 | 
	
		
			
			|  | 157 | +    sed -i '/configure_firewall_for_voip/d' $COMPLETION_FILE
 | 
	
		
			
			|  | 158 | +    sed -i '/VoIP /d' $COMPLETION_FILE
 | 
	
		
			
			| 159 | 159 |  }
 | 
	
		
			
			| 160 | 160 |  
 | 
	
		
			
			| 161 | 161 |  function get_voip_server_password {
 | 
	
		
			
			| 162 |  | -	if [ -f /home/$MY_USERNAME/README ]; then
 | 
	
		
			
			| 163 |  | -		if grep -q "VoIP server password" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 164 |  | -			if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			| 165 |  | -				VOIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "VoIP server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			| 166 |  | -			fi
 | 
	
		
			
			| 167 |  | -		else
 | 
	
		
			
			| 168 |  | -			if grep -q "Mumble server password" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 169 |  | -				if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			| 170 |  | -					VOIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Mumble server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			| 171 |  | -				fi
 | 
	
		
			
			| 172 |  | -			fi
 | 
	
		
			
			|  | 162 | +    if [ -f /home/$MY_USERNAME/README ]; then
 | 
	
		
			
			|  | 163 | +	if grep -q "VoIP server password" /home/$MY_USERNAME/README; then
 | 
	
		
			
			|  | 164 | +	    if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			|  | 165 | +		VOIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "VoIP server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			|  | 166 | +	    fi
 | 
	
		
			
			|  | 167 | +	else
 | 
	
		
			
			|  | 168 | +	    if grep -q "Mumble server password" /home/$MY_USERNAME/README; then
 | 
	
		
			
			|  | 169 | +		if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			|  | 170 | +		    VOIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Mumble server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			| 173 | 171 |  		fi
 | 
	
		
			
			|  | 172 | +	    fi
 | 
	
		
			
			| 174 | 173 |  	fi
 | 
	
		
			
			|  | 174 | +    fi
 | 
	
		
			
			| 175 | 175 |  }
 | 
	
		
			
			| 176 | 176 |  
 | 
	
		
			
			| 177 | 177 |  function configure_firewall_for_voip {
 | 
	
		
			
			| 178 |  | -	if grep -Fxq "configure_firewall_for_voip" $COMPLETION_FILE; then
 | 
	
		
			
			| 179 |  | -		return
 | 
	
		
			
			| 180 |  | -	fi
 | 
	
		
			
			| 181 |  | -	if [[ $ONION_ONLY != "no" ]]; then
 | 
	
		
			
			| 182 |  | -		return
 | 
	
		
			
			| 183 |  | -	fi
 | 
	
		
			
			| 184 |  | -	iptables -A INPUT -p udp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			| 185 |  | -	iptables -A INPUT -p tcp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			| 186 |  | -	function_check save_firewall_settings
 | 
	
		
			
			| 187 |  | -	save_firewall_settings
 | 
	
		
			
			|  | 178 | +    if grep -Fxq "configure_firewall_for_voip" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 179 | +	return
 | 
	
		
			
			|  | 180 | +    fi
 | 
	
		
			
			|  | 181 | +    if [[ $ONION_ONLY != "no" ]]; then
 | 
	
		
			
			|  | 182 | +	return
 | 
	
		
			
			|  | 183 | +    fi
 | 
	
		
			
			|  | 184 | +    iptables -A INPUT -p udp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			|  | 185 | +    iptables -A INPUT -p tcp --dport $VOIP_PORT -j ACCEPT
 | 
	
		
			
			|  | 186 | +    function_check save_firewall_settings
 | 
	
		
			
			|  | 187 | +    save_firewall_settings
 | 
	
		
			
			| 188 | 188 |  
 | 
	
		
			
			| 189 |  | -	OPEN_PORTS+=("Mumble   $VOIP_PORT")
 | 
	
		
			
			| 190 |  | -	echo 'configure_firewall_for_voip' >> $COMPLETION_FILE
 | 
	
		
			
			|  | 189 | +    OPEN_PORTS+=("Mumble   $VOIP_PORT")
 | 
	
		
			
			|  | 190 | +    echo 'configure_firewall_for_voip' >> $COMPLETION_FILE
 | 
	
		
			
			| 191 | 191 |  }
 | 
	
		
			
			| 192 | 192 |  
 | 
	
		
			
			| 193 | 193 |  function install_mumble {
 | 
	
		
			
			| 194 |  | -	if grep -Fxq "install_mumble" $COMPLETION_FILE; then
 | 
	
		
			
			| 195 |  | -		return
 | 
	
		
			
			| 196 |  | -	fi
 | 
	
		
			
			| 197 |  | -	if grep -Fxq "install_voip" $COMPLETION_FILE; then
 | 
	
		
			
			| 198 |  | -		return
 | 
	
		
			
			| 199 |  | -	fi
 | 
	
		
			
			| 200 |  | -	apt-get -y install mumble-server
 | 
	
		
			
			|  | 194 | +    if grep -Fxq "install_mumble" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 195 | +	return
 | 
	
		
			
			|  | 196 | +    fi
 | 
	
		
			
			|  | 197 | +    if grep -Fxq "install_voip" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 198 | +	return
 | 
	
		
			
			|  | 199 | +    fi
 | 
	
		
			
			|  | 200 | +    apt-get -y install mumble-server
 | 
	
		
			
			| 201 | 201 |  
 | 
	
		
			
			| 202 |  | -	function_check get_voip_server_password
 | 
	
		
			
			| 203 |  | -	get_voip_server_password
 | 
	
		
			
			| 204 |  | -	if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			| 205 |  | -		if [ -f $IMAGE_PASSWORD_FILE ]; then
 | 
	
		
			
			| 206 |  | -			VOIP_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
 | 
	
		
			
			| 207 |  | -		else
 | 
	
		
			
			| 208 |  | -			VOIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
 | 
	
		
			
			| 209 |  | -			if [ ${#VOIP_SERVER_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
 | 
	
		
			
			| 210 |  | -				VOIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
 | 
	
		
			
			| 211 |  | -			fi
 | 
	
		
			
			| 212 |  | -		fi
 | 
	
		
			
			|  | 202 | +    function_check get_voip_server_password
 | 
	
		
			
			|  | 203 | +    get_voip_server_password
 | 
	
		
			
			|  | 204 | +    if [ ! $VOIP_SERVER_PASSWORD ]; then
 | 
	
		
			
			|  | 205 | +	if [ -f $IMAGE_PASSWORD_FILE ]; then
 | 
	
		
			
			|  | 206 | +	    VOIP_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
 | 
	
		
			
			|  | 207 | +	else
 | 
	
		
			
			|  | 208 | +	    VOIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
 | 
	
		
			
			|  | 209 | +	    if [ ${#VOIP_SERVER_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
 | 
	
		
			
			|  | 210 | +		VOIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
 | 
	
		
			
			|  | 211 | +	    fi
 | 
	
		
			
			| 213 | 212 |  	fi
 | 
	
		
			
			|  | 213 | +    fi
 | 
	
		
			
			| 214 | 214 |  
 | 
	
		
			
			| 215 |  | -	# Make an ssl cert for the server
 | 
	
		
			
			| 216 |  | -	if [ ! -f /etc/ssl/certs/mumble.dhparam ]; then
 | 
	
		
			
			| 217 |  | -		${PROJECT_NAME}-addcert -h mumble --dhkey $DH_KEYLENGTH
 | 
	
		
			
			| 218 |  | -		function_check check_certificates
 | 
	
		
			
			| 219 |  | -		check_certificates mumble
 | 
	
		
			
			| 220 |  | -	fi
 | 
	
		
			
			|  | 215 | +    # Make an ssl cert for the server
 | 
	
		
			
			|  | 216 | +    if [ ! -f /etc/ssl/certs/mumble.dhparam ]; then
 | 
	
		
			
			|  | 217 | +	${PROJECT_NAME}-addcert -h mumble --dhkey $DH_KEYLENGTH
 | 
	
		
			
			|  | 218 | +	function_check check_certificates
 | 
	
		
			
			|  | 219 | +	check_certificates mumble
 | 
	
		
			
			|  | 220 | +    fi
 | 
	
		
			
			| 221 | 221 |  
 | 
	
		
			
			| 222 |  | -	# Check that the cert was created
 | 
	
		
			
			| 223 |  | -	if [ ! -f /etc/ssl/certs/mumble.crt ]; then
 | 
	
		
			
			| 224 |  | -		echo $'VoIP server certificate not created'
 | 
	
		
			
			| 225 |  | -		exit 57892
 | 
	
		
			
			| 226 |  | -	fi
 | 
	
		
			
			| 227 |  | -	if [ ! -f /etc/ssl/private/mumble.key ]; then
 | 
	
		
			
			| 228 |  | -		echo $'VoIP server key not created'
 | 
	
		
			
			| 229 |  | -		exit 57893
 | 
	
		
			
			| 230 |  | -	fi
 | 
	
		
			
			| 231 |  | -	if [ ! -d /var/lib/mumble-server ]; then
 | 
	
		
			
			| 232 |  | -		mkdir /var/lib/mumble-server
 | 
	
		
			
			| 233 |  | -	fi
 | 
	
		
			
			| 234 |  | -	cp /etc/ssl/certs/mumble.* /var/lib/mumble-server
 | 
	
		
			
			| 235 |  | -	cp /etc/ssl/private/mumble.key /var/lib/mumble-server
 | 
	
		
			
			| 236 |  | -	chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			|  | 222 | +    # Check that the cert was created
 | 
	
		
			
			|  | 223 | +    if [ ! -f /etc/ssl/certs/mumble.crt ]; then
 | 
	
		
			
			|  | 224 | +	echo $'VoIP server certificate not created'
 | 
	
		
			
			|  | 225 | +	exit 57892
 | 
	
		
			
			|  | 226 | +    fi
 | 
	
		
			
			|  | 227 | +    if [ ! -f /etc/ssl/private/mumble.key ]; then
 | 
	
		
			
			|  | 228 | +	echo $'VoIP server key not created'
 | 
	
		
			
			|  | 229 | +	exit 57893
 | 
	
		
			
			|  | 230 | +    fi
 | 
	
		
			
			|  | 231 | +    if [ ! -d /var/lib/mumble-server ]; then
 | 
	
		
			
			|  | 232 | +	mkdir /var/lib/mumble-server
 | 
	
		
			
			|  | 233 | +    fi
 | 
	
		
			
			|  | 234 | +    cp /etc/ssl/certs/mumble.* /var/lib/mumble-server
 | 
	
		
			
			|  | 235 | +    cp /etc/ssl/private/mumble.key /var/lib/mumble-server
 | 
	
		
			
			|  | 236 | +    chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			| 237 | 237 |  
 | 
	
		
			
			| 238 |  | -	sed -i "s|welcometext=.*|welcometext=\"<br />Welcome to $DEFAULT_DOMAIN_NAME <b>VoIP</b>.<br />Chat freely!<br />\"|g" /etc/mumble-server.ini
 | 
	
		
			
			|  | 238 | +    sed -i "s|welcometext=.*|welcometext=\"<br />Welcome to $DEFAULT_DOMAIN_NAME <b>VoIP</b>.<br />Chat freely!<br />\"|g" /etc/mumble-server.ini
 | 
	
		
			
			| 239 | 239 |  
 | 
	
		
			
			| 240 |  | -	if [[ $VOIP_SERVER_PASSWORD && $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
 | 
	
		
			
			| 241 |  | -		sed -i "s|serverpassword=.*|serverpassword=$VOIP_SERVER_PASSWORD|g" /etc/mumble-server.ini
 | 
	
		
			
			| 242 |  | -	fi
 | 
	
		
			
			|  | 240 | +    if [[ $VOIP_SERVER_PASSWORD && $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
 | 
	
		
			
			|  | 241 | +	sed -i "s|serverpassword=.*|serverpassword=$VOIP_SERVER_PASSWORD|g" /etc/mumble-server.ini
 | 
	
		
			
			|  | 242 | +    fi
 | 
	
		
			
			| 243 | 243 |  
 | 
	
		
			
			| 244 |  | -	sed -i 's|#autobanAttempts.*|autobanAttempts = 10|g' /etc/mumble-server.ini
 | 
	
		
			
			| 245 |  | -	sed -i 's|#autobanTimeframe.*|autobanTimeframe = 120|g' /etc/mumble-server.ini
 | 
	
		
			
			| 246 |  | -	sed -i 's|#autobanTime.*|autobanTime = 300|g' /etc/mumble-server.ini
 | 
	
		
			
			| 247 |  | -	sed -i 's|#sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
 | 
	
		
			
			| 248 |  | -	sed -i 's|sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
 | 
	
		
			
			| 249 |  | -	if ! grep -q "allowping" /etc/mumble-server.ini; then
 | 
	
		
			
			| 250 |  | -		echo 'allowping=False' >> /etc/mumble-server.ini
 | 
	
		
			
			| 251 |  | -	fi
 | 
	
		
			
			| 252 |  | -	sed -i 's|allowping=.*|allowping=False|g' /etc/mumble-server.ini
 | 
	
		
			
			| 253 |  | -	sed -i 's|#sslCert=.*|sslCert=/var/lib/mumble-server/mumble.crt|g' /etc/mumble-server.ini
 | 
	
		
			
			| 254 |  | -	sed -i 's|#sslKey=.*|sslKey=/var/lib/mumble-server/mumble.key|g' /etc/mumble-server.ini
 | 
	
		
			
			| 255 |  | -	sed -i 's|#certrequired=.*|certrequired=True|g' /etc/mumble-server.ini
 | 
	
		
			
			| 256 |  | -	sed -i 's|users=100|users=10|g' /etc/mumble-server.ini
 | 
	
		
			
			| 257 |  | -	sed -i 's|#channelnestinglimit=10|channelnestinglimit=10|g' /etc/mumble-server.ini
 | 
	
		
			
			| 258 |  | -	sed -i 's|#textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
 | 
	
		
			
			| 259 |  | -	sed -i 's|textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
 | 
	
		
			
			| 260 |  | -	sed -i 's|#imagemessagelength=.*|imagemessagelength=131072|g' /etc/mumble-server.ini
 | 
	
		
			
			| 261 |  | -	sed -i 's|#allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
 | 
	
		
			
			| 262 |  | -	sed -i 's|allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
 | 
	
		
			
			| 263 |  | -	sed -i "s|port=.*|port=${VOIP_PORT}|g" /etc/mumble-server.ini
 | 
	
		
			
			|  | 244 | +    sed -i 's|#autobanAttempts.*|autobanAttempts = 10|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 245 | +    sed -i 's|#autobanTimeframe.*|autobanTimeframe = 120|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 246 | +    sed -i 's|#autobanTime.*|autobanTime = 300|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 247 | +    sed -i 's|#sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 248 | +    sed -i 's|sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 249 | +    if ! grep -q "allowping" /etc/mumble-server.ini; then
 | 
	
		
			
			|  | 250 | +	echo 'allowping=False' >> /etc/mumble-server.ini
 | 
	
		
			
			|  | 251 | +    fi
 | 
	
		
			
			|  | 252 | +    sed -i 's|allowping=.*|allowping=False|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 253 | +    sed -i 's|#sslCert=.*|sslCert=/var/lib/mumble-server/mumble.crt|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 254 | +    sed -i 's|#sslKey=.*|sslKey=/var/lib/mumble-server/mumble.key|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 255 | +    sed -i 's|#certrequired=.*|certrequired=True|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 256 | +    sed -i 's|users=100|users=10|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 257 | +    sed -i 's|#channelnestinglimit=10|channelnestinglimit=10|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 258 | +    sed -i 's|#textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 259 | +    sed -i 's|textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 260 | +    sed -i 's|#imagemessagelength=.*|imagemessagelength=131072|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 261 | +    sed -i 's|#allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 262 | +    sed -i 's|allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
 | 
	
		
			
			|  | 263 | +    sed -i "s|port=.*|port=${VOIP_PORT}|g" /etc/mumble-server.ini
 | 
	
		
			
			| 264 | 264 |  
 | 
	
		
			
			| 265 |  | -	VOIP_ONION_HOSTNAME=$(add_onion_service voip ${VOIP_PORT} ${VOIP_PORT})
 | 
	
		
			
			| 266 |  | -	if ! grep -q $"VoIP onion domain" $COMPLETION_FILE; then
 | 
	
		
			
			| 267 |  | -		echo "VoIP onion domain:$VOIP_ONION_HOSTNAME" >> $COMPLETION_FILE
 | 
	
		
			
			| 268 |  | -	fi
 | 
	
		
			
			|  | 265 | +    VOIP_ONION_HOSTNAME=$(add_onion_service voip ${VOIP_PORT} ${VOIP_PORT})
 | 
	
		
			
			|  | 266 | +    if ! grep -q $"VoIP onion domain" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 267 | +	echo "VoIP onion domain:$VOIP_ONION_HOSTNAME" >> $COMPLETION_FILE
 | 
	
		
			
			|  | 268 | +    fi
 | 
	
		
			
			| 269 | 269 |  
 | 
	
		
			
			| 270 |  | -	systemctl restart mumble-server
 | 
	
		
			
			|  | 270 | +    systemctl restart mumble-server
 | 
	
		
			
			| 271 | 271 |  
 | 
	
		
			
			| 272 |  | -	if ! grep -q $"Mumble Server" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 273 |  | -		echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 274 |  | -		echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 275 |  | -		echo $'Mumble Server' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 276 |  | -		echo '=============' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 277 |  | -		echo $"Mumble onion domain:$VOIP_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 278 |  | -		echo $'Mumble server username: mumble-server' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 279 |  | -		if [[ $SYSTEM_TYPE != "VARIANT_MESH" ]]; then
 | 
	
		
			
			| 280 |  | -			echo $"Mumble server password: $VOIP_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 281 |  | -		fi
 | 
	
		
			
			| 282 |  | -		echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 283 |  | -		echo $'To connect to the Mumble server use your username and the server password shown above.' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 284 |  | -		chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
 | 
	
		
			
			| 285 |  | -		chmod 600 /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 272 | +    if ! grep -q $"Mumble Server" /home/$MY_USERNAME/README; then
 | 
	
		
			
			|  | 273 | +	echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 274 | +	echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 275 | +	echo $'Mumble Server' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 276 | +	echo '=============' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 277 | +	echo $"Mumble onion domain:$VOIP_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 278 | +	echo $'Mumble server username: mumble-server' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 279 | +	if [[ $SYSTEM_TYPE != "VARIANT_MESH" ]]; then
 | 
	
		
			
			|  | 280 | +	    echo $"Mumble server password: $VOIP_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 286 | 281 |  	fi
 | 
	
		
			
			|  | 282 | +	echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 283 | +	echo $'To connect to the Mumble server use your username and the server password shown above.' >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 284 | +	chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 285 | +	chmod 600 /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 286 | +    fi
 | 
	
		
			
			| 287 | 287 |  
 | 
	
		
			
			| 288 |  | -	function_check configure_firewall_for_voip
 | 
	
		
			
			| 289 |  | -	configure_firewall_for_voip
 | 
	
		
			
			| 290 |  | -	echo 'install_mumble' >> $COMPLETION_FILE
 | 
	
		
			
			|  | 288 | +    function_check configure_firewall_for_voip
 | 
	
		
			
			|  | 289 | +    configure_firewall_for_voip
 | 
	
		
			
			|  | 290 | +    echo 'install_mumble' >> $COMPLETION_FILE
 | 
	
		
			
			| 291 | 291 |  }
 | 
	
		
			
			| 292 | 292 |  
 | 
	
		
			
			| 293 | 293 |  # NOTE: deliberately no exit 0
 |