Softswitch Development


We are constantly improving our Softswitch, introducing new features, bug fixes, optimizations and periodically publish new major versions on this 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.

This software is in continous development and we have a new internal stable release almost every month, however we publish only the major new versions on this website. Only changes in the main branch are listed here. Contact our support for the details about your branch if any.
 

Softswitch Release history

Softswitch 9.8.23124 - Monday, January 8, 2024

This is a quality upgrade with bug fixes and improvements. No new features have been merged into this release.

 

Softswitch 9.8 - Wednesday, July 5, 2023

  • new: call recording with all codecs (including also speex and ilbc)
  • new: attended call transfer with replaces support
  • new: support for Replaces header (in INVITE and also the transfer flag)
  • new: music on hold (MOH)
  • new: voicemail notifications
  • new: central addressbook/contacts book API
  • new: file transfer over http/ftp
  • new: loglevel change from MManage will adjust also max log queue
  • new: serialized maintenance tasks
  • new: cdr/billing service for external sources
  • new: SMS sender from separate process
  • new: message length based SMS cost calculation
  • new: log packet types and thread names as string (not only ID)
  • new: voice recording for quality control purposes (recordpercent)
  • new: disconnect code 497 Transfer Failure
  • new: clone settings option
  • new: checkmediatimeout configuration
  • new: pushnotification_websocket configuration
  • new: honormediamuteorhold configuration
  • improved: RTP threading
  • improved: SSE performance
  • improved: maintenance tasks pipelining
  • improved: call fork handling
  • improved: ipv4 vs ipv6 address type
  • improved: database operations speedup
  • improved: message parsing performance optimizations
  • improved: unregistrations
  • improved: digest auth-int
  • improved: auto provisioning
  • improved: domain name parsing
  • improved: contact expires handling
  • improved: tls URI parsing
  • improved: server start action
  • improved: monthly users cleanup
  • improved: loop detect
  • improved: SIP from/to tag management
  • improved: media timeout detection
  • improved: offline chat
  • improved: TLS/SIPS module
  • improved: better handle TLS certificate no renewal required
  • improved: call transfer call-leg management
  • improved: SQL input extra validations
  • improved: better config wizard user input validations
  • improved: username validations
  • improved: file rename (core api)
  • improved: string parsing speedup
  • improved: API requests parser
  • improved: SMPP protocol
  • improved: handle failed sockets on service shutdown
  • improved: random for more sources
  • improved: speex and opus wideband call recording
  • improved: fast auth user banning
  • improved: log level change
  • improved: a list of other minor improvements
  • fix: crop too long SDP
  • fix: file handle leak
  • fix: opus sample rate defaults to 48000
  • fix: don't send X-Peer with 4xx responses
  • fix: FCM save from config wizard
  • fix: expires tag in contact headers
  • fix: move old data to backup database
  • fix: MManage users save exception
  • fix: other minor bug fixes
 

Softswitch 9.6.22114 - Thursday, December 8, 2022

This is a quality upgrade with bug fixes and improvements. No new features have been merged into this release.

 

