 			do {
 				let (data, _) = try socket.receive(maxBytes: 4096)
 
-				self?.decryptVoiceData(Data(bytes: data))
+				try self?.decryptVoiceData(Data(bytes: data))
 			} catch {
 				self?.error(message: "Error reading voice data from udp socket")
 			}

		encoder = nil
	}

	private func createVoicePacket(_ data: [UInt8]) -> [UInt8] {
		defer { free(encrypted) }

		let audioSize = Int(crypto_secretbox_MACBYTES) + defaultAudioSize

		return Array(header)
	}

	private func decryptVoiceData(_ data: Data) throws {
		defer { free(unencrypted) }

		let rtpHeader = Array(data.prefix(12))
