10.0.8 23.7.2014

  • fix 10.0.6,10.0.7 release (crashes)

10.0.6 22.7.2014

  • fix SQL queue which stuck when max_allow_packet in mysql is default 1MB (which is by default)
  • do not add another IP/port but update the old one taken from SDP on RE-INVITE or other cases with SDP - take the unique session id from SDP header for matching which fixes problem with multiple RTP streams in calls which are not related to the call. Fixes all versions. On high throughput this would lead to less CPU and less I/O.
  • fix offline reading pcap files - sql handler was terminated sooner
  • fix: run pcapcommand after all packets are written to pcap file
  • reset jitterbuffer simulators when receving DTMF to not affect MOS score negatively
  • fix audio sync issue for g.711 CNG frames
  • add siren7 decode (G.722.1) support

10.0.5 14.7.2014

  • fix filter in live sniffer
  • optimize query for select min id in database backup
  • fix typo in configure script
  • add plcdisable config option and --plc-disable cmd line for G711
  • add information about sniffer upgrade file size to error log
  • Fixed install command for libcurl4-openssl-dev
  • add update_dstnum_onanswer option
  • try to reconstruct both audio if 200 OK is missing (or 18X with SDP)
  • support Yes or YES in voipmonitor.conf

10.0.4 30.6.2014

  • fix high MOS scores for fixed50 and fixed200 MOS scores. Fixed50 acts like 250ms and fixed200 like 400ms. (9.3 regression - broken since 5.5.2014)

10.0.3 27.6.2014

  • fix mirroring between 32bit and 64bit sniffers (9.3 regression)

10.0.2 27.6.2014

  • fix mos score for g729 (if enabled in voipmonitor.conf which is not recommended anyway) which was always high even for huge packet / PDV loss

10.0.1 24.6.2014

  • fix GRE protocol (10.0 regression)
  • fix IP defragmentation
  • fix crashing when decoding to WAV (10.0 regression)
  • redesign timestamp reorder warning (10.0)
  • fix SIP SMS hide message capture rules

10.0 19.6.2014

Optimizations

  • reimplement saving pcap files and add native gzip pcap and graph files which is enabled by default. Zipping is done in threads which dynamically grows. Use open/write sys calls instead of libc fwrite/fopen/fclose to allow store files at >6000 calls/second rate (impossible with libc fwrite/fclose functions). Any writes to file are asynchronous by default using different queue which will not block processing packets. New parameters in config/voipmonitor.conf - pcap_dump_bufflength, pcap_dump_zip, pcap_dump_writethreads, pcap_dump_writethreads_max, pcap_dump_asyncwrite, pcap_dump_asyncbuffer. Those optimizations does not require cachedir for very high I/O loads now.
  • properly dequeue remote sensors by the timestamp to prevent race conditions or if sniffing on interface = eth1,eth2
  • Optimize SIP parser which is now much faster
  • do not try to parse callid on UDP packet if it cannot be SIP (can save some CPU)
  • save few kB for each jitterbuffer channel (3 per RTP stream) - removed unused structures
  • release calls from memory sooner and do not wait on rtptimeout for some cases
  • end calls sooner than the rtptimeout if there is no further communication after 401 SIP response
  • be more tolerant in jitterbuffer simulater to burst RTP packets - add 200ms more so the MOS is not negatively affected
  • if mysql procedure fails run repair table mysql.proc which is the most common source of the issue
  • implement new mysql fine tunning options - mysqlstore_concat_limit and mysqlstore_concat* - see voipmonitor.conf for more details
  • modify packetbuffer log drop statistics (heapoverrun and drop packets on interace)
  • repair table mysql.proc at every sniffer start (it is broken after hard restart very often...)
  • shorten register sip message timeout from 30 to 5 seconds (helps to manage RAM when there is REGISTER flood) and add option sip-register-timeout so it can be set to custom seconds
  • implement autocleaning to prevent 100% disk space usage. in case the space is below 1% and below 5GB (which is default threshold) reindexfiles procedure will be executed and cleaning will be restarted. In case this will not help the new maxpoolsize will be set to size of current spool directory and will keep free space MIN(1% freespace, 5GB). Default is autoclean enabled, 1% free space or 5GB free space. New configuration options: autocleanspool = yes, autocleanspoolminpercent = 1, autocleanmingb = 5
  • if filesindex directory is missing at all or there are no data past 12 hours reindexfiles will be initiated on sniffer start
  • use old partition schema even if mysql is upgraded from 5.1 to 5.6 - it autodetects old partitions.