Softswitch 9.6 - Wednesday, May 18, 2022

  • new: built-in high performance TLS module using the latest openssl library
  • new: TLS for multiple domains (separate TLS cert/domain for different nodes)
  • new: compatibility with Azure SQL database (including TLS connectivity and trustcert/resolveip database connectivity settings)
  • new: server side call transfer (not only REFER forward)
  • new: a separate state machine for call transfer
  • new: handle local replaces
  • new: subscribe for transfer state
  • new: maxregroutingthreads and regroutingthreadtreshold configuration
  • new: MManage Configuration Wizard SRTP setting
  • new: MManage Users and Devices port setting
  • new: MManage Users and Devices transport setting
  • new: MManage Users and Devices SRTP setting
  • new: ping API
  • new: addserver API
  • new: deluser API
  • new: newusersevent API
  • new: userchanged API
  • new: detect username/password upper/lower case (capslook) misspell
  • new: SIP event-id handling
  • new: named threads
  • new: quick/simplified message parser for p2p/direct outbound message routing
  • new: log first apple push and google FCM request success/failure
  • new: keepoldregclients, forceroutingforregister, routingforregistercache and removeoldregaddr configurations
  • new: sockconnecttimeout and socktimeoutmultiplier configuration
  • new: tls_external configuration
  • new: tls_security configuration
  • new: tls_preinit configuration
  • new: tls_ciphers configuration
  • new: pushnotification_topic configuration
  • new: pushnotification_ignoresubssame configuration
  • new: reuseep and reuseepauth configuration
  • new: srtp_auth configuration
  • new: re-auth on user record change (apply new password or auth ip in real time)
  • new: loopdetect configuration
  • new: allowserverservercalls configuration
  • new: strictdomainiprefresh configuration
  • new: discontransfer, holdontransfer and playtransfertone configurations
  • new: set config mutex protection
  • new: auto convert multi-party call to simple call after no more forks
  • new: block requests per user/peer/ip on too much pending sessions
  • new: async message routing from separate threads for higher performance
  • new: secondary bind ip and port
  • new: SIP message Reason header (parsing and forwarding)
  • new: auto correct if server ip (bind/local/domain) is configured incorrectly
  • new: parse authentication-info
  • new: implement also old/nonstandard push notification based on push-token-type / push-token-app / push-token-id
  • improved: TLS certificate renewal time
  • improved: SRTP
  • improved: WebRTC protocol module
  • improved: loop detect
  • improved: pushkit certificate upgrade
  • improved: regstat, epreg API
  • improved: SIP call transfer
  • improved: WebRTC call transfer
  • improved: SIP URI username/displayname processing
  • improved: IP address class
  • improved: md5 auth qop and auth-int handling
  • improved: called number normalizations
  • improved: automatic maximum degree of parallelism for stored procedures
  • improved: upper unregister for push notification sessions
  • improved: call fork and redial
  • improved: resend auth request on peer change
  • improved: rtp stream mutex (and not using any mutex when there is no way for race conditions)
  • improved: rtp candidates list
  • improved: SIP MESSAGE / IM
  • improved: G.722 codec
  • improved: service startup logs
  • improved: optimal default self-test register interval
  • improved: get best device state alg and store online state
  • improved: load statistics
  • improved: DNS queries
  • improved: prefer HTTPS over FTP for modules auto download/install
  • improved: ring groups
  • improved: compact database v_check_calleduser target user IEC prefix handling
  • improved: server to server encrypted/obfuscated tunnel over multiple short living streams
  • improved: user=phone should be removed by default for gateway
  • improved: don't send admin email reports from idle servers
  • improved: auth with different username/sipusername
  • improved: Route / Record-Route handling
  • improved: replaceanumwithdid should default to a yes value on only low load
  • improved: ignore config settings category (try all also without category)
  • improved: built-in webportal comment memos should not be resizable/clickable
  • improved: smaller thread stack size
  • improved: increase maxsipmessagesize on local lan
  • improved: currency conversion
  • improved: routing to webportal
  • improved: codec rate calculations
  • improved: memory usage meassurements
  • improved: check child users on disableoldusers / deleteoldusers
  • improved: do not log max line reach multiple time (remember last)
  • improved: don't send user=phone by default or retry the invite first time if 404 Not found; sendsipuseruripart
  • improved: check fastreg for api wsunreg, regstat, epreg, reguser and elsewhere
  • improved: merge SIP MESSAGE sessions from the same peers
  • improved: stricter SIP header fields usage
  • improved: MManage: cache tb_settings in different server sections (important if using multiple servers)
  • improved: MManage async user stats
  • improved: MManage chat logs form, warn if logmessenger global config is not set to 1 or 2
  • improved: MManage Config wizard -> Fix weak password (not enabled by default)
  • improved: MManage rtmp protocol not remmembered if unchecked
  • improved: MManage auto change user records ip address on ip change from config wizard
  • improved: MManage config wizard: don't accept IP address as domain name
  • improved: MManage on service stop, stop also the supervisor on local servers
  • improved: MManage rules: set record to edit mode if drop down changes
  • fix: SRTP key Base64Decode to binary instead of string
  • fix: double CANCEL/BYE
  • fix: handle missing convertdtmf field
  • fix: never close the main udp listener socket
  • fix: Via header is missing from SIP/2.0 405 Method Not Allowed publish
  • fix: bad parameters for buildauth
  • fix: push notification page doesn't always appears in the config wizard
  • fix: TCP streams parsing
  • fix: race condition on touching ep from both mainlogic timer and asynctransportrec
  • fix: CoInitialize not called on thread before database operation
  • fix: MManage rules caller id change should put the db in edit/savable mode
  • fix: MManage cannot find directions.sql
  • fix: MManage cannot connect if sql port is different/not specified
  • fix: PBX module memory leak
  • fix: Access violation on API_Info
  • fix: a list of other minor bug fixes
 

