49 Commits

Author SHA1 Message Date
Thomas Ries
2448fa5785 *** empty log message *** 2007-05-27 18:26:38 +00:00
Thomas Ries
9fdd8ca626 - Client-ID in RTP proxy is derived from Client IP address.
This should fix an issue with unexpectedly timing-out RTP
  streams (actually too many RTP streams get started).
2007-05-07 18:54:45 +00:00
Thomas Ries
49b176d277 - Increased RTP buffer size 2007-02-19 19:31:23 +00:00
Thomas Ries
b2722b0db3 *** empty log message *** 2006-06-23 19:02:12 +00:00
Thomas Ries
86e3992e58 *** empty log message *** 2006-06-23 18:59:37 +00:00
Thomas Ries
f90acd86aa - dejitter: call to calculate_transmit_time() was missing in rtpproxy_main() 2006-06-19 20:44:20 +00:00
Thomas Ries
9f165e6694 - fix an issue in rtpproxy_relay that screwed up the client_id
after the dejitter extension from yesterday.
  NOTE: be careful with utils_inet_ntoa(), it uses a STATIC buffer !!!
2006-06-19 19:55:10 +00:00
Thomas Ries
ae230ebe44 - RTCP support
- dejitter feature by Hans Carlos Hofmann (<labtop-carlos@hchs.de>)
2006-06-18 19:12:35 +00:00
Thomas Ries
a155e32d27 - RTP timeout handling: allow unidirectional data w/o
terminating connection after timeout.
2006-06-11 20:29:34 +00:00
Thomas Ries
757f34b748 - a number of size_t fixes
- REGISTER response generated from siproxd must include
  a Contact header.

1. tell gcc that the logging functions use printf style
format strings. This gets gcc to tell us about a lot
of the problems.

2. size_t is not an int on AMD64, so don't treat it
like one. I've changed to use "%ld" format code and
cast to a long, which should work well enough.

3. some format strings didn't match the argument lists.
These fixes are pretty clear.

4. log_debug, log_error, log_warn, log_info could all
end up evaluating their varargs list multiple times if
the message was to be logged to multiple places. This
causes the second/third uses to access invalid memory
and potentially segfault. I fixed this by using
va_copy() to copy the varargs list for each use.
2006-05-20 11:48:53 +00:00
Thomas Ries
34fb9113ab - replaced some malloc() by osip_malloc(),
(hopefully) fixed a sporadic crash in sdp_message_parse()
- RTP timeouts on some PBX systems that include an video
  stream, but the called UA has no video capability.
2006-02-11 09:43:19 +00:00
Thomas Ries
07a314e7a5 - CALLIDHOST_SIZE to 128: support longer hostnames 2006-01-31 18:38:20 +00:00
Thomas Ries
2311cca685 - fix: no audio with some UAs that do not include a
Contact header in ACK messages (which is compliant).
2005-10-09 14:19:25 +00:00
Thomas Ries
ab08d2febf - allocate only even RTP port numbers
- started with own name lookup routines that honor SRV and NAPTR records
2005-08-31 03:34:35 +00:00
Thomas Ries
b440f8974d release cleanup 2005-05-05 10:38:29 +00:00
Thomas Ries
ab78ddb984 - feature: DSCP value for RTP packets defineable (by Nick
Vermeer, Internet Express)
2005-04-19 19:00:23 +00:00
Thomas Ries
8f211d48af feature: siproxd "in front of" a NAT router should work 2005-03-27 16:05:16 +00:00
Thomas Ries
533a1f4c56 removed test DEBUG output statements 2005-03-20 10:37:19 +00:00
Thomas Ries
4acb6d6e34 - when allocating local ports for RTP relaying, do this
in a round-robin way over the available port range.
2005-03-20 10:35:59 +00:00
Thomas Ries
1b15340452 - fix: Re-Invites may change remote IP address as well 2005-01-24 19:12:49 +00:00
Thomas Ries
80cdba4081 Cygwin build support 2005-01-08 10:25:52 +00:00
Thomas Ries
0f246be8b4 - copyright update to 2005 2005-01-08 10:05:13 +00:00
Thomas Ries
48d2334bd5 - doc/: added configuration example for X-Lite
- textual corrections in code
2004-05-23 14:36:54 +00:00
Thomas Ries
d9aec2834b - simplified SIP RX & TX routines 2004-04-25 22:50:00 +00:00
Thomas Ries
0e60d731de - stop all RTP streams on termination 2004-04-24 08:41:20 +00:00
Thomas Ries
7bb291a84b - release 0.5.5 cleanup
- use CVS $Id$ identification in each file
2004-04-11 10:40:00 +00:00
Thomas Ries
9cfd1d2233 - siproxd can be linked to a customer firewall control
module (library) that will be called for each RTP
  stream that is started/stopped.
2004-04-09 14:41:43 +00:00
Thomas Ries
f54a2553c2 - config file: don't complain on line s with only whitespaces
- fix: Via branch calculation
- security.c: increased max acceptable line length
- security.c: prevent libosip2 to die with "out of memory"
  on some malformed headers