Bugfixes

  • SIP 200 packet was never saved if it was not BYE or INVITE - all 200 to CANCEL were missing. (probably all versions)
  • if RTP src/dst port was the same as sipports the RTP was ignored (fixes all versions)
  • do not end call prematurily on 481 transaction does not exist
  • fix beeping in silence sequences for G711 ALAW/ULAW (all versions)
  • fix g729 garbled audio for annex B / cng
  • fix ignoring RTP if the first RTP is TELEVENT (flash/dtmf etc) leading to silence in audio recording
  • fix if device wants to unregister (send REGISTER expires=0) and server replies 200OK expires>0 the sniffer did not deregister it from active calls
  • fix reassembling TCP which would lead to crash
  • fix bug causing deadlock on 32bit
  • fix race condition leading to crash in get sniffer status via manager
  • fix crash in case the call is one-way SIP and RTP frames are held in heap due to I/O
  • do not end sniffer when sending mirroring traffic to receiver and the connection resets - properly reconnect once the receiver is up again.
  • fix pcap files when sending traffic from different interfaces (TUN / ETH) to one receiver
  • fix indication in CDR when packet loss in kernel / heap is detected so in the GUI CDR shows the loss might be not real
  • ensure that the left channel of the was is always caller
  • take size of files from OS sys calls and do not rely on pcap caplen which fixes bug in cleaning which thinkgs there is much more space consumed
  • fix audio if caller/called changes codec from one sample rate to another
  • fix low MOS score in case call changes packetization from 10 to 20 and back to 10 which is pretty rare but it can happen
  • fix SIP TCP reassemble ignoring some TCP messages in SIP (all versions)
  • fix SIP TCP reassemble if the first SIP packet does not contain Call-ID it was not tracked at all.
  • fix SIP TCP reassemble duplicate TCP packet - last fragment was stored twice
  • fix racecondition when storing multiple calls from file - some of calls might not be saved due to preliminary end of the program not waiting to finish all queues
  • fix crash if SIP type MESSAGE has larger content-lenght than the whole message.
  • fix skinny skip flag
  • resolve mysql host only in main thread which fixes issues on some systems which crashes when resolv is in multiple threads. The static binary is now compatible with all centos versions again.
  • fix parsing DSCP bit
  • fix race condition leading to crash when saving to wav is enabled
  • fix regression for all versions >9.1 when (and only for) G729 RTP streams were not scored by MOS at all and although there were loss or delays the MOS was always 4.5.
  • fix typo in voipmonitor.conf - onowaytimeout -> onewaytimeout
  • fix small memory leak in case there is T38 in SDP (all versions)
  • fix redundant reconnect to db - flush previous query before try mysql_ping (problem since 9.1)
  • fix skinny racecondition crash and add support for more version headers for some messages
  • fix skinny called/calling swapped

New features

  • add support for capture rules by domain
  • parse multiple SIP messages carried in one TCP packet
  • add call per second and sip packets per second to the syslog info line
  • if the call timeouts due to absolute timeout mark this in cdr.bye - 103 so the GUI can alert / see it
  • support reading compressed pcap files (-r)
  • add G722.1 and AMR codec support
  • add option only_cdr_next for save cdr only to cdr_next table
  • enable merging calls based on matching call-id. The idea is that the second leg with different call-id has in the first INVITE special header which has the call-id of the parent SIP call. The configuration option specifies name of the header.
  • add syslog messages when upgrading sniffer
  • add connect_duration to listcalls manager command
  • add new configuraiton option absolute_timeout (default set to 4 * 3600s) which ends call longer than 4 hours by default.
  • add new configuration option destroy_call_at_bye which ends call after 20 minutes (default 20*60) no matter how many RTP/SIP packets arrives after the BYE.
  • parse custom headers also for SIP 2XX methods
  • replace wget with libcurl when doing autoupgrades from the manager
  • implement saving audio in ogg / stereo / various sample rate (new config saveaudio_stereo default is stereo now). Add new option ogg_quality so user can control quality of the ogg file
  • allow RTP stream to be assigned to two independent calls with different call-id.
  • store RTP mark bit into .graph file so the GUI will show where mark bits are set
  • implement new cdr.a_last_rtp_from_end and cdr.b_last_rtp_from_end which stores number of seconds from last RTP packet to the end of call. This will be used to find calls where any of side ends RTP stream sooner. Such situation is not yet detectable without knowing those parameters.
  • add support for other GRE encapsulation types (for IP protocol)
  • when mirroring packets send id_sensor and DLT number on connect so configuration option mirror_bind_dlt is not needed anymore and allows to set id_sensor for each sender. It is not backward compatible with older versions thus the receiver must be >= 9.4 beta1
  • add time shift information to syslog if detect bad packet order
  • sip_send_ip = 127.0.0.1 (or 127.0.0.1:12345) sip_send_port = 12345 will send text SIP messages to TCP socket
  • implement skip flag also for cisco skinny protocol
  • sccp skinny: record RTP stream for some cases where signalization does not contain conference number = call reference which fixes ampty RTP
  • use only first detect value for custom headers or last if set configuration value custom_headers_last_value

