Release Notes for siproxd-0.8.3
===============================



Major changes since 0.8.2:
 - mostly bugfixes and performance improvements


 New plugins:
 - plugin_stats: write some statistics about currently active calls
 - plugin_blacklist: new plugin to block UACs that cause excessive 
   failures during REGISTER attempts
 

Upgrade Notes 0.8.2 to 0.8.3:
 - Merge the configuration file

General Overview:
 - SIP (RFC3261) Proxy for SIP based softphones hidden behind a
   masquerading firewall
 - plugin system allows loading extensions to accomplish various tasks
 - Support for PRACK messages (RFC3262)
 - Support for UPDATE messages (RFC3311)
 - SIP UDP and TCP supported
 - Works with "dial-up" connections (dynamic IP addresses)
 - Multiple local users/hosts can be masqueraded simultaneously
 - Access control (IP based) for incoming traffic
 - Proxy Authentication for registration of local clients (User Agents)
   with individual passwords for each user
 - May be used as pure outbound proxy (registration of local UAs
   to a 3rd party registrar)
 - runs on various operating systems (see below)
 - Full duplex RTP data stream proxy for *incoming* and *outgoing*
   audio data - no firewall masquerading entries needed
 - Port range to be used for RTP traffic is configurable
   (-> easy to set up appropriate firewall rules for RTP traffic)
 - RTP proxy can handle multiple RTP streams (eg. audio + video)
   within a single SIP session.
 - Symmetric RTP support
 - Symmetric SIP signaling support
 - Supports running in a chroot jail and changing user-ID after startup
 - All configuration done via one simple ASCII configuration file
 - Logging to syslog in daemon mode
 - RPM package (Spec file)
 - The host part of UA registration entries can be masqueraded
   (mask_host, masked_host config items). Some Siemens SIP phones seem to
   need this 'feature'.
 - Provider specific outbound proxies can be configured
 - Can run "in front of" a NAT router.(in the local LAN segment)
 - supports "Short-Dials"
 - configurable RFC3581 (rport) support for sent SIP packets

Plugins:
 - plugin_fix_fbox_anoncall
   This plugin attempts to work-around some SIP issues with
   Fritzbox devices and anonymous calls. Fritzbox devices do change their
   Contact header when answering an anonymous call (suppressed CLID) - this
   in turn confuses siproxd. This plugin attempts to work around this by
   sanitizing the Contact Header before processing.
 - plugin_siptrunk
   Plugin to handle SIP Trunks where using *one* single SIP account a
   whole number block is routed. Please read the comments in the config
   file section.
 - plugin_codecfilter
   Allows blacklisting of codecs and removes those from any passing SDP 
   payload in both (incoming and outgoing) directions. This allows the 
   proxy to force the exclusion of particular codecs in the negotiation 
   between a local UA and a remote side.
 - plugin_stripheader
   Allows to strip particular headers from SIP messages. Useful if your 
   provider chokes on some headers included by your local UA.
 - plugin_regex
   Applies an extended regular expression to the 'To' URI.
 - plugin_prefix
   Unconditionally prefixes all outgoing calls with a prefix.
 - plugin_stun
   Uses an external STUN server to determine the public IP
   address of siproxd. Useful for "in-front-of-NAT-router"
   scenarios.
 - plugin_fix_DTAG
   This plugin attempts to work-around some SIP issues with
   T-ONLINE SIP (as of 2015). T-Online.de sends broken Via headers in 
   responses, causing the received SIP response to be discarded by
   any SIP client that properly checks the Via chain.
 - plugin_fix_bogus_via
   Incoming (from public network) SIP messages are checked for broken
   SIP Via headers. If the IP address in the latest Via Header is
   part of the list below, it will be replaced by the IP where the
   SIP message has been received from.
 - plugin_shortdial
   Quick Dial (Short Dial)
   Ability to define quick dial numbers that can be accessed by
   dialing e.g. "*01" from a local phone.

Requirements:
 - pthreads (Linux)
 - glibc2 / libc5 / uClibc
 - libosip2 (3.x.x)

Mainly tested on:
- CentOS
  This is the main development and testing environment. Other platforms
  are not extensively tested. However, the code should be quite portable
  and build on many UNIX/Linux flavors. 

Builds on (tested by dev-team or reported to build):
- Linux:	CentOS/RedHat
- FreeBSD:	FreeBSD 10

Reported interoperability with softphones:
 - SNOM series
 - Fritzbox UAs
 - Grandstream BudgeTone-100 series
 - Linphone (local and remote UA) (http://www.linphone.org)
 - Kphone (local and remote UA) (http://www.wirlab.net/kphone/)
 - MSN messenger 4.6 (remote and local UA)
 - X-Lite
 - SJPhone softphone
 - Asterisk PBX (using a SIP Trunk, masqueraded via siproxd, chan_sip driver)
 - Ekiga
 - FreePBX
 - Yealink series

Reported interoperability with SIP service providers:
 - Sipgate	(http://www.sipgate.de)
 - Stanaphone	(SIP Gateway to PSTN)
 - Sipcall.ch	(Swiss VoIP provider)
 - Nexphone.ch	(Swiss VoIP provider - via resellers)
 - Ekiga
 - DTAG (Deutsche Telecom AG) -> requires plugin_fix_DTAG to work around
                                 some issues with this provider


 If you have siproxd successfully running with another SIP phone
 and/or service provider, please drop me a short note so I can update
 the list.

Known interoperability issues with SIP service providers:
 - callcentric.com	(AFAIK callcentric fails with "500 network failure"
 			during REGISTER if more than one Via header is
			present in a SIP packet. Having multiple Via headers
			is completely in compliance with RFC3261. This might
			be related to their "NAT problem avoidance magic".
			There is nothing that can be done within siproxd
			to avoid this issue as callcentric does not comply
			with the SIP specification.



Known bugs:
   - SRV DNS records are not yet looked up, only A records
   There will be more for sure...

If you port siproxd to a new platform or do other kinds of changes
or bugfixes that might be of general interest, please drop me a
line. Also if you intend to include siproxd into a software
distribution I'd be happy to get a short notice.


-----
Signatures for siproxd-0.8.3.tar.gz archive:
SHA-256 Hash:	

GnuPG signature for siproxd-0.8.3.tar.gz:
<!-- -->

NEW GPG KEY!
pub  4096R/2AC27400 2017-07-11 Thomas Ries (HB9XAR) <thomas.ries@easytux.ch>
      Key fingerprint = 6560 75BE 4D4D 6C4D 8005  D4B4 9D77 7F7D 2AC2 7400
      Key available at http://siproxd.tuxworld.ch/2AC27400.pub

