ReTurn ToDo List
From reSIProcate
[edit] General TODO
- reduce library use - remove BOOST and/or rutil requirement - remove ASIO for client??
- allow multiple interfaces to be used for relay
- per user allocation quota enforcement
- move TLS server settings to configuration
- cleanup stun message class so that there are accessors for all data members
- Timeout Channel Bindings - currently binding last until the allocation is destroyed
- The server is supposed to prevent a relayed transport address and the 5-tuple from being reused in different allocations for 2 minutes after the allocation expires
- Configuration Framework
- Multi-threaded support
- Bandwidth check
- TCP Relay
- Short Term passwords do not make any sense in reTurnServer (outside of RFC3489 backcompat) - they need to be supported on client APIs
[edit] RFC53389 TODO's
- Username must contain UTF-8 sequence of bytes, and must have been processed by SASLprep
- Realm qdtext or quoted-pair - It must UTF-8 encoded and MUST be less than 128 characters (which can be as long as 763 bytes), and must be processed by SASLprep
- Nonce qdtext or quoted-pair - MUST be less than 128 characters (which can be as long as 763 bytes)
- Software must be a UTF-8 sequence of less than 128 characters (which can be as long as 763 byes)
- The Password used in the HMAC key must be SASLprep processed
- remove quotes and trailing nulls from username, realm. remove trailing nulls from password before forming MD5 hash for message integrity
- Errorcode Reason Phrase must be a UTF-8 sequence of less than 128 characters (which can be as long as 763 byes)
- need handling for 300 Try Alternate response - currently applications responsibility
- the following values should be configurable
- Initial RTO (default 500ms)
- Rc (default 7)
- Rm (default 16)
- actual RTO should be calculated
- UDP retransmissions should stop if a hard ICMP error is seen
- need to do client side TLS certificate hostname checks after successful handshake
- DNS SRV Discovery - currently only does host record lookup (using ASIO) - _stun._udp, _stun._tcp, _stuns._tcp, _turn._udp, _turn._tcp, _turns._tcp
[edit] Client TODO
- rework synchronous sockets to use Asynchrous sockets to unify implementation better
- retries should be paced at 500ms, 1000ms, 2000ms, etc. - after 442, 443, or 444 response - currently applications responsibility
- keepalive usage??
- add option to require message integrity - depends on usage - ICE