9.3 10.2.2014

  • fix crashing when decoding audio in certain cases and also when doing realtime listening
  • do not connect to database if nocdr is set (-c)
  • fix crash if non ascii is put into telnum filter
  • fix freebsd compile
  • implement storing rtp port to cdr_rtp database (cdr_rtpport option must be set to yes and it will upgrade database)

9.2 31.1.2014

  • do not put CNG frames into audio decoders which causes garbled g729 stream and causes low MOS score even thought there is no packet loss at all
  • use separate MySQL connections for live packet sniffer and for storing REGISTER messages which adds parallelization and speedups INSERTS
  • fix ipaccount for GRE protocol
  • add --no-cache parameter to wget in download upgrade
  • fix issue with double semicolon in sql query
  • add support for DLT_IEEE802_11_RADIO reading pcap files and sniffing on raw wifi

9.1 29.1.2014

  • Fix MySQL deadlock in case the MySQL connection timeouts. This bug started since 8.4 - 9.0 verisons.
  • Fix storing to MySQL if file is read from file (bug introduced in 8.4 and 9.0 versions) and do not fork when reading from file
  • Optimize failed registrations which caused mysql overload in case of register flood
  • fix configuration issue in case the datbase is partitioned and cdr_partition was not set
  • fix MySQL indefinit reconnect in case the sniffer is stopping or starting which causes hang in linux bootup / shutdown process.
  • fix undefined codec in case of CNG (comfort noise) frames.
  • add new option saveaudio_reversestereo which reverts left and right channels
  • add new manager command pcapstat which prints ringbuffer packet drop counter
  • fix issue in interface option when list of interfaces contains spaces like: interface = eth0, eth1
  • support mysql 5.0

9.0 17.1.2014

Optimizations

  • do not create RTP pcap file for every sip call but only if there is actually RTP which saves a lot of I/O
  • take min MOS score from fixed2 jitterbuffer simulator by default which eliminates low mos score due to f1 and adapt sensitivness
  • do not flood log with "to much INVITEs in this call" show the message only once increase MAX_IP_PER_CALL from 30 to 40
  • Close SIP and SIP+RTP dump files ASAP to save some number of opened files and memory (Rob Gagnom)
  • optimize thread0 packetbuffer size
  • disable sendfile flood if not present in old kernel
  • modify install script which will ask if the user wants to overwrite configuration file
  • optimize SIP MESSAGE sql storing which accidentally access database for each SIP MESSAGE which leds in queueing sip message types
  • do not create partitions every hour but every 12 hours
  • add option disable_partition_operations which will not create partitions (in multisniffer environment all other sensors should have disabled partition creation which is redundant)
  • enhance drop old partitions
  • check if another instance of voipmonitor is running on background based on name of the configuration file (so more instances can still run on background with different configs)
  • in case call is closed with 403 response shorten close window to 5 seconds so that call will not timeout on rtp_timeout (which is 5 min by default).
  • change mtune and march to native in Makefile
  • calls which end with 4XX or 5XX was not released from memory immediatelly and was waiting for rtptimeout if sip source port differs from the first INVITE.