2004-04-05 19:06:43 +00:00
Thomas Ries
f409950b8e - Realtime Scheduling for RTP proxy 2004-04-04 14:22:00 +00:00
Thomas Ries
b2ef7599c8 - added ./autogen.sh
- proxy_rewrite_invitation_body: check success of
  starting RTP relay before rewriting SDP body
- proxy_rewrite_invitation_body: don't fail on
  Contact header with no user part.
- security_check_sip: CSeq header must be present.
2004-03-21 11:15:23 +00:00
Thomas Ries
e75d1c8f79 - Removed superfluous backslashes for line continuation 2004-02-14 10:07:31 +00:00
Thomas Ries
3c9e22b0cb - Use same SIP port number for RX & TX (-> support
symmetric SIP signalling)
2004-02-11 00:24:47 +00:00
Thomas Ries
d0a2ac463a - RTP proxy: fixed a bug that could lead to a deadlock
on very rapid HOLD/unHOLD sequences.
2004-02-07 20:55:03 +00:00
Thomas Ries
9df56bc3b8 - logging routines now use a MUTEX to be thread safe.
- fix: local UA to UA RTP proxying did not proplery handle HOLD/unHOLDing
  a call
2004-02-07 17:37:50 +00:00
Thomas Ries
c9d86d78d7 - Fix for local-UA to local-UA RTP proxying, symmetric
RTP was not working.
2004-02-07 16:54:09 +00:00
Thomas Ries
ed67096584 - minor cleanup
- removed some old linphone-bug-workaround hack
2004-02-06 00:40:45 +00:00
Thomas Ries
2315f495d4 - Allow 2 of my vias in header to let 2 UA's sitting
behind the same siproxd to have conversation together
  UA1 -->--\       /-->--\
            siproxd       Registrar
  UA2 --<--/       \--<--/
- Redone code for evaluation if a received packet
  if coming from inbound or outbound interface
- RTP stream are now identified by call_id AND
  USERNAME of the contact header. This provides
  support for RTP proxying between 2 UAs sitting on the
  inbound network. -> Calls between local UAs going via
  siproxd should now work.
  UA1 -->--\
            siproxd
  UA2 --<--/
- Rewriting of SUBSCRIBE should now work.
- Removed obsolete prototypes from rtpproxy.h
- If the RTP stream in one direction is found to be
  stopped (sendto()) also stop the opposite direction
2004-02-01 01:44:42 +00:00
Thomas Ries
8af5baeddc - RTP proxy: don't try to forward empty RTP packets
- renamed some variables of rtp_proxytable_t to make
  better sense (changed meaning in fullduplex RTP proxy)
2004-01-29 00:02:22 +00:00
Thomas Ries
fe9beb76d5 - removed IPCHAINS & IPTABLES (netfilter) proxy support
- RTPPROXY correction: match RTP ports crosswise -
  use one single port (and socket) on each side (inbound/
  outbound) to send and receive RTP traffic for every
  active stream (patch by Christof Meerwald).
2004-01-28 00:19:30 +00:00
Thomas Ries
115b6b9ee0 - ./configure option: --enable-static to build
a completely statically linked executable
- REGISTER takes honors the expires parameter
  of the contact header
- Contact header of REGISTER response must be
  rewritten back to the local (true) URL
2004-01-23 00:02:18 +00:00
Thomas Ries
b910e74318 - possibility to log call establishment
- eliminated MOREDEBUG conditional
2003-12-21 14:36:45 +00:00
Thomas Ries
02ce749229 - full duplex RTP proxy (many thanks to Chris Ross for
his work on this). Up to now, only the RTP *Relay*
  has been tested (works with KPhone, BudgeTone)
- fix: SIP phones that allocate a random port for
  incomming SIP traffic should now work (like BudgeTone)
- fix: some SIP phones do change the RTP port number
  during a session (like KPhone during HOLD/unHOLD)
2003-12-17 21:22:50 +00:00
Thomas Ries
c88a45dd20 - use even port numbers for RTP traffic
- some minor fixes
2003-12-15 17:31:59 +00:00
Thomas Ries
db2d3e22d8 - some fixes in sockbind() (FreeBSD) by Jeremy Shaw
- added doc/devel.txt with issues to keep the code portable
2003-11-24 22:58:44 +00:00
Thomas Ries
7422e70993 - rtpproxy.c: sys/types.h needed for *BSD
- rtpproxy_relay.c: stdlib.h needed for atexit()
- tested: siproxd builds on FreeBSD 4.9
2003-11-14 18:48:51 +00:00
Thomas Ries
0f2e1a72c7 - siproxd can use another outbound proxy itself
- Linux 2.4.x: siproxd with RTP relay could hang
  on termination. Fixed.
2003-11-01 10:27:54 +00:00
Thomas Ries
c2d9091dd0 - Siproxd now also works as outbound proxy 'only',
means that local UAs may register themselfes to a
  3rd party registrar and use siproxd only as oubound
  proxy for masquerading purpose.
- fixed some errors with callid handling (NULL pointers)
2003-10-04 15:39:39 +00:00
Thomas Ries
196e6efe6d - released 0.3.6
- code cleanup for UDP masquerading tunnels
2003-09-22 20:33:16 +00:00
Thomas Ries
a19661887f RTP traversal using UDP masquerading tunnels from user space 2003-09-07 14:53:50 +00:00