siproxd/TODO
Thomas Ries 00dfe93a0d - Introduced the use of gethostbyname_r() if available. As siproxd
uses threads it probably is a very good idea (some funny things
  seen with Linux 2.4.18 kernel & RTP proxy - gethostbyname()
  did return a NULL result but has h_errno set to 0 "every fine, thanks")
  Future will show it this helps.
- Had overlooked one inet_aton in register.c - replaced to utils_inet_aton
- Fixed a compiler warning in log.c for Solaris. Siproxd now at least
  builds on Solaris (tested on: SunOS 5.9 sun4u sparc SUNW,Ultra-60)
2003-11-22 21:54:21 +00:00

55 lines
1.9 KiB
Plaintext

TODOs, in random order:
=======================
- siproxd daemonized: looks like clashes between threads
- lost 200 ACK immediately before RTP starts...
- TERM handler
- /var/run PID file
- check via loop and private IP addresses
can comment be used to store a unique ID in there?
- multiple inbound interfaces - do I need to be aware of inbound at all?
- Documentation (yeah, yeah...)
- general security issues
- security tests for received SIP messages (function securitycheck)
- automagically create a proper config file during install
- get_ip_by_host: reduce DNS timeouts (seems to be a more complex problem...)
- via loop detection: send 482 error code
- support Record-Route header
- feature: don't bind to 0.0.0.0 address, but only to inbound/outbound IF's
(defined by IFNAME)
- support IPTABLES for RTP proxying -> use libiptc
- rtpproxy_masq:
RACE CONDITIONS! A slot may be timed out, even if the actual
masquerading tunnel is still active. A following new
INVITE then tries to use the believed free port -> Buh
- Can we poll (/proc/something) to figure out if the tunnel
is still active before deleting? This would require knowledge
of the text layout in /proc/xxx.
- are there some other possibilities (netfilter/libiptc)?
- introduce some kind of connection STATE to the proxy table.
Timeout based discarding only is active for non-established.
An INVITE would set the STATE to CONNECTING, the following
ACK to CONNECTED. A CONNECTED entry can only be deleted by
a BYE or CANCEL.
- NETFILTER: during startup (RTP initialization) siproxd should
clean left over entries that are within the RTP proxy port range
- NETFILTER masquerading:
it looks like it is not possible to create an entry in the
ip_conntrack table from an userspace application. How do we proceed?
We just might insert/delete DNAT entries in the PREROUTE NAT table.
This the means that we must implement a connection state into the
proxy table.