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)
55 lines
1.9 KiB
Plaintext
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.
|