func ParseTurn(data []byte, credentials *common.Credentials) (*common.Message, error) {
	return common.Parse(data, credentials, turn.AttributeSet())
}
ParseTurn Parses data per the RFC 5766 TURN specification. Undefined attribute
types will be left un-parsed. Credentials, when provided, are used to validate
provided message integrity (used for authenticity) of the parsed message.
package goturn
import (
	"crypto/rand"
	common "github.com/willscott/goturn/common"
	"github.com/willscott/goturn/stun"
	"github.com/willscott/goturn/turn"
	"net"
)
const (
	AllocateRequest             common.HeaderType = 0x0003
	RefreshRequest                                = 0x0004
	CreatePermissionRequest                       = 0x0008
	ChannelBindRequest                            = 0x0009
	ConnectRequest                                = 0x000a
	ConnectionBindRequest                         = 0x000b
	SendIndication                                = 0x0016
	DataIndication                                = 0x0017
	ConnectionAttemptIndication                   = 0x001c
	AllocateResponse                              = 0x0103
	RefreshResponse                               = 0x0104
	CreatePermissionResponse                      = 0x0108
	ChannelBindResponse                           = 0x0109
	ConnectResponse                               = 0x010a
	ConnectionBindResponse                        = 0x010b
	AllocateError                                 = 0x0113
	RefreshError                                  = 0x0114
	CreatePermissionError                         = 0x0118
	ChannelBindError                              = 0x0119
	ConnectError                                  = 0x011a
	ConnectionBindError                           = 0x011b
)
const (
	EvenPort         common.AttributeType = 0x18
	DontFragment                          = 0x1A
	ReservationToken                      = 0x22
)