17 #ifndef _TurnMessage_h_ 18 #define _TurnMessage_h_ 30 #define MSG_TURN_ALLOCATE_REQUEST 0x0003 31 #define MSG_TURN_ALLOCATE_RESPONSE 0x0103 32 #define MSG_TURN_ALLOCATE_ERROR_RESPONSE 0x0113 33 #define MSG_TURN_SEND_REQUEST 0x0004 34 #define MSG_TURN_SEND_RESPONSE 0x0104 // deprecated 35 #define MSG_TURN_SEND_ERROR_RESPONSE 0x0114 // deprecated 36 #define MSG_TURN_DATA_INDICATION 0x0115 37 #define MSG_TURN_ACTIVE_DESTINATION_REQUEST 0x0006 38 #define MSG_TURN_ACTIVE_DESTINATION_RESPONSE 0x0106 39 #define MSG_TURN_ACTIVE_DESTINATION_ERROR_RESPONSE 0x0116 40 #define MSG_TURN_CONNECTION_STATUS_INDICATION 0x0117 41 #define MSG_TURN_CLOSE_BINDING_REQUEST 0x0009 42 #define MSG_TURN_CLOSE_BINDING_RESPONSE 0x0109 43 #define MSG_TURN_CLOSE_BINDING_ERROR_RESPONSE 0x0119 49 #define ATTR_TURN_LIFETIME 0x000D 50 #define ATTR_TURN_MAGIC_COOKIE 0x000F // deprecated 51 #define ATTR_TURN_BANDWIDTH 0x0010 52 #define ATTR_TURN_DESTINATION_ADDRESS 0x0011 // deprecated 53 #define ATTR_TURN_REMOTE_ADDRESS 0x0012 // rename from ATTR_TURN_SOURCE_ADDRESS 54 #define ATTR_TURN_DATA 0x0013 55 #define ATTR_TURN_RELAY_ADDRESS 0x0016 56 #define ATTR_TURN_REQUESTED_PORT 0x0018 57 #define ATTR_TURN_REQUESTED_TRANSPORT 0x0019 59 #define ATTR_TURN_REQUESTED_IP 0x0022 61 #define ATTR_MAGIC_COOKIE 0x72c64bc6 64 #define TURN_ERROR_NO_BINDING_CODE 437 65 #define TURN_ERROR_NO_BINDING_TEXT "no binding" 67 #define TURN_ERROR_TRANSITIONING_CODE 439 68 #define TURN_ERROR_TRANSITIONING_TEXT "transitioning" 70 #define TURN_ERROR_WRONG_USERNAME_CODE 441 71 #define TURN_ERROR_WRONG_USERNAME_TEXT "wrong username" 73 #define TURN_ERROR_TRANSPORT_PROTOCOL_CODE 442 74 #define TURN_ERROR_TRANSPORT_PROTOCOL_TEXT "bad transport" 76 #define TURN_ERROR_INVALID_IP_CODE 443 77 #define TURN_ERROR_INVALID_IP_TEXT "invalid ip" 79 #define TURN_ERROR_INVALID_PORT_CODE 444 80 #define TURN_ERROR_INVALID_PORT_TEXT "invalid port" 82 #define TURN_ERROR_TCP_ONLY_CODE 445 83 #define TURN_ERROR_TCP_ONLY_TEXT "tcp only" 85 #define TURN_ERROR_CONNECTION_FAILED_CODE 446 86 #define TURN_ERROR_CONNECTION_FAILED_TEXT "connection failed" 88 #define TURN_ERROR_CONNECTION_TIMEOUT_CODE 447 89 #define TURN_ERROR_CONNECTION_TIMEOUT_TEXT "connection timeout" 118 bool bLegacyMode =
true) ;
127 virtual void reset() ;
129 virtual bool encodeBody(
char* pBuf,
size_t nBufLength,
size_t& nBytesUsed) ;
173 bool* pbDataIndication =
NULL) ;
185 size_t& nBytesLeft) ;
191 size_t& nBytesLeft) ;
196 bool mbLifetimeValid ;
199 bool mbBandwidthValid ;
202 bool mbDestinationAddressValid ;
205 bool mbTurnRemoteAddressValid ;
209 bool mbTurnDataValid ;
212 bool mbRelayAddressValid ;
215 bool mbTransportValid ;
218 bool mbRequestedIpValid ;
231 #endif // _TurnMessage_h_ void setBandwidth(uint32_t rKBPS)
Definition: TurnMessage.cpp:200
Definition: TurnMessage.h:100
virtual bool parseAttribute(STUN_ATTRIBUTE_HEADER *pHeader, char *pBuf)
Definition: TurnMessage.cpp:500
bool getRequestedTransport(TURN_TRANSPORT_TYPE &rTransportType)
Definition: TurnMessage.cpp:335
Include this file if you want use C99 integer types with specified width and corresponding set of mac...
bool getLifetime(uint32_t &rSecs)
Definition: TurnMessage.cpp:265
void setRequestedIp(const char *szIp, uint16_t port)
Definition: TurnMessage.cpp:254
virtual void reset()
Definition: TurnMessage.cpp:90
Definition: StunMessage.h:138
virtual bool isRequestOrNonErrorResponse()
Definition: TurnMessage.cpp:465
unsigned short uint16_t
Definition: stdint.h:79
virtual bool validateMessageType(uint16_t type)
Definition: TurnMessage.cpp:361
#define NULL
Definition: UtlDefs.h:29
void setDestinationAddress(const char *szIp, uint16_t port)
Definition: TurnMessage.cpp:206
void setLifetime(uint32_t secs)
Definition: TurnMessage.cpp:193
bool getRequestedIp(char *szIp, uint16_t &rPort)
Definition: TurnMessage.cpp:346
void setData(const char *pData, uint16_t nLength)
Definition: TurnMessage.cpp:222
unsigned int uint32_t
Definition: stdint.h:80
TURN_TRANSPORT_TYPE
Definition: TurnMessage.h:97
bool getTurnRemoteAddress(char *szIp, uint16_t &rPort)
Definition: TurnMessage.cpp:298
bool encodeAttributeRaw(uint16_t type, const char *cBuf, size_t length, char *&pBuf, size_t &nBytesLeft)
Definition: TurnMessage.cpp:586
bool getData(char *&rpData, uint16_t &nLength)
Definition: TurnMessage.cpp:310
void setRelayAddress(const char *szIp, uint16_t port)
Definition: TurnMessage.cpp:236
virtual ~TurnMessage()
Definition: TurnMessage.cpp:80
Definition: TurnMessage.h:99
virtual bool encodeBody(char *pBuf, size_t nBufLength, size_t &nBytesUsed)
Definition: TurnMessage.cpp:119
Definition: StunMessage.h:144
void setRequestedTransport(TURN_TRANSPORT_TYPE transportType)
Definition: TurnMessage.cpp:245
static bool isTurnMessage(const char *pBuf, uint16_t nBufLength, bool *pbDataIndication=NULL)
Definition: TurnMessage.cpp:392
bool getBandwidth(uint32_t &rKBPS)
Definition: TurnMessage.cpp:275
bool getDestinationAddress(char *szIp, uint16_t &rPort)
Definition: TurnMessage.cpp:286
Definition: TurnMessage.h:107
TurnMessage(TurnMessage *pRequest=NULL, bool bLegacyMode=true)
Definition: TurnMessage.cpp:49
bool encodeAttributeLong(uint16_t type, uint32_t value, char *&pBuf, size_t &nBytesLeft)
Definition: TurnMessage.cpp:572
void setTurnRemoteAddress(const char *szIp, uint16_t port)
Definition: TurnMessage.cpp:214
Definition: StunMessage.h:211
bool getRelayAddress(char *szIp, uint16_t &rPort)
Definition: TurnMessage.cpp:322