| Description | Uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables | 
- STUN (RFC 5389)
Version 2.5.2012.01 First release (UDP mostly)
| Name | Description | 
|---|---|
Class unaSTUNagent | 
STUN base agent | 
Class unaSTUNclient | 
STUN client | 
Class unaSTUNClient_req | 
STUN Client request | 
Class unaSTUNClient_server | 
STUN Client server | 
Class unaSTUNserver | 
STUN server | 
packed record unaSTUN_ALTERNATE_SERVER_attr | 
|
packed record unaSTUN_attrHdr | 
|
packed record unaSTUN_ERROR_CODE_attr | 
|
packed record unaSTUN_FINGERPRINT_attr | 
|
packed record unaSTUN_hdr | 
|
packed record unaSTUN_MAPPED_ADDRESS_attr | 
|
packed record unaSTUN_MESSAGE_INTEGRITY_attr | 
|
packed record unaSTUN_NONCE_attr | 
|
packed record unaSTUN_REALM_attr | 
|
packed record unaSTUN_SOFTWARE_attr | 
|
packed record unaSTUN_UNKNOWN_ATTRIBUTES_attr | 
|
packed record unaSTUN_USERNAME_attr | 
|
packed record unaSTUN_XOR_MAPPED_ADDRESS_attr | 
function getMappedIPPort4(const host: string; out mipH: TIPv4H; out mport, boundPort: uint16; const port: string = ''; proto: int = C_STUN_PROTO_UDP; timeout: tTimeout = 20000; useDNSSRV: bool = true; socket: unaSocket = nil; const bind2ip: string = '0.0.0.0'; const _bind2port: string = '0'): bool; | 
function getMappedIPPort4(const host: string; out mipH: TIPv4H; out mport, boundPort: uint16; const port: string = ''; proto: int = C_STUN_PROTO_UDP; timeout: tTimeout = 20000; useDNSSRV: bool = true; socket: unaSocket = nil; const bind2ip: string = '0.0.0.0'; const _bind2port: string = '0'): bool; | 
| 
 Performs synchronous mapping. 
 Parameters
 ReturnsTrue if mapping was successfull  | 
punaSTUN_hdr = ˆunaSTUN_hdr; | 
| 
 STUN message header  | 
punaSTUN_attrHdr = ˆunaSTUN_attrHdr; | 
| 
 STUN attribute header  | 
punaSTUN_MAPPED_ADDRESS_attr = ˆunaSTUN_MAPPED_ADDRESS_attr; | 
| 
 MAPPED-ADDRESS attr  | 
punaSTUN_XOR_MAPPED_ADDRESS_attr = ˆunaSTUN_XOR_MAPPED_ADDRESS_attr; | 
| 
 XOR-MAPPED-ADDRESS attr  | 
punaSTUN_USERNAME_attr = ˆunaSTUN_USERNAME_attr; | 
| 
 USERNAME attr  | 
punaSTUN_MESSAGE_INTEGRITY_attr = ˆunaSTUN_MESSAGE_INTEGRITY_attr; | 
| 
 MESSAGE-INTEGRITY attr  | 
punaSTUN_FINGERPRINT_attr = ˆunaSTUN_FINGERPRINT_attr; | 
| 
 FINGERPRINT attr  | 
punaSTUN_ERROR_CODE_attr = ˆunaSTUN_ERROR_CODE_attr; | 
| 
 ERROR-CODE attr  | 
punaSTUN_REALM_attr = ˆunaSTUN_REALM_attr; | 
| 
 REALM attr  | 
punaSTUN_NONCE_attr = ˆunaSTUN_NONCE_attr; | 
| 
 NONCE attr  | 
punaSTUN_UNKNOWN_ATTRIBUTES_attr = ˆunaSTUN_UNKNOWN_ATTRIBUTES_attr; | 
| 
 UNKNOWN-ATTRIBUTES attr  | 
punaSTUN_SOFTWARE_attr = ˆunaSTUN_SOFTWARE_attr; | 
| 
 SOFTWARE attr  | 
punaSTUN_ALTERNATE_SERVER_attr = ˆunaSTUN_ALTERNATE_SERVER_attr; | 
| 
 ALTERNATE-SERVER attr  | 
unaSTUNServerOnResponse = procedure(sender: tObject; addr: PSockAddrIn; req: punaSTUN_hdr) of object; | 
| 
 Response event.  | 
C_FINGERPRINT_XOR		= $5354554e; | 
C_INITIAL_RTO		= 1000; | 
| 
 Server Error  | 
C_MAGIC_COOKIE		= $2112A442; | 
C_STUN_ATTR_ALTERNATE_SERVER                  = $8023; | 
C_STUN_ATTR_ERROR_CODE			= $0009; | 
C_STUN_ATTR_FINGERPRINT                       = $8028; | 
C_STUN_ATTR_MAPPED_ADDRESS                    = $0001; | 
C_STUN_ATTR_MESSAGE_INTEGRITY			= $0008; | 
C_STUN_ATTR_NONCE                             = $0015; | 
C_STUN_ATTR_REALM                             = $0014; | 
C_STUN_ATTR_Reserved                          = $0000; | 
| 
 attributes Comprehension-required range (0x0000-0x7FFF):  | 
C_STUN_ATTR_Reserved_was_CHANGED_ADDRESS      = $0005; | 
C_STUN_ATTR_Reserved_was_CHANGE_ADDRESS       = $0003; | 
C_STUN_ATTR_Reserved_was_PASSWORD		= $0007; | 
C_STUN_ATTR_Reserved_was_REFLECTED_FROM       = $000B; | 
C_STUN_ATTR_Reserved_was_RESPONSE_ADDRESS	= $0002; | 
C_STUN_ATTR_Reserved_was_SOURCE_ADDRESS       = $0004; | 
C_STUN_ATTR_SOFTWARE                          = $8022; | 
| 
 Comprehension-optional range (0x8000-0xFFFF)  | 
C_STUN_ATTR_UNKNOWN_ATTRIBUTES		= $000A; | 
C_STUN_ATTR_USERNAME				= $0006; | 
C_STUN_ATTR_XOR_MAPPED_ADDRESS                = $0020; | 
C_STUN_CLASS_INDICATION	= 01; | 
C_STUN_CLASS_REQ		= 00; | 
| 
 TODO: yep classes  | 
C_STUN_CLASS_RESP_ERROR	= 03; | 
C_STUN_CLASS_RESP_SUCCESS	= 02; | 
C_STUN_DEF_PORT		= 3478; | 
| 
 default port  | 
C_STUN_DEF_PORT_TLS		= 5349; | 
C_STUN_ERR_ALTERNATE		= 300; | 
| 
 error codes  | 
C_STUN_ERR_BAD_REQUEST	= 400; | 
| 
 Try Alternate  | 
C_STUN_ERR_SERVER_ERROR	= 500; | 
| 
 Stale Nonce  | 
C_STUN_ERR_STALE_NONCE	= 438; | 
| 
 Unknown Attribute  | 
C_STUN_ERR_UNAUTHORIZED	= 401; | 
| 
 Bad Request  | 
C_STUN_ERR_UNKNOWN_ATTR	= 420; | 
| 
 Unauthorized  | 
C_STUN_MSGTYPE_BINDING	= 01; | 
| 
 methods  | 
C_STUN_PROTO_TCP	= 2; | 
C_STUN_PROTO_TLS	= 3; | 
C_STUN_PROTO_UDP	= 1; | 
| 
 transport  | 
C_TOTAL_Rc		= 5; | 
| 
 1 second  | 
(c) 2012 Lake of Soft