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 - Microsoft Response Point 1.0SP2 (D-Link VoiceCenter) 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 - FlowRoute (VoIP 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: 9a6d7a6bb6fff162775b1e1fb7018de9c69642cbf8626185dc6ffceeeba07736 GnuPG signature for siproxd-0.8.3.tar.gz: -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABCgAGBQJfRBlxAAoJEJ13f30qwnQAf3wP/RWBUqZHZgEVTAYyrXglZtFK bA1BPTpcOxyD4F2+wtuOCnyLJYjMLqA2+A6QCMImBhimBQ4ihtOpZZD/dka9Bjz/ tYzY4YbAODDrCJoWtyRkGSXD3rgiOnwoa3r141HrIm0bfXBD8KK58a96nTavBG7b t09S9GmTaj6UW8ObfRarS6yfAer00F6EdA5U/cTIEh3HHwBjxi6uCe6XocduzEfl 56RwFEcSqnd1QBXMMkJo0C9xfYpwbU4Iam8nYLtf7YCXEimZS+N2XSBCq/gMow7V 5DZXLIFCyEAeA1Rp+/+Qf7HZmCbZG+MZgWj/ISoigon/xRzuaAjprJDPlBEFJuyh bapgXvqxBO+RzPK7TutTK+U3jwwuvtNH3+EUaYkognMS6C0KARrtTj7oKI3OyU/s xdHN22vspWQjxRZ3WUd2Oo3fuPdnhFScgfmwI1eSzD/9VbIsuWWXuTTIm3rlFkXM 5cCwHvT/JppHp2j0bj35/LAtwb3FlOY+WPt6jX52Lh/VKWi1I2SIbSYU0MQGuPyX asqp4ZdmyEP2vsHl/DaYyMEJwo2Lgdqp9UUhkbIsI7yZOEHquKcWrD04RdsIEBTG DbpIcbgc/O3Bf0ZGuKDxgvSxwDLtDIvoTxRGOAaIQ+DRo1E0WV+h0yx8PbWGWuui brwhMLv9ZERzLcsXF2t4 =DkVM -----END PGP SIGNATURE----- NEW GPG KEY! pub 4096R/2AC27400 2017-07-11 Thomas Ries (HB9XAR)Key fingerprint = 6560 75BE 4D4D 6C4D 8005 D4B4 9D77 7F7D 2AC2 7400 Key available at http://siproxd.tuxworld.ch/2AC27400.pub