Bugfixes

  • do not parse SIP data after content-lenght = X. This fix was already done before but only if verbose > 1
  • save to register_failed all REGISTER which is not success and not only if the password is wrong.
  • fix DSCP (reversed) and not working if pcapscandir is used.
  • do not terminate call prematurely when SIP 501 "Not Implemented" is received
  • fix spooldir cleaning (broken in 8.3 version) and reindexfiles which has problem if directory has more then 2GB
  • fix potential crash in RTP processing
  • fix crash on some 32 bit platforms
  • fix audio decoding for comfort noise and dtmf - do not create new RTP instance if payload is one of 13,19,101
  • fix callslimit which did not worked at all
  • fix ODBC driver (tested for mssql) which was not maintained for a longer time
  • fix traffic speed in verbose output
  • If cdr proxy is enabled (which is by default) fix called IP in cdr and false proxy record in proxy column in case called make reintive. Fix proxy in case there is INVITE to fail-over - write the last IP of the last SIP and not the first (failed) one. Fix hangup indication (cdr.whohangedup) in case call travers through proxies (called was marked as hanged up always)
  • following issue was fixed only when reading pcap files but not in realtime sniffing - prior verison 8.0.1 deduplicate (which is default off) was comparing only data without ip header and udp header so duplicate packets was matched also in case when IP addresses differs. This was good for some cases but it leads to completely ignore RTP streams in other cases. Now default option is to check duplicates based on not only data but ip headers too. To change this set deduplicate_ipheader = no. default = yes.deduplicate_ipheader = yes. fix recent deduplication fix which was wrong and it leads to remove packets which were not duplicated because it took less data than actual data (12 bytes less). This fixes T38 decoding in GUI for example.
  • do not send SID frames to G729 decoder which fixes garbled sound for G729 RTP streams.
  • escape database name in sql queries ('-' caused problems)
  • fix detect partitions in cdr% tables when upgrading from older versions
  • fix convert_dlt_sll2en10 parameter
  • do not flood syslog when RTP files cannot be created
  • fix IP header len when defragmenting packet which prevents to see some SIP packets in SIP history (and in wireshark).
  • fix SDP: sometimes SDP could not be parsed if the IP was the last line in SDP in the packet thus ignorind the whole RTP
  • fix parsing tags which can be terminated also by only new line instead of CRLF
  • fix rare issue with new invite after last sip response 487
  • do not report mysql error when recreating mysql stored functions. do not drop / create those functions if they are not different
  • fix parsing custom headers for sip methods RES3XX, RES4XX, RES5XX, RES6XX
  • fix incorrect 200 OK last response code when CANCEL is confirmed by 200 OK without request terminated.
  • if voip SIP device (with source IP 1.1.1.1) sends in SDP that it wants RTP for example to 10.0.0.1 and port 10000 the call also sniff RTP from 1.1.1.1:10000 or to 1.1.1.1:10000 which does more problems than it solves. Now this behaviour is changed and if you need this option back you can enable it sdp_reverse_ipport=yes. This change fixes RTP packets assigned to wrong call and other weired problems.
  • fix crash in case the sniffer run outs of file descriptor
  • DTMF events are not always 101 - take it from the SDP which fixes audio sync and g729 garble issues and many graph files in case telephone events payload is not 101 (typically 100)
  • do not try connect to mysql indefinitely when the sniffer is started. This was problem if mysql does not run and voipmonitor starts at boot which stucked the whole booting process.
  • if the call is not connected it was supposed to set -1 to connect_duration but the column is unsigned thus it will end up with 0 - this fix will set NULL if call is not connected (as well as first_rtp_time and progress_time)
  • automatically disable partitions for mysql <= 5.0
  • fix mysqlcompress configuration option which has been always disabled.
  • fix if sniffer is terminated by TERM signal (service voipmonitor stop) and there were some calls in sql queue and the mysql server has gone the sniffer tries indefinitely to connect.
  • fix reloading capture rules which dissapeared due to mysql race condition
  • fix mysql issues causing random corruption when doing reload
  • fix long term issue (all versions) where the .graph file in CDR detail (in the GUI) suddenly jumps if sequence numbers changes either due to packet loss or due to VAD. Now graphs should not move up/down suddenly
  • fix low MOS score for adaptive jitterbuffer in case a SIP session reinvites and RTP packets does not correctly increases sequence numbers or timestamps
  • fix low MOS score for adaptive jitterbuffer even for 5 packet loss caused by normal shrink/grow internal jitterbuffer simulator.A
  • fix inappropriate packet loss report if a SIP session reinvites and RTP stream with the same SSRC has hole which is normal (although the wireshark still report packet loss as well as any RFC RTP compliant RTP analyzer)