Softswitch 9.4.22012 - Wednesday, February 9, 2022

Quality upgrade with a list of bug fixes, improvements and optimizations.

 

Softswitch 9.4 - Friday, June 4, 2021

  • new: high performance server to server obfuscated/encrypted tunnel
  • new: enable/disable the TTS (text to speech) module from the config wizard
  • new: changed thread model. added lightweight threads with tiny initial stack size
  • new: raw/clear text CLI access
  • new: auto block scanning attempts
  • new: RFC 8599 Push Notification for SIP
  • new: HTTP/2 support for apple APNS
  • new: apnspushtype setting (apns-push-type: voip/alert)
  • new: SRTP support (including bypass, decoding and reencoding)
  • new: periodic network connectivity tests and logs
  • new: outbound trunk routing prioritization by registered status
  • new: unreg api
  • new: upperunreg api
  • new: http proxy exceptions
  • new: blockeuawithnouseragent config
  • new: forcedcallernidentity/replacecalleroncalls config
  • new: delayed send INVITE to secndary targets
  • new: OBD mass dialer beta
  • improved: user-agent based banning
  • improved: faster packet type detection
  • improved: auto detect aged certificate even if config is wrong
  • improved: API compatibility with both the old and new auth
  • improved: all internal, DB and API access encrypted by default
  • improved: iOS pushkit certificate autodetect and load also from p12
  • improved: auto guess best caller-id to be used by default
  • improved: handling/sending user=phone flag in the SIP request URI
  • improved: call hold state management
  • improved: better handling b-legs and call forking using different transport protocol (UDP/TCP/TLS/WebSocket)
  • improved: push reinvite on app register
  • improved: auto unreg push client when/only if neccessary
  • improved: apple apns push topic and certificate handling
  • improved: Caller ID handling with more related settings
  • improved: dns resolver; skip dnsrefresh if domain was changed
  • improved: universal web service listener
  • improved: temp/old files cleanup
  • improved: FCM and apple apns push notifications sending
  • improved: apple apns voip push notification certificate handling
  • improved: upgrade to new Let's Encrypt certificate formats
  • improved: ports management
  • improved: default strong filestorage password
  • improved: mmanage server configuration caching for faster startup
  • improved: mmanage config wizard detect if supervisor is already installed
  • improved: mmanage various config wizard improvements
  • improved: RTP timeout handling and better default configuration
  • improved: RTP payload handler
  • improved: SDP manipulation routines
  • improved: external port availability test
  • improved: media routing/bypass decisions when set to auto
  • improved: mmanage rules. display if not found due to search filter
  • improved: call recording (reliablecallrecording config option)
  • improved: alloweuserusercalls
  • improved: many improvements for MManage
  • fix: mmanage pricelist currency should default to global currency
  • fix: disconnect reason playback exception
  • fix: try to use a released query
  • fix: duplicate dns caching
  • fix: API examples
  • fix: mmanage routing form always ask for save
  • fix: mmanage warning at rules form if forwardcaller or forwardcalled is set
  • fix: auto create ivr sets wrong campaign number
  • fix: other various minor bug fixes
  • fix: resolved 59 support tickets
 

Softswitch 9.3 - Monday, September 14, 2020

Quality upgrade with bug fixes, minor improvements and an updated SIP/media stack.

 

