https://github.com/oherrala/haskell-stun
Haskell STUN (Session Traversal Utilities for NAT) implementation
https://github.com/oherrala/haskell-stun
haskell-library library nat-traversal rfc-5389 rfc-5766 rfc-5928 stun turn webrtc
Last synced: about 1 year ago
JSON representation
Haskell STUN (Session Traversal Utilities for NAT) implementation
- Host: GitHub
- URL: https://github.com/oherrala/haskell-stun
- Owner: oherrala
- License: mit
- Created: 2016-05-24T16:40:24.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2021-12-19T21:08:12.000Z (over 4 years ago)
- Last Synced: 2025-04-24T00:05:14.637Z (about 1 year ago)
- Topics: haskell-library, library, nat-traversal, rfc-5389, rfc-5766, rfc-5928, stun, turn, webrtc
- Language: Haskell
- Homepage:
- Size: 48.8 KB
- Stars: 14
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Haskell STUN (Session Traversal Utilities for NAT) implementation
Protocol specifications:
STUN:
* [RFC5389](https://tools.ietf.org/html/rfc5389): Session Traversal Utilities for NAT (STUN)
* [RFC5780](https://tools.ietf.org/html/rfc5780): NAT Behavior Discovery Using Session Traversal Utilities for NAT (STUN)
TURN:
* [RFC5766](https://tools.ietf.org/html/rfc5766): Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)
* [RFC5928](https://tools.ietf.org/html/rfc5928): Traversal Using Relays around NAT (TURN) Resolution Mechanism
Even moar:
* [RFC7350](https://tools.ietf.org/html/rfc7350): Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN)
# Observed in the wild
## Chrome's TURN
* C: Allocate Request [Requested-Transport]
* S: Allocate Error [Error-Code, Nonce, Realm, Software, Fingerprint]
* C: Allocate Request [Request-Transport, Username, Realm, Nonce, Message-Integrity]
* S: Allocate Success [XOR-Relayed-Address, XOR-Mapped-Address, Lifetime, Software, Message-Integrity, Fingerprint]
* C: Refresh Request [Lifetime, Username, Realm, Nonce, Message-Integrity]
* S: Refresh Success [Lifetime, Software, Message-Integrity, Fingerprint]
## Firefox's TURN
* C: Allocate Request [Requested-Transport]
* S: Allocate Error [Error-Code, Nonce, Realm, Software, Fingerprint]
* C: Allocate Request [Request-Transport, Username, Realm, Nonce, Message-Integrity]
* S: Allocate Success [XOR-Relayed-Address, XOR-Mapped-Address, Lifetime, Software, Message-Integrity, Fingerprint]
* C: Refresh Request [Lifetime, Username, Realm, Nonce, Message-Integrity]
* S: Refresh Success [Lifetime, Software, Message-Integrity, Fingerprint]