New features

  • implement new cdr columns - sipcallerport, sipcalledport - if configuration variable cdr_sipport is set to yes
  • implement destination_number_mode which will take number from INVITE URI or To: SIP header. If destination_number_mode = 1 it will always save number from To: header. If destination_number_mode = 2 it will take number from INVITE URI. default: destination_number_mode = 1
  • When scanpcapdir is being used, voipmonitor will by default read any new file that is created in that directory as soon as the file is closed. This is the normal setting if your packet capture software is tcpdump. If you are using a different packet capture software, you may need to change this setting to "rename" if that software writes to a temporary file, closes it, and then renames it to something else after the file is closed. Default setting is "newfile" (Rob Gagnon)
  • packetbuffer mirroring - add support for multiple sender connections to one central receiver. Now the receiver will accept unlimite number of connections at the same time.
  • support compile on FreeBSD (tested on FreeBSD 8.3)
  • implement reading from list of interfaces which is better alternative to interface = any. Now it is possible to sniff on eth0 and eth2 within one sniffer - interface = eth0,eth2. Reading is done in separate threads which takes benefit over interface = any
  • if SSRC changes during call and there is another SSRC change to previous one and the RTP packet has the same seq and timestamp does not reflect the gap - do not report huge packet loss
  • implement GRE tunnel de-encapsulation
  • parse caller and called number in function save_live_packet if call is NULL which allows to filter OPTION and SUBSCRIBE in GUI live sniffer
  • Implement multipart/mixed SIP messages which voipmonitor ignored if there was SDP (for example SIP messages with SDP and ISUP)
  • implement binary format for graph file which makes *.graph files 5 times smaller which greatly reduces disk space and I/O operations. This needs the latest GUI
  • implement autocleaning in cachedir and automatically move files when sniffer was interrupted and restarted
  • add pcap size limit - configuration option maxpcapsize (in MB)
  • add upgrade, restart and sniffer stats via manager
  • add option create_old_partitions and create_old_partitions_from to create old partitions
  • add uptime to sniffer statistics
  • for caller number use tag remote-party-id (if exists) and caller contain anonymous so the CDR still contains number of the caller
  • SCCP: add support for CM7 header version (missing RTP)
  • SCCP: add CM5CALL_INFO_MESSAGE 0x014A type so caller/called numbers are set
  • implement ITU-T P.862 PESQ. pesq binary must be installed. mos_lqo in voipmonitor.conf must be enabled. in capture rules tables filter_ip or filter_telnum wav and mos_lqo must be anebled - cdr.a_mos_lqo_mult10 and cdr.b_mos_lqo_mult10 added.
  • new configuration option onewaytimeout ends sip call after set seconds which does not receive any reply from the other side. Technivally it takes sip source ip address from first invite/register and if there is no other sip source ip different from the first source ip the call will be terminated after onowaytimeout seconds. If a call is terminated due to this timeout in cdr.bye column will be 101. Purpose of this timeout is to release memory as soon as possible in case there INVITE flood which does not have any reply. Another reason is when mirroring is set incorrectly and the sniffer sees only one side of a SIP signalization. If onowaytimeout is not set default is 15.

8.4RC27 16.1.2014

  • fix mysqlcompress configuration option which has been always disabled.
  • fix FreeBSD endiannes again. Now RTP works
  • calls which end with 4XX or 5XX was not released from memory immediatelly and was waiting for rtptimeout if sip source port differs from the first INVITE.
  • fix if sniffer is terminated by TERM signal (service voipmonitor stop) and there were some calls in sql queue and the mysql server has gone the sniffer tries indefinitely to connect.
  • new configuration option onewaytimeout ends sip call after set seconds which does not receive any reply from the other side. Technivally it takes sip source ip address from first invite/register and if there is no other sip source ip different from the first source ip the call will be terminated after onowaytimeout seconds. If a call is terminated due to this timeout in cdr.bye column will be 101. Purpose of this timeout is to release memory as soon as possible in case there INVITE flood which does not have any reply. Another reason is when mirroring is set incorrectly and the sniffer sees only one side of a SIP signalization. If onowaytimeout is not set default is 15.
  • support sccp skinny header ver. 0x17