Softswitch 9.2 - Thursday, April 30, 2020

  • new: built-in HA
  • new: DB server failover and failback
  • new: autoban/fail2ban (see the Caller banning FAQ in the admin guide)
  • new: call transfer failback to local if remote peer doesn't support REFER
  • new: SMPP protocol implementation for outbound SMS messages
  • new: DTMF failback to RFC2833 if remote peer doesn't support or answer for SIP INFO
  • new: blockotherdomains config
  • new: encrypted DB connection when necessary and possible (disabled by default on local connections)
  • new: quick file backups and restore
  • new: more win security rules
  • new: mmanage md5 SIP auth test tool
  • new: sub-enduser take the routing decision from parent user (routing after callerid)
  • new: allow domain in tb_users_authip
  • new: pushnotification_cancel config option
  • new: securemove config option (secure call transfer strict checks if billing enabled)
  • new: auto convert voice files to desired format
  • new: backupdb, dbrestore, dbfailover CLI commands
  • new: max pending auth request limitation
  • improved: SIP and WebRTC signaling stacks general improvements
  • improved: further billing speedup via v_getprice_int
  • improved: media stack upgraded to latest stable release
  • improved: handle separate transportprotocol and target domain per branch
  • improved: session-timer handling
  • improved: fast registrar module
  • improved: auto route calls between nodes if target user is on other node (serverinstance)
  • improved: early media handling
  • improved: call forking
  • improved: cseq handling
  • improved: static firewall handling and DoS attack filtering
  • improved: faster signaling message processing
  • improved: handle duplicate packets
  • improved: RTP NAT open don't try for local subnet
  • improved: CANCEL send out only if required
  • improved: better endpoint best local IP detection
  • improved: voicerecdownload API
  • improved: cdr API
  • improved: unreg command
  • improved: dns refresh
  • improved: get best username for session
  • improved: SIP message compose tracing
  • improved: detect and handle no free disk space on file save
  • improved: auto blacklists
  • improved: auto remove push subscription on wrong statistics or subsequent wrong calls
  • improved: other voip push notification related improvements
  • improved: accept username for auth also like username@domain
  • improved: supervisor service (MServiceHost)
  • improved: minimize fast register message copy
  • improved: better loglevel change handling
  • improved: direct p2p calls for users behind same NAT (not if router can't route directly with public IP)
  • improved: Content-Disposition header handling
  • improved: media routing
  • improved: username validity checks
  • improved: get best IP, get if same subnet and get if routable functions
  • improved: authentication security (doesn't accept upper/lowercase mismatch on strict settings)
  • improved: NODE handling for WebRTC users
  • improved: always load caller id for all CDR's
  • improved: decrease credit on quick billing path
  • improved: get file time
  • improved: text to speech engine
  • improved: block caller number
  • improved: suspend advplayback on dtmf
  • improved: don't calc statistics for blocked calls by our server
  • improved: better NOTIFY routing after call transfer REFER
  • improved: encrypt sip server's authentication accounts
  • improved: mmanage: better sort for statistics
  • improved: launch external apps reliability
  • improved: RewriteReferToRepalces
  • improved: a long list of minor improvements omitted from here
  • improved: a long list of MManage admin client related improvements
  • fix: mailsend sometimes fails
  • fix: recorded file playback (sometimes was disabled by default)
  • fix: "via" and "supported" short format processing
  • fix: not enough memory errors on servers above 24 CPU core
  • fix: TCDRWriter::Execute intern Stack overflow
  • fix: catch on StartProgramExA (6) Access violation at address 00000000. Write of address 00000000
  • fix: direct query API char escaping
  • fix: security bug related enduser ip based authentication (affecting register requests only. call sessions were not affected)
  • fix: 171 closed/resolved tickets from the last major release
  • fix: many minor bug fixes
 

Softswitch v.9.0 - Tuesday, June 18, 2019


  • new: detailed registrar statistics
  • new: SIP load balancer integration and auto reconfiguration
  • new: mmanage encrypted/compressed remote server connection
  • new: server IP allocation from central location
  • new: user mapping module (when user URI have to be rewritten before forwarding)
  • new: rerouting by protocol
  • new: SQLCPUUsage if local server, then check the process cpu load
  • new: integrated mservicehost
  • new: native SQL client option (SQLNCLI instead of SQLOLEDB)
  • new: auto OS and DB optimizations and fine-tune for VoIP purposes
  • new: offline messaging caching/queuing support
  • new: full support for push notifications (both FCM and Apple)
  • new: responsive design for the web control panel
  • new: remote access from MManage
  • new: configurable days after to delete from backup db
  • new: users and enduser -> webportal connect as user
  • new: server console with built-in API list
  • new: option to disable disconnect/exit on timeout
  • new: mmanage check if server domain resolves to server IP
  • new: config wizard allow fork config
  • new: "version" command
  • new: webportal auto login from mmanage
  • new: SMS module with flexible external HTTP API handling
  • new: asendsms API
  • new: ability to send SMS with external app (launch exe instead of URL)
  • new: SMS verify (separate request with a delay. will just modify existing CDR)
  • new: SMS did number lookup
  • new: mmanage settings cache (speed up mmanage load by caching the last tb_settings load)
  • new: webportal softphone/webphone integration
  • new: webportal new settings for endusers such as voicemail config, conference rooms, etc
  • new: softphone contact list integration: savecontactlist API, publiccontacts
  • new: allow user auth also with the TelNumber field (instead of the Username)
  • new: api command to rebuild all clients
  • new: supervisor API and protocol encryption
  • new: auto-retry call to alt number
  • new: SIP message quick rewrite module (at transport level)
  • new: allowoutboundrouting config (disable routing to outbound if push only)
  • new: apply tb_firewalls also for webrtc traffic (at socket level)
  • new: separate command for loglevel reload
  • new: sendcpcparameter setting set to ";cpc=ordinary" if needed
  • new: sendsipuseruripartfrom setting 0=no,1=for telnumbers to outbound sip servers in sip header,2=also in to header, 3=always (add user=phone such as sip:+12125551212@gateway.com;user=phone)
  • new: usesrvrecords setting 0: no, 1: on low load, 2: yes
  • new: handledtmfevent setting enable dtmf based features such as transfer or call. 0: no, 1: auto, 2: always, 3: even while ringing (set to 2 if to handle dtmf in gateways)
  • new: allowanonymouscaller setting routing from anonymous; -1: autoguess, 0=no (default recommended), 1=yes allow anonymous to call free access ivr, local endusers or only for freeaccessuserid if system load is low, 2=allow also if load is high, 3=allow to call anywhere (never recommended)
  • new: openregistrar setting accept blind registrations. 0=no,1=yes with any username/pwd,2=yes from low level
  • new: blindauthentication setting openrelay; 0=no (def, reccommended), 1=yes (never recommended) //set a def user or modify v_checkuser to don't check the password
  • new: freeaccessnumber setting anonymous access to a user; this number/username can be called freely (will map to freeaccessuserid)
  • new: GetOtherPartyDisplayName and GetBestDisplayname
  • new: multithread optimized memory manager
  • new: mmanage basic network list the secure port
  • new: server side nat keepalive packets
  • new: fax module setting
  • new: configurable user=phone in the URI
  • new: reguser from admin command
  • new: nonce based API pre-auth
  • new: remoteadmin setting: if 0 then don't allow remote admin socket or admin API connections (only from 127.0.0.1/localhost/localiplist)
  • new: compress and encrypt remote sql traffic
  • new: built-in SQL management
  • new: enable/disable presence from config wizard: fwdsubscribe/cfg_routepresence/fwdsubscribeoutbound
  • new: local number portability auto import ported numbers
  • new: auto socket reuse
  • new: option to require registration: autocreatereguser = 2
  • new: srvinstance filter for logs
  • new: directions cache (speedup direction lookup by 60X)
  • new: ability to run commands on all servers (especially important for the reload command)
  • new: autoprovisioning based on IP address (on new user, the server could remember the last ip/username/password)
  • improved: major upgrade for the SIP and media stack with all the cumulative updates since 2018 June
  • improved: multi-instances send admin command to all servers (apply now)
  • improved: SMS send from separate thread
  • improved: normalize phone numbers for sendsms
  • improved: voicebackupdir handling
  • improved: Identity header handling
  • improved: secure/tunnel HTTPGet: separate function for SetTunnelURL(StringEx oldurl)
  • improved: tls processing speedup with optimal schduling, prirotization and threadpoll
  • improved: mmanage menu reorganization
  • improved: MManage user interface optimizations and simplifications
  • improved: config wizard applying takes too much time (appliing the convertowebrtcgw. should be done only once)
  • improved: mmanage warn if record was not saved on reload/close (user, rule, etc)
  • improved: MoveFile handle out of space errors
  • improved: call transfer related changes
  • improved: tunneling optimizations
  • improved: subnet verifications
  • improved: log first fcm fail if there was no success before
  • improved: sms receive (handle incoming sms); smsreceive API
  • improved: default max log days depends on available space
  • improved: fast internal hashmap for long numbers
  • improved: better handling wrong sql connection string and bind IP at startup
  • improved: auto setup optimal file permissions
  • improved: do not resend INVITE on high load
  • improved: last CDR id lookup failback to SELECT CAST(SCOPE_IDENTITY() AS INT) AS LAST_IDENTITY
  • improved: skip using well known TCP/UDP ports for RTP and TURN purposes
  • improved: allowforkforsignaling and usephisicalfromaddr default config
  • improved: do not allow server/traffic sender auth ip to users transip
  • improved: subsequentwrongcalls skip if not from same ip
  • improved: new completely different tunnel keys (auto regenerate)
  • improved: sqlupdater exec queries separately on fail if load is not too high
  • improved: nonce per remote peer to avoid duplicate udp bug
  • improved: log management (maxlogsperday, maxlogpermin, maxloglisten)
  • improved: mmmanage search
  • improved: mmanage push notifications enabled by default
  • improved: socket level integrity checks
  • improved: config wizard add directories: make it faster by submitting multiple sql at the same time
  • improved: don't disable connectivity check on the config wizard if public ip (still can be blocked by external firewall)
  • improved: addrlist: delete from addrlist then main addresses from other accounts
  • improved: change upper server address should check also tb_users (remove old addr transip/addlist, etc)
  • improved: called party username to the log
  • improved: auto slow down status db storage on high refequency and/or too high db load
  • improced: remove upper server registration if push notifications fails
  • improved: def caching depends on available memory and local/remote sql
  • improved: better calc pushnotification_persists (take in consideration the previous server load ...or the current server log!)
  • improved: banning a valid SIP server entry should be avoided
  • improved: don't start new cdr thread if terminating or allow new query on terminated
  • improved: gracefully termination for endpoints (from the mainlogic thread)
  • improved: set io priority for mserver to low (especially for the logger)
  • improved: forwardonnoanswer is not good. we should just resend the same invite to the same destination with changed called number and changed call-id
  • improved: auto separate the apple push certificate (pushkitYOURPACKAGENAME.pem)
  • fix: tls high CPU load
  • fix: socket objinfo related crash
  • fix: old wrong logpath (and other wrong settings) are loaded from the mizuserver.ini file (and handle log can't create)
  • fix: call WSAStartup and WSACleanup only once
  • fix: tunnel answer for initpacket not received
  • fix: catch on GetCfgValSetDef The statement has been terminated. String or binary data would be truncated
  • fix: mmanage config right click popups doesn't work if we have a search filter already set
  • fix: mmanage: if(NODE <= 0 && frmMain->mainnode > 0) -> WARNING, you should select a node first (View menu -> Node)
  • fix: mmanage wizard don't add IP as comment
  • fix: media form playback in mmanage
  • fix: don't update PRManager if no PRManager used at all in the system
  • fix: cannot find sip server user by id
  • fix: logreset doesn't restore old loglevel if it was lovered
  • fix: mmnage routing and rules unsaved record popup on close
  • fix: server not disconnecting calls on close in some circumstances
  • fix: auto HTTP API handling in server console
  • fix: changing the MAC alone invalidates the license
  • fix: invalid sms parameters
  • fix: too much dns query from TFastReg::LoadAuthIPList
  • fix: parser error Access violation at address 00D06CAD
  • fix: catch on Message::GetParameters (14) Access violation at address 00D06CAD
  • fix: multi-node setup network basic doesn't work because missing
  • fix: mmanage doesn't detected that port 80 is already occupied
  • fix: mmanage server console if API htto req returns or DOCTYPE HTML then retry on tcp
  • fix: remove old firewall rule before adding new
  • fix: ERROR: on optimize User 'xxx' does not have permission to run DBCC freeproccache
  • fix: fax auth session mismatch
 

Softswitch v.8.8 - Monday, April 30, 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