Softswitch Development


We are constantly improving our Softswitch, introducing new features, bug fixes and optimizations and periodically publish new major versions on our website, however all our customers are served with the latest stable version available at the purchase time. All new versions are backward compatible, so you can upgrade at any time regardless of your version number.

All the important modules were developed by Mizutech from scratch with special care for performance and robustness. These includes a high performance network stack, SIP core, H323 and WebRTC stack, media stack, routing, billing and many more. 

Major changes for the Mizu VoIP server are listed below.

Note: only changes in the main branch are listed here. Contact our support for the details about your branch if any.

Softswitch Release history

Softswitch v.8.8 - Monday, April 23, 2018

  • new: auto normalize voice files (now it is possible to upload wav or mp3 in any format)
  • new: wide-band conference calls
  • new: offline chat with delayed send option
  • new: mapped users option to remap username/passwords
  • new: routing for SIP session timers
  • new: transfer and conference for webrtc
  • new: send heartbeat and load statistics to load balancer (when load balancer is deployed)
  • new: conference and transcoding support for OPUS wide-band
  • new: enable dynamic daily credit limits by default: Dynamic credit/spent limits
  • new: option to restrict API access only for authenticated SIP user
  • new: support for push notifications for by mobile and web clients
  • new: volume normalization for call recording
  • new: fastblacklist
  • new: auto routinglist maintenance
  • new: call recording download from web and voicerecdownload API
  • new: flash RTMP protocol implementation (compatibility with legacy flash phones)
  • new: fastpath processing of non-critical communication for local endusers (presence, chat and others)
  • new: strict cutoff of multiple calls on depleted credit
  • new: option to turn on db delayed durability
  • new: default index fill factor optimal value
  • new: optimal default values for query timeout and query governor
  • new: nonce digest preauth option for the API
  • new: date correlation optimization enabled
  • new: options for groups to restrict calls to other groups
  • new: quick wsload answer
  • new: sql engine parameterization forced by default
  • new: configurable timeout per socket type
  • new: support for one time passwords
  • new: option to always enable/disable nagle
  • new: wizard: route UA to UA calls through upper server tunnel setting also for webrtc
  • new: wizard: on WebRTC select first, also select tls,stun and turn and maybe also rtmp
  • new: config for allowupperserverselection, selfforwardto, replace, replacecalleroncalls
  • new: web control panel optimized for mobile screens
  • new: a new responsive web interface (optional, not set as default yet)
  • new: mmanage: log search from-to
  • new: mmanage if remote server, start sql studio with login parameters
  • new: mmanage "how to connect" webrtc client examples
  • new: mmanage: dashboard
  • new: mmanage cdr search by caller number, called number, etc (until found)
  • new: mapped users option to remap username/passwords (autocreatereguser=0 forwardauthpassword=4)
  • new: registrations based on routing (routingforregister)
  • new: endpointlist add req count and check long messages
  • new: stat from packet loss, detect high packet delay on rtp recv
  • new: tunneling tcp double encrypt with different encryption methods
  • new: re-register with new nonce asked by server
  • new: sbc user import
  • new: scheduled task email send action
  • new: config.viarecip
  • new: insert our own TCP and UDP candidate (so it will work in all circumstances, regardless of NAT/firewall)
  • new: new users and devices form (the old one is still present)
  • new: auto encrypt the emailpassword in settings and all the other sensitive data
  • new: handle service pause (don't accept new requests)
  • new: auto detect if dir cache if needed (def setting is "auto" -1)
  • new: option to forward to other server if domain is not ours
  • new: apply upgrades checked by default
  • new: cache tb_directions in local file
  • new: tb_direction cache invalidations. also add dircacheclear command
  • new: maxcostperip limitation for webrtc calls (previously only for SIP and H.323 was supported)
  • new: full API coverage for a usual web portal
  • new: nonce based authentication for the API with preauth
  • new: integrated static code analyzer into the release build server
  • new: configurable dtmf duration
  • new: fast stun answer packets
  • improved: multiple-registrations per device and call fork
  • improved: number portability extra fields
  • improved: WebRTC TCO failback improvements
  • improved: auto disconnect old/wrong sockets on too many connections
  • improved: usage TRUNCATE TABLE instead of delete from when need to del all records
  • improved: strongauth should check whether we are on local lan and if user prepaid with 0 credit
  • improved: rtpwrite first: not for sip servers/traffic senders with public ip
  • improved: various ivr related optimizations
  • improved: a long list of minor improvements for the admin user interface
  • improved: fine-tune default process priority and cpu affinity
  • improved: optimize iocp thread count
  • improved: API check max auth fail. use salt with md5
  • improved: API call from server console: route commands from console to api if needed (so we can use also the api from the mmanage server console)
  • improved: ExtractBestSDPAddress
  • improved: using fast hashmap for all lists with pressure
  • improved: detect low disk space on backup
  • improved: count also webrtc to webrtc calls
  • improved: external SIP IP. set it explicitly if you have more ip assigned to the server or server is on internal network to help NAT traversal for clients
  • improved: don't handle binding request for channles -> route it to other end... so need a separate udp socket for the channels
  • improved: handle 00/countrycode for routing and billing (separate function with replace callednumber)
  • improved: rewrite c=ip sent by internal pbx module to public ip (also for rtcp and candidate). also rewrite sdp from client to client fromip
  • improved: upgrade tlsproxy ssl libs
  • improved: forward disconnect reason from upper ep
  • improved: speaking status also for traffic sender if load is low
  • improved: parse correctly (remove) ttl from sdp: c=IN IP4 224.2.1.1/127
  • improved: add server to firewall exception list via the installer
  • improved: call recording quality
  • improved: unattended transfer handling
  • improved: sbc connectivity check to TCP 80
  • improved: various improvements for the built-in ftp service
  • improved: auto add lego to firewall exception list
  • improved: auto set def db recovery model to simple (one time)
  • improved: simultaneous calls billing cut-off
  • improved: performance: lock free unordered_map and queue
  • improved: performance: replace TList with TListEx if threads might be involved
  • improved: performance: Take advantage of Pack(false) and SetNull(idx)
  • improved: performance: use TSQueue more (AddData() already checked)
  • improved: performance: use KSL more (check for TListEx), replace eplist with KSL
  • improved: performance: optimize thread sleep times (make it dynamic based on current load)
  • improved: performance: reput removed optimization to string ex (thread local storage, strinextoint intostringex optimizations) add back IntToStrEx optimization with local thread string
  • improved: performance: stringex optimization. don't pass by value and avoid memory copy at all cost
  • improved: performance: delete endpoints earlier on high memory usage
  • improved: performance: create multiple tempdb with equal size to avoid locks
  • improved: performance: review MAXDOP (Add config option: 0=no set, 1=auto (set to cpucount/8) for reports, 2=always set to 1
  • improved: performance: auto fine-tune sql db based on expected load, settings and your hardware config
  • improved: performance: turnudpserverclients and turnchannels mutex (replace with lock safe list)
  • improved: performance: kqueue: 2 separate list: one for add, other for get
  • improved: performance: tsqueue with multiple list trick (increase size only at consumer thread)
  • improved: performance: real mutex for tlist (for data and capacity change with double check). also min capacity should be 8
  • improved: performance: make StringEx more thread friendly
  • improved: set sql server compatibility level COMPATIBILITY_LEVEL 140 has been added
  • improved: TSQueue instant increase capacity on subs add (but no read)
  • improved: add single upper server to trusted ip list
  • improved: don't check port bind if server is running (Accessport)
  • improved: analyze: warn if webrtc is enabled but no domain or no ssl cert
  • improved: tunneling send extra fake packets: either small or big
  • improved: auto delete sipcallid callid and billingentry from old cdrs
  • improved: handling of Reason-Phrase: Bad Via header
  • improved: unreg handling from client
  • improved: can't create new user if we already have a user with the same username but disabled
  • improved: same cseq received
  • improved: better target user auto-detect with multiple devices and call fork
  • improved: forget old ip/port on unregister
  • improved: selftest algorithms
  • improved: auto convert ivr/announcement wav/mp3 files
  • improved: don't send keepalive multiple time to same ip:port
  • improved: tunnel random double send rtp
  • improved: when checking if user is offline, check also huser status
  • improved: hide callcenter and simplatform settings for compact db
  • improved: send x-reason disc clause (so it will be passed to the client)
  • improved: handling of expires: 1 (min expires accepted by asterisk)
  • improved: a long list of other server and admin client improvements
  • improved: tunnel: remove read-write sockets rwmode
  • improved: tunnel: state lookup after ep for rtp
  • improved: set builddynamicblacklist for gateways
  • improved: socket max bandwidth management
  • improved: respond to keepalive also on tcp
  • improved: presence routing
  • improved: SIP session timer re-invite routing
  • improved: reset some parameters if server path was changed (for example the firewallopened flag and others)
  • improved: if no restart (except daily), no info and no logrename commands for 5 days, then set back the loglevel to 5 from 9 (if it was 9 continuously)
  • improved: update mestate for fastuser even if not authenticated
  • improved: update all portmaps on new user succ auth
  • improved: sql performance
  • improved: string ex free list garbage collect
  • improved: selfcheck and maintenance should wait until config::loasasync is finished
  • improved: remove non authenticated calls from cdr's by default. if duration = 0 and caller was not authenticated
  • improved: disable lcr if billing is not set
  • improved: reput all old optimizations stringextoint
  • improved: increase max router thread count
  • improved: contact line normalization
  • improved: load balancer auto-detect and integration
  • improved: various webportal improvements
  • improved: wait for successful child process creation
  • improved: lots of improvements for the config wizard
  • improved: a long list of other minor improvements mostly related to the core, sip and media stack, API and database caching
  • fix: critical bug fix for tunneling recv buffer overrun
  • fix: codec transcoding bug fixes
  • fix: storeonlinestatus not called on subsequent register
  • fix: forwarding failed reg answer
  • fix: ExtractBestSDPAddress ...check config.mainaport
  • fix: don't send so much echo on readonly sockets
  • fix: mencryption: don't lookup after ip if sender also from the same ip (check sender contact field)
  • fix: new portmaps are not created for user on succ connect (create new portmap mestate)
  • fix: thread local storage can't be used if string is deleted from another thread
  • fix: mserver process/handle count limitation
  • fix: other tunnel related fixes (check outbound audio over tcp and silencesupress)
  • fix: max accept event slot reached
  • fix: branch and to tag for call fork
  • fix: mmanage don't run "Cash-flow analysis" if no pricing is set
  • fix: mmanage if localip not visible, then null it
  • fix: mmanage block not billed calls should be deselected by default
  • fix: mmanage don't try to autoset autossl if server is on local lan
  • fix: mmanage: no call match your search criteria "quick filter"
  • fix: mmanage false alert: cannot bind to tcp:80 ...maybe because ivp6
  • fix: mmanage freezing on network page next
  • fix: mmanage freezing on close (hung on UnInitializeSession sslogclient->Socket->SendText)
  • fix: mmanage how to connect should list private ip if nataddrtype is 2
  • fix: mmanage search users for IP doesn't work
  • fix: mmanage load the correct consolekey if multiple nodes
  • fix: contact address in requests
  • fix: refer handling
  • fix: close log in selfrestart
  • fix: remove MEMORYCHECKEXT from release version
  • fix: PacketIsSTUN
  • fix: verify STUN_ATTRIBUTE_XOR_PEER_ADDRESS (allow only myip)
  • fix: mainaportudp can remain the def if mainaport is not 80
  • fix: cannot restart hosted servers
  • fix: don't retry failed dns requests
  • fix: not enough calls (3 5) disconnecting running calls. should be much more moderate if there are any pending connected not too old call
  • fix: don't create empty settings for nodes with # (or create only from main node without #)
  • fix: block too many not connected calls from trial server
  • fix: server TCP register and incoming calls
  • fix: catch on CheckScheduledtasks
  • fix: catch on GetCallDirectionPlain
  • fix: catch on HostToIpExFromCache
  • fix: max accept event slot reached 64 (using separate tcp client groups)
  • fix: Invalid column name 'sipcallid'.. sqltxt is: insert into mserver_backup.dbo.tb_cdrresellers
  • fix: 70+ other bug fix for the server and for the admin client
 
Softswitch v.8.6 - Saturday, June 10, 2017

  • SIP processing optimizations
  • voicemail module complete rewrite
  • text to speech for the IVR via espeak and tts (available in multiple languages)
  • chat improvements (improved reliablity for all paths)
  • MManage config wizard: numerous improvements for NAT auto configuration, port availability and others
  • A long list of WebRTC related improvements
  • voice call recording upload related bug fixes
  • improvements for TURN and tcp candidates so it is capable to route the media even if UDP is completely blocked for the clients
  • offline chat: offlinechat global config (0=no,1=yes best effort,2=always must ), maxofflinemessagesperuser (def 100), AddOffMessage, XOFFMESSAGE, apiex: presence_set, [PRESENCE chat
  • sms auth (otp): global config uauthverify: 1=sms,2=email code,3=email link; newuseru api
  • improved datbase/sql performance (optional delayed durability, parameterization: forced, default index fill factor optimal value, optimal def value for max paralelism and degree)
  • presence improvements (PUBLISH/SUBSCRIBE/NOTIFY, now also between WebRTC and SIP)
  • mapped users feature (forwardauthpassword=4); option to remap username/passwords
  • add command to list sapi numbers
  • send X-Reason header to certain devices
  • better NAT handling (server behind NAT now works in all circumstances)
  • improved rtp candidates: CandidateRewriteForClientPublic
  • fastblacklist, blacklist cache (blacklist_cache config) 
  • improved security for local calls (allow only to local user if no reason for outbound)
  • call recording on/off during call
  • improved TLS tunneling
  • socket timeout and linger configurations
  • registrar reports
  • recorded voice playback related fixes
  • fix ftp service availability for recorded voice download (with strong random password auto changing every day)
  • warn if ftp is not enabled and want to download file
  • mmanage block not billed calls should be deselected by default
  • option for blind accept registrations: openregistrar, blindauthentication
  • improved auto thread prioritization and cpu affinity (cpuaffinity, autocpuaffinity)
  • bug fix: mmanage freezing on network page next
  • strongauth should check wether we are on local lan and if user prepaid with 0 credit
  • rtpwrite first: not for sip servers/traffic senders with public ip
  • if nat is configured for internet only, still accept from the local pbx service
  • auto enable on firewall port tcpcandidatesrvport  (TCP relay port, 10080 by default)
  • mmanage usage TRUNCATE TABLE instead of delete from when need to del all records
  • improved selfrestart process
  • improved exception and bug reports
  • refresh letsencrypt cert 20 days before expire to avoid notification emails
  • call recording for webrtc to webrtc calls (force calls via sip server)
  • higher timeout (readORwrite_timeout,thisreadORwrite_timeout) for other_tcp_client and main_tcp_server
  • configurable timeout per socket type (so we can quickly increase for other_tcp_client and main_tcp_server if clients reports websocket disconnects when
  • used with third party webrtc clients)
  • optimized iocp thread count
  • increase the 'min memory per query' option if your server has a lot of memory available
  • pbx features in the server documentation (conf rooms and others)
  • transfer and conference via webrtc (catch REFER if the other ep is on SIP)
  • mmanage: dashboard improvements
  • mmanage: open direct query in mssql
  • uip and commong.GetLocalIp for public/private ip
  • ExtractBestSDPAddress check config.mainaport
  • fix callid -> sipcallid in sql script then run db cleanup and create new db backup
  • traffic sender and sip server users were not created during config wizard
  • fixed chat recording def config value
  • selftestclient/selftestserver authentication mismatch
  • performance option set cdrextra to 0
  • perf: checkwithzerocredit 0
  • hide currency settings for gateways on the localization tab (if no billing is enabled)
  • mmanage: unified commonication option
  • sbc module
  • forwarding failed reg answer for gateways
  • handle Reason-Phrase: Bad Via header
  • TSQueue instant increase capacity on subs add (but no read)
  • set sql server compatibility level COMPATIBILITY_LEVEL 140 has been added
  • config wizard: option to set process priority and auto boost
  • mmanage analyze improvements. better first start analyzis
  • mmanage global config groups (Caller ID Settings and many others)
  • mencryption: don't lookup after ip if sender also from the same ip (check sender contact field)
  • tunnel: remove read-write sockets  rwmode
  • keeprtpssrc
  • bugfix: webrtc stun/turn/ice timeout problem
  • auto detect country prefix and prefix the entered number with it if not entered by the user
  • language parameter for NumberToFileList (and try with suffix)
  • bugfix: double auth issue
  • informix integration
  • ivr load and store operations
  • ivr better playback timing (and new ivrfiledelay,ivr_monoliticclock, ivr_fileplaythreadpriority config options)
  • option to forward unknown sip headers (fwdextraheaders)
  • sqlsetupscript insert into tb_langtest
  • unreg fast user on wsunreg
  • webrtc call forward 301/302
  • webrtc gateway reject registration if incorrect username/password on the upper server
  • lego with -new if cert already expired
  • try pipe on tcp fail (sqlinstancename=\\.\pipe\MSSQL$SQLEXPRESS\sql\query)
  • implemented delayed registration
  • fastauth unregistration; fastauth re-reg/unreg with different username and auth username
  • forwardauthpassword 4 send auth username as from username
  • re-register with new nonce asked by server
  • change def password encrypt
  • handle service pause (don't accept new requests)
  • speaking status also for traffic sender if load is low
  • handle vcodec settings passed with wsuser (remove other codecs from the sdp)  
  • don't retry failed dns requests: EVENT, dnsresolver failed for x.y.z
  • auto detect if dir cache if needed (def setting is "auto" -1)
  • option to forward to other server if domain is not ours
  • auto set db recovery model
  • bugfix error max accept event slot reached 64 for turn
  • upgrade tlsproxy ssl libs
  • forward disconnect reason from upper ep
  • better feedback from the server. disconnect reason of the last call
  • performance improvements for Base64 encoder/decoder
  • ESocketGroup vs ESocketType
  • handle wsuser codec, prefcodec, proxyaddress
  • change candidate priorities (firt should be the srflx raddr)
  • rewrite audio port if mainaport and c=in ip is local  m=audio 18080 UDP/TLS/RTP/SAVPF 109 9 0 8 
  • bugfix: 503 maximum calls in progress/Program just now started 
  • esg_relay_tcp with nagle off and rtp sock like characteristics
  • catch call forward from webrtc and send it directly to the caller
  • update mestate for fastuser even if not authenticated
  • new portmaps are not created for user on succ connect (create new portmap mestate): encryption initialized successfully for client, state obtained from
  • portmaplistu
  • tunnel: should prefer lookup after ip if ip:port lookup state is bad
  • cdr filter for marker
  • decrease loglevel if need to skip
  • fixed ivr announcement cut at end
  • add no answer for disc reasons
  • more rate limiter options (maxcallsperday) 
  • api: check max auth fail. use salt with md5
  • call api from server console: route commands from console to api if needed (so we can use also the api from the mmanage server console)
  • reguser from users and devices
  • candidate ip's should be public
  • esg_relay_tcp msocketgroup_tunnel_tcp  msocketgroup_relay_tcp
  • use separate socket instead of esg_other_tcp_server
  • nsert udp/tcp relay only if caller/called is not on the same lan
  • for webrtc to webrtc calls use the same procedure (a=candidate:1004 1 tcp), just create a separate socket for the called (tcprelaysock2)
  • check if need tcp candidate when we use udp candidate
  • connected and receiving packets on tcprelay sock, but doesn't forward. check EVENT,xxxx checkfixroute
  • add external simmetric port
  • tunnel related fixes (check outbound audio over tcp and silencesupress; renilmohan@gmail.com)
  • no stun is needed if media is from sip server in recv invite (invite from ip is same as media ip)
  • reinvite with private media ip if no incoming audio with stun enabled (rtp stun public address found as)
  • auto turn to tunneling only if not LAN voip server address
  • handle SIP/2.0 423 Interval Too Brief (auto increase register ival)
  • store equipment field for sip servers
  • stringex free list garbage collect
  • node setting for tb_settings
  • disk io statistics to dashboard, sql reports
  • maxdailycredit for users and devices
  • thread local storage can't be used if string is deleted from another thread!
  • introduce strictrtp setting for router forwarded port networks
  • block too many not connected calls from trial servers
  • set the resellerbilling to 1 if def is -1 and there are reseller users with valid childs
  • disable lcr if billing is not set  
  • remove api ERROR from the logs: api sending answer ERROR: no user parameter NORETRY  
  • enable dynamic daily credit limits by default: Dynamic credit/spent limits
  • don't lookup dir/spid for internsational calls
  • limit message count after BYE and/or after state finishing
  • baseobjects, tsqueue memory cheks
  • add memory checks
  • improved string performance 
  • packetloss statistics
  • STR_MEMORYPOOL also for char data
  • switch to the new fast concurrent hash map
  • add crc protection for all objects passed via TSQueue
  • contact line normalization
  • auto dtmf conversion when neccessary
  • set pcmu/pcma codec only if recording needed
  • various performance related improvements (mserver optimizations and speedup)
  • replace TList with TListEx if threads might be involved
  • replace heavily used TStringListEx with KSL especially if threads might be involved
  • optimize thread sleep times (dynamic TSLEEPTIME based on usage)
  • stringex optimisation. don't pass by value. strtointex; avoid memory copy whenever possible
  • auto finetune mssql based on expected load, settings and hardware config
  • tsqueue with multiple list trick (increaze size only at consumer thread)

 
Softswitch v.8.0 - Friday, June 24, 2016

  • SIP stack upgrade to v.4.2 with many encasements including better support for text messaging and SMS relay
  • Full support for WebRTC including DTLS/SRTP RTP relay and built-in STUN and TURN servers
  • New PBX features such as conference rooms and voicemail
  • Click to call and call me features
  • Better softphone integration including features like P2P, callback, sign-up, payments and many others
  • Updated server configuration wizard with network/nat/localization auto-detection
  • Intelligent RTP offloading capabilities (peer to peer media whenever possible)
  • Auto codec transcoding when necessary
  • Auto SSL certificate for HTTPS/WSS
  • Improved built-in VoIP tunneling and encryption (optional module)
  • Security enhancements
  • Improved voip admin client
  • A new release for our customizable softphones
  • Our VoIP server hosting service (SaaS ) was also refreshed with all the new features
  • A special edition focusing on small business needs (company local PBX) is also available: https://www.mizu-voip.com/Software/WindowsPBX.aspx
  • A robust SIP load balancer capable for millions of calls on a cheap hardware
  • wsuser handle needregister=false and proxyserver
  • sip upper authentication with sip username/password
  • cache console login string at ServerData
  • fix router routerequestevent ret with error
  • speedup wsload answer
  • tcp/udp turn with insertservercandidate=1 with firewall blocking between nat's
  • turn with turnmultipleuppersock set to -1 (both udp and tcp turn)
  • remove turnmutex (no more shared variables) 
  • don't answer stun for local (not routed) rtp sockets
  • add more fields for tb_loadstatistics: dbload
  • fixed auto currency conversion  
  • use the Error-Info: header
  • mserver respond for OPTIONS as described in https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
  • check sql injecections also in QuotedStrEx; filter out also xssl attack
  • check file transfer no exec right for stored files
  • webportal and others log to logs subfolder if present
  • don't write cdr record if caller was not authenticated and 0 len duration  
  • max bandwidth mbits in msocket (rate limiter)
  • newuser private/public api
  • on subsequent error for cdr thread spawn new thread
  • auto codec convert on 488 Not acceptable here
  • a bounch of new pbx features for small business
  • dial a group (for to all numbers to group)
  • optimize for fast lookup (cache all after mainlogic fully started)  
  • auto detect nat ip handling from source address; auto nat handling allow ip (check from where it is registering); autodetect if rtp routing is required (auto call a public ivr and check incoming rtp)
  • detect if the 2 peers are behind the same NAT and don't route media in this case (if they have the same from IP)  
  • rtpwritefirst  ...only for private ip's  ..not to servers
  • don't auto allocate common ports such as 3389 (rdp) and others for any purpose
  • don't accept nonce from client for authentication
  • data path (no write access to bin path); test mmanage (and mserver) on restrictive account (no write access to program files); write rights to program folder (recheck all apps to use a writeable data folder); test mmanage (and mserver) on restrictive account (no write access to program files)
  • don't normalizedports for existing servers
  • generate stunaddress according to mainaportudp
  • enable "TLS" if "AutoSSL" is selected
  • auto ssl: ask for email and don't popup domain missing on wizard start
  • tlsproxy autodetect listenipex (like in mmanage config wizard). also pass listenipex from config    
  • add max call time and ring time options
  • remove mobile prefixes from config wizard. add "block not billed calls"
  • expected load finetune already running server (make sure to don't break anything)
  • don't handle bindig request for channles -> route it to other end... so need a separate udp socket for the channels
  • insert our own candidate and forward the media
  • maintain a list of turn objects associated with mainudpsocket
  • auto delete turnchannels not used for more then 15 minutes
  • fix no audio for webrtc to webrtc in firefox
  • handle candidate in endpoint (send media there)
  • handle websocket recv too much (should call process again)
  • voicerecupload implemented also on server side
  • speex codec convert on SIP/2.0 488 Not Acceptable Here
  • fix webrtc chat not working: webrtc to SIP, webrtc to webrtc
  • don't send keepalive multiple time to same ip:port
  • storeonlinestatus not called on subsequent register
  • when checking if user is offline, check also huser status
  • load server configuration and check coherence
  • check if mainaport is free. also might check if ports are reacheable behind nat.
  • on server launch, make sure that it was actually started and running correctly; load and show last errors, warnings from startup 
  • STUN_ATTRIBUTE_XOR_PEER_ADDRESS port mismatch
  • refresh lifetime can be omitted. handle zero unsubscribe
  • the REQUESTED-TRANSPORT must be UDP otherwise reject with 442 (Unsupported Transport Protocol) 
  • reject if STUN_ATTRIBUTE_REQUESTED_TRANSPORT is not UDP    442 (Unsupported Transport Address)
  • implement turn touple: transid, channel number, permission, peer address
  • implement turn service
  • stun allocations REQUESTED-TRANSPORT LIFETIME  DONT-FRAGMENT  EVEN-PORT RESERVATION-TOKEN; answer: XOR-RELAYED-
  • ADDRESS (bind address), LIFETIME, RESERVATION-TOKEN, XOR-MAPPED-ADDRESS (client tcp address)
  • bugfix: Invalid column name 'maxdailycredit'
  • routing numportcache
  • mlbhandling, numport, directions
  • remove block satellite calls if forward (tunnel or webrtc)
  • improved tls proxy high load behavior
  • Via processing for proxies is described in Section 16.6 Item 8 and Section 16.7 Item 3.
  • X-MSL: 0  ...keep only highest
  • send all chat messages without the to tag (also subscribes, etc)
  • don't set fromip/fromport on msg rec (because addr might be wrong)
  • transportip/port mismatch (port from recvport but ip from orig db transpip)
  • asyncDecreaseCredit  ...don't set if too big value and is traffic sender
  • don't disconnect websocket from api (for wsuser)
  • set parentid to -1 where not valid daily task
  • common.binpath+config.CFGSOUNDSDIR
  • config.voicebackupdir
  • smartblacklist, optimize prefixlookup
  • auto close mmanage after some idle time
  • remove v_dialplan upgrade  (create procedure ...) from the sp upgrade
  • number portability: link to global config
  • set strongdigestauth to 0 if tunnel or gateway
  • CopyDirectoryEx improvements
  • send presence in sip message or webrtc message sendim/SendMessage()
  • increase webrtc priority if address is set
  • spid import tool
  • registry FastSendDatagramThreshold set to 1400 (default is 1024)
  • 3GB option; change internal mem checks to allow 4 GB (or 3 GB on 32 bit systems)
  • fastreg module: a very fast sip registrar
  • encrypt all passwords in global config
  • secure websocket (tlsproxy)
  • public universal API accessible via UDP/TCP/HTTP
  • mlb: one click test, hsl->msl, long lists, meassure
  • BRS form allow to change fields
  • brs/lcr lower priority entry
  • inverse billing after caller number prefix. remote-party-id
  • major upgrade for tunneling and encryption modules
  • server load-balancer and failover re-design
  • Send RTCP BYE
  • extra data for ep at separate class pointer
  • keep rtp_ssrc between fileplayer sessions
  • fix tunnel related issues 
  • delete unneded files from distributables
  • ios tcp tunnel to alternatelocaport
  • msg queue check should depend on simultaneous call count
  • add msg/sec stat for statdump
  • blockselfcall allowselfcall  ...to allow call self mobile
  • review free ammount check at v_getprice
  • websockets (parse and forward from port 80) and embedded webserver 
  • skipped media packet on client call not connet ....if we remove this, ring is working fine
  • dont send with rtpwritefirst if rtp already receiving
  • cdr comment field
  • create rtp from main thread only (not on rtp receive)
  • check file name on http (remove special chars)
  • cer and msi, asp, aspx mime types
  • msocket mutext optimisation
  • fix server stability (quickrtp/quickforward and others) 
  • detect if selftest is not running
  • selftest should detect if no incoming messages (quickly)
  • warn if too much time spent on ep->timer
  • improved ReleaseLocks
  • mlist lazy lock
  • fix pack is not called after delete for socketprocessers and others 
  • implement rating in APIEX
  • tests with constant high load
  • tls proxy cpu limit
  • statistics by equipment
  • add tcp to contact header
  • upper server rewrite on server side: rewrite incoming / outgoing sip message: ip/condition/rewritefrom/rewriteto
  • video stream routing improvements
  • tunnel connectivity fixes (sometime doesn't connect with simple udp)
  • fix too many query get and release
  • p2ppeerpublicport and others for unpaused sockets
  • IVR rerouting
  • fine-tune HasOverlappedIoCompleted
  • fix msockdata ovl pending on dtor. mem leak.
  • better socket stats at call end (and retest with udp)
  • check tcp sockets (same reconnect count as for udp)
  • cfg_extraprotect 2
  • display warning on readonly writeonly sockets: sending on wrong socket
  • auto increase packet per frame on high server load

 
Softswitch v.7.4 - Thursday, September 24, 2015

  • All cumulative updates since 2015 January
  • Kernel space RTP routing
  • General security review and a separate documentation for security related topics
  • Other improvements include fast registrar optimizations, auto-tuning depending on server load and various micro optimizations.
  • new MizuManage
  • WebRTC support
  • API over websocket and json
  • fast route path
  • a new mailer client
  • smart blacklist
  • MNP improvements
  • new tunneling module
  • built-in webserver
  • RTMP/Flash support
  • improved IVR and billing
  • The new "universal" API for the Mizutech VoIP server is available now to help you with any VoIP integration tasks. Works over UDP, TCP, HTTP, SIP and SMS
  • X-CDDT: send only if p2p path not found yet (p2p rtp path final found)
  • fastencryptkey
  • don't set alternatelocalports to autoprovisioning encv2
  • HTTPReq ...use also via udp via our server if our server and encryption is used (the server should
  • cache the answers if no query parameters)
  • RTP sent 338 (p2p: 0 sdp)  add also rec: (recvfromport)
  • no more presence requests if no response for subscribe
  • win 8.1 issues (copy files to system32)
  • chat and presence with and without tunnel (quick signaling routing) 
  • handle from config wizard: standalone tunnel server should not set port limits
  • userautoaddwithowner: wether server should auto create resellers. -1=auto,0=no,1=yes, 3=must  
  • max capacity specifiy also from mmanage branding
  • from server auto add upper server, set also the ccenddate
  • oldalternatelocalports. listen on old udp/tcp sockets. env2 variable in msocket should also consider this
  • onlyoldtunnel variable to msocket (oldalternateserverudp) and endpoint (route from TCPTransport)
  • server to handle both old and new tunnel
  • check if rtp is routed after session progess (don't wait for connected)
  • shared did full implementation
  • fix SIP/2.0 400 Malformed topmost Via header
  • report server failed backup
  • set senddailyemail = 1 for new owners
  • disable calls between users if different domain (different company)
  • check tunnel max line limit (alert treshold)
  • use pipe when possible for db connection
  • CursorLocation new TMSQuery  Provider=SQLOLEDB
  • pooling / singleconnection per thread; MaxPoolSize and singleconnection per thread
  • auto convert subqueries to left joins
  • fix disconnecting because forced: no media detected clnt 
  • auto refresh dns lookup cache 
  • fix rtp port range bug
  • fix RecordThread: buffer overflow
  • fix socket bandwidth limit reached
  • add mutex for tsqueue
  • Common::GetCPUTime() 
  • tests and improvements with slow db connection 
  • fix missing rtp sent statistics in the cdr
  • GetFreeLocalSDPPort is slow. avoid it
  • disable rtcp, fileplay and maintanance on high query quee length / high load
  • disable video rtp routing on high load
  • don't block requests with Max-Forwards: 0 (gts OPTION)
  • sipsever upper auth load username/password from the normal username/pwd fields if proxy authentication is not set
  • set reroute to 0 if only 1 routing entry
  • time-zone adjutements

 
Old versions - Thursday, December 11, 2014

You can access the archived change list from here.


 

More news and software releases can be found here.
Like our facebook page to get notified about new software releases and VoIP industry news.

Softswitch home