8.4RC26 10.1.2014

  • do not try connect to mysql indefinitely when the sniffer is started. This was problem if mysql does not run and voipmonitor starts at boot which stucked the whole booting process.
  • fix clean partitions if cleandatabase is set
  • if the call is not connected it was supposed to set -1 to connect_duration but the column is unsigned thus it will end up with 0 - this fix will set NULL if call is not connected (as well as first_rtp_time and progress_time)
  • check if another instance of voipmonitor is running on background based on name of the configuration file (so more instances can still run on background with different configs)
  • in case call is closed with 403 response shorten close window to 5 seconds so that call will not timeout on rtp_timeout (which is 5 min by default).
  • fix freebsd endianess detection which resulted in ignoring RTP packets
  • change mtune and march to native in Makefile
  • automatically disable partitions for mysql <= 5.0

8.4RC25 8.1.2014

  • fix clean partitions when opt_cleandatabase is set
  • avoid race condition leading to crash when cleaning regfailed class (since 8.4RC24)
  • print error when any of sniffing interface fails to initialize
  • fix long startup of the sniffer optimizing mysql query checking cleaning
  • document cdr_sipport option in voipmonitor.conf which was added recently

8.4RC24 3.1.2014

  • fix memory leak in adaptive jitterbuffer if it is reset (leak since 8.4RC versions)
  • DTMF events are not always 101 - take it from the SDP which fixes audio sync and g729 garble issues and many graph files in case telephone events payload is not 101 (typically 100)

8.4RC23 2.1.2014

  • cache register_failed queries to not flood mysql database in case of register failed flood attack

8.4RC22 30.12.2013

  • do not parse SIP data after content-lenght = X. This fix was already done but only if verbose > 1
  • implement new cdr columns - sipcallerport, sipcalledport - if configuration variable cdr_sipport is set to yes
  • implement ITU-T P.862 PESQ. pesq binary must be installed. mos_lqo in voipmonitor.conf must be enabled. in capture rules tables filter_ip or filter_telnum wav and mos_lqo must be anebled - cdr.a_mos_lqo_mult10 and cdr.b_mos_lqo_mult10 added.

8.4RC21 19.12.2013

  • SCCP: add CM5CALL_INFO_MESSAGE 0x014A type so caller/called numbers are set
  • fix sip register in caase REGISTER-OK (no 401 or 404) - broken since 8.4RC20
  • fix crash in case the sniffer run outs of file descriptor
  • fix DSCP RTP in CDR in case pcap is read by pcapscandir
  • optimize SIP MESSAGE sql storing which accidentally access database for each SIP MESSAGE which leds in queueing sip message types
  • modify install script which will ask if the user wants to overwrite configuration file
  • add support for CM7 header version (missing RTP)

8.4RC20 16.12.2013

  • save to register_failed all REGISTER with only one REGISER meesage and also all REGISTER with one 401 or 403 reply (which were not stored to register failed)
  • fix sip dscp which was reversed

8.4RC19 13.12.2013

  • fix wget issue - move parameter --no-check-certificate to first after command wget
  • set FOREIGN_KEY_CHECKS=0 before drop table
  • fix potential issue with small size of packetbuffer
  • use id_sensor when doing reindexfiles which was deleteing records for other sniffers

8.4RC18 12.12.2013

  • for caller number use tag remote-party-id (if exists) and caller contain anonymous so the CDR still contains number of the caller
  • do not reindex files repeteadly if the last cdr is old.
  • fix freebsd compilation on 32bit
  • do not terminate call prematurely when SIP 501 "Not Implemented" is received
  • implement destination_number_mode which will take number from INVITE URI or To: SIP header. If destination_number_mode = 1 it will always save number from To: header. If destination_number_mode = 2 it will take number from INVITE URI. default: destination_number_mode = 1
  • if SSRC changes during call and there is another SSRC change to previous one and the RTP packet has the same seq and timestamp does not reflect the gap - do not report huge packet loss
  • disable sendfile flood if not present in old kernel
  • suppress warning in query SET GLOBAL innodb_stats_on_metadata=0
  • do not print "End of pcap file, exiting" to syslog
  • optimize thread0 packetbuffer size

8.4RC17 5.12.2013

  • packetbuffer mirroring - add support for multiple sender connections to one central receiver. Now the receiver will accept unlimite number of connections at the same time.
  • fix incorrect 200 OK last response code when CANCEL is confirmed by 200 OK without request terminated.
  • if voip SIP device (with source IP 1.1.1.1) sends in SDP that it wants RTP for example to 10.0.0.1 and port 10000 the call also sniff RTP from 1.1.1.1:10000 or to 1.1.1.1:10000 which does more problems than it solves. Now this behaviour is changed and if you need this option back you can enable it sdp_reverse_ipport=yes. This change fixes RTP packets assigned to wrong call and other weired problems.
  • When scanpcapdir is being used, voipmonitor will by default read any new file that is created in that directory as soon as the file is closed. This is the normal setting if your packet capture software is tcpdump. If you are using a different packet capture software, you may need to change this setting to "rename" if that software writes to a temporary file, closes it, and then renames it to something else after the file is closed. Default setting is "newfile" (Rob Gagnon)

8.4RC16 3.12.2013

  • support compile on FreeBSD (tested on 8.3)
  • fix parsing custom headers for sip methods RES3XX, RES4XX, RES5XX, RES6XX
  • do not report mysql error when recreating mysql stored functions. do not drop / create those functions if they are not different
  • fix rare issue with new invite after last sip response 487
  • Close SIP and SIP+RTP dump files ASAP to save some number of opened files and memory (Rob Gagnom)

8.4RC15 29.11.2013

  • fix excessive loss report for some cases in case of reinvite (regression since 8.4RC12)
  • fix SDP: sometimes SDP could not be parsed if the IP was the last line in SDP in the packet thus ignorind the whole RTP
  • fix parsing tags which can be terminated also by only new line instead of CRLF
  • add uptime to sniffer statistics
  • enhance drop old partitions
  • add option create_old_partitions for create old partitions

8.4RC14 27.11.2013

  • do not flood log with "to much INVITEs in this call" show the message only once increase MAX_IP_PER_CALL from 30 to 40
  • add upgrade, restart and sniffer stats via manager
  • use global db handler sqlDbCleanspool for all cleanspool operations

8.4RC13 21.11.2013

  • fix IP header len when defragmenting packet which prevents to see all data in SIP history and in wireshark.
  • fix parsing of useragent - broken since 8.4 RC4

8.4RC12 18.11.2013

  • fix reloading capture rules which dissapeared due to mysql race condition
  • fix mysql issues causing random corruption when doing reload
  • fix long term issue (all versions) where the .graph file in CDR detail (in the GUI) suddenly jumps if sequence numbers changes either due to packet loss or due to VAD. Now graphs should not move up/down suddenly
  • fix low MOS score for adaptive jitterbuffer in case a SIP session reinvites and RTP packets does not correctly increases sequence numbers or timestamps
  • fix low MOS score for adaptive jitterbuffer even for 5 packet loss caused by normal shrink/grow internal jitterbuffer simulator.A
  • fix inappropriate packet loss report if a SIP session reinvites and RTP stream with the same SSRC has hole which is normal (although the wireshark still report packet loss as well as any RFC RTP compliant RTP analyzer)
  • take min MOS score from fixed2 jitterbuffer simulator by default which eliminates low mos score due to f1 and adapt sensitivness
  • disable cleanspool functions if not set parameters

8.4 RC11 13.11.2013

  • do not flood syslog when RTP files cannot be created
  • fix cleaning spool directory - delete files which are not indexed and run reindex in case of inconsistency
  • add pcap size limit - configuration option maxpcapsize (in MB)
  • implement autocleaning in cachedir and automatically move files when sniffer was interrupted and restarted
  • fix convert_dlt_sll2en10 parameter

8.4 RC10 6.11.2013

  • fix MySQL race condition causing crashes and undefinite cleaning of parition each second when mysql cleaning enabled.
  • fix ebug in syslog
  • fix memory leak caused by cleaning which should not run when in mirror sender mode
  • implement GRE tunnel de-encapsulation