Added support of Skinny protocol for Cisco CallManager v.8.5
Fixed issue with Avaya Voip Passive Call Recording method for a scenario when phone is rebooted and all subsequent calls are recorded with one-way audio. The other side of audio is recorded into one very long call, which is created after phone reboot.
Multicast and broadcast RTP packets are ignored now. This eliminates a need to create custom recording filters, which would filter out Music-On-Hold audio that is generated by IP-PBX and sent with multi-cast to IP phones (this happens on some Cisco systems).
Added call parameter %{filename-dir} which contains a directory path without drive letter, for example: \Recordings\20110828\. More details: File name format
Decreased default value of PcapMinToCopySize from 4000 to 500 bytes. This fixes issue with audio quality during live monitoring when there is low network traffic (less than 5 active calls).
Increased default no-audio timeout values. This is necessary for the following call scenarios:
Call is put on hold for long time
There is a duplicating call, which shares RTP streams with other call. This call is normally remains in validating state.
If both these scenarios the call may be automatically closed by no-audio timeout. Later, when RE-INVITE message is sent for this call, it will be detected as a new call and this may cause incorrect recording of audio (one-way audio).
Changed a default value for FileNameFormat: %{call-id} is added to the end of filename. This guaranties that all files have unique names even if multiple calls were started at the same time. By default MiaRec creates audio files with names, which contains date and time of call start. If multiple calls are started at the same time, then MiaRec adds an unique digit to the end of file, like 20100810104533_2.mp3, 20100810104533_3.mp3 etc. This works very well but may still cause file name conflict when customer has configured automatic renaming/moving of files to other location upon call complete (see Post-recording filters). New default value for FileNameFormat guaranties that no conflict will arrise in this scenario.
Web-interface
Fixed issue "unable to login" when user is located behind HTTP Proxy. And this proxy sends subsequent requests from different ip-addresses.
MAC address is removed from call details pane because in 99% cases it is not important for customers. Anyway, it is possible to see MAC address of caller and called party inside calls table (change a visibility of the corresponding column).
Fixed issue with incorrect restoring of custom "Calls Per Page" value after user re-logins.
Fixed alphabetical sorting of Folders on the 2nd and bottom levels of hierarchy.
Other
WinPCap timestamp calculation method is changed to KeQuerySystemTime, which is more reliable than a default method (KeQueryPerformanceCounter). A default method may cause shift in time values (up to 5 seconds) on SMP systems.
Fixed an installer restore script, which returns database connection error in scenarios when restoring is made only for database files but not for configuration files.
2011-06-22 Version 3.1.383
Recording core (MiaRec.exe version 3.0.595)
Fixed issue with "cropping" audio during live montoring, which may appear in some rare call scenarios
2011-06-17 Version 3.1.382
Web-interface
Fixed compatibility with Google Chrome, Safari and IE 9.0
2011-06-15 Version 3.1.380
Recording core (MiaRec.exe version 3.0.594)
Fixed bug, which causes a crash of application under high load
Added support of Alcatel OmniPCX Enterprice. Alcaltel softphones use non-symmetric RTP streams. This caused a problem with recording: each side of conversation was stored into separate file. By default support of Alcatel is not enabled. It is necessary to enable it inside MiaRec.ini file:
[Protocol::Alcatel]
Enable=1
Also, IgnoreRtpPortChange should be set to "yes" inside MiaRec.ini file:
IgnoreRtpPortChange=yes
Other
Removed documentation file MiaRecAdminGuide.pdf from an installer. Instead, link to on-line documenation on our web-site is created.
2011-05-17 Version 3.1.378
Web-interface
Added closing button on "Auto-sort calls into folders" tab
Other
Python scripts supports reading of settings from MiaRec.ini file, which is saved in UNICODE format
2011-05-04 Version 3.1.376
Other
Updated Python scripts according to recent changes in database structure
2011-05-03 Version 3.1.375
Web-interface
Fixed issue with "Auto-sort into folders". The issue appears when a folder is deleted by user and a sorting rule existed for that deleted folder. The sorting rule was not deleted automatically with a deletion of appropriate folder. At the same time, the rule was not visible to user. This invisible sorting rule continued to sort calls into non-existent folder.
2011-04-14 Version 3.1.374
Recording Core
(MiaRec.exe
version 3.0.591)
Increased performance for scenarios, when less than 100% of calls are recorded (some of calls are ignored by filters).
Added support of "sip-header-invite" variable inside recording filters. For example: filterX condition = sip-header-invite#User-Agent = "Softphone v.1.0" filterX filename = C:\Calls\%{sip-header-invite#From}.mp3
Web-interface
Updated PHP to v.5.3.5
Updated Apache to 2.2.17
2011-01-28 Version 3.1.360
Recording Core
(MiaRec.exe
version 3.0.587)
Added support of IP fragmentation for TCP packets. Some phones (for example, Cisco 7975G) may send big SIP messages over TCP, which are fragmented on two or more IP frames. This issue caused recording of calls with empty caller-ids.
Do not analyze TCP packets, which are sent to/from ports less than 1024. Usually voip signaling packets should be sent from higher ports. This change in a program decreases CPU load in situation when mirrored traffic contains a lot of non-voip packets, like RDP, HTTP, Windows File Sharing etc.
Fixed bug, which may cause crash of application on some call scenarios.
2011-01-25 Version 3.1.359
Recording Core
(MiaRec.exe
version 3.0.586)
Increased performance. Recording engine was optimized.
2010-12-31 Version 3.1.358
Recording Core
(MiaRec.exe
version 3.0.575)
Added support of G.722 wideband codec. This codec is widely used by Cisco for internal calls (between two IP phones).
Silence detection is enabled. It was temporary disabled since version 3.1.348
Fixed issue in processing of UNISTIM protocol. If OpenAudioStream and CloseAudioStream are duplicated, then this may cause incorrect detecting of caller-ids when call waiting is used.
2010-10-21 Version 3.1.351
Recording Core
(MiaRec.exe
version 3.0.574)
Added support of new version of Skinny protocol (version 17 or CCM8). Old version recorded such calls with empty caller-ids.
Fixed "one-way audio" problem, which happens in some rare call scenarios (SIP protocol).
Fixed compatibility with some voice gateways, which use the same RTP port for multiple concurrent calls at the same time. Such behavior may cause a horrible recorded audio because the recorded file contains audio from two calls at the same time (20ms from the first call, then 20ms from the second call, then again 20ms from the first call and so on). Additionally some calls may be recorded with one-way audio.
Fixed issue with Avaya protocol. Extension number/name was extracted from display message only if RTCP had non-empty values for number/name. But should be reverse (... if RTCP had empty values).
Support of new firmware for Cisco IP Phones (MGCP protocol). Added new parsing rules for extracting caller/called phone numbers from MGCP RQNT message. Old version recorded such calls with empty caller-ids. If you update from older version, then contact us to receive detailed instructions of how to apply this update.
2010-09-29 Version 3.1.348
Recording Core
(MiaRec.exe
version 3.0.571)
Significant re-design of a recording engine, which gives better audio quality on highly loaded servers (more than a few hundreds of concurrent calls). New version is not exposed to CPU oveloads while old version may drop some RTP packets when CPU load is near 100%. Such dropping of packets causes an absence of audio for short periods (1-2 seconds) inside the recorded audio file. Note, such problem occured on highly loaded servers (600 and more concurrent calls). On smaller servers an old version works fine.
Prevent a recording of too long silence periods into audio file. For example, if a call is put on hold and then retrieved from hold in 30 minutes, then normally the resulting file would have 30 minutes of silence. New version limits a silence to maximum 5 minutes. The resulting file will have only 5 minutes silence. This results in much shorter file size.
Fixed compatibility with some buggy phones (SIP protocol), which change SDP ownerSessionId and version without changing other SDP parameters (address, codecs list etc). This change of SDP occures usually when call is answered (when dialtone is stopped and audio from remote side is started). It may cause a loss of audio for up to 5 seconds.
Changed a logic of how Hold/Retrieve is processed for Skinny protocol. Old version created multiple call instances. New version records all parts into one file.
2010-09-02 Version 3.1.347
Recording Core
(MiaRec.exe
version 3.0.568)
Ignore Remote Desktop (RDP) traffic because it is encoded into TPKT frames and every packet is checked for H.225 validity (this consumes CPU power). With new version traffic on port 3389 is discarded much earlier than with old version (here we assumbe that H.225/H.323 traffic is never sent over port 3389).
Fixed bug with degradation of audio quality on RTP streams, which have syncId = 0. Every second packet was ignored. This produced crops inside recorded audio file. Such bug occurs very rarely because according to standard, phones should send RTP with unique syncId (not equal to 0) and only some "buggy" phones/PBXs doesn't follow standard (this happens with some Aastra and Talkswitch PBX systems)
Added support of recording calls in situation, when both PBX and IP phone are behind NAT (and they are not in the same network, that is each of devices is behind own NAT). With old version it caused some calls were recorded with empty caller-ids. With new version we try to automatically detect such situation and do appropriate adjustments RTP packets processing.
2010-08-20 Version 3.1.345
Recording Core
(MiaRec.exe
version 3.0.566)
Fixed bug introduced in previous version (two days ago). This
bug causes some audio files to be empty (size 1KB). THis bug touches
following protocols: H.323, MGCP, MGCP PRI Backhaul, SIP, Skinny.
Ignore non-symmetric endpoints by default. "Non-symmetric" means that
endpoint has multiple NICs and can receive messages on one NIC (for
example, with ip 192.168.0.10) but send a response from another NIC
(with ip 10.0.0.20). This causes problem with SIP protocol, when
Linksys SPA 9000 PBX sends SIP INVITE to multiple phones at the same
time. The call is answered by one of the phone and then the call is
transferred to another phone. Because each SIP INVITE has the same
callid, messages from different phones are processed in MiaRec in the
same call instance rather than in separate instances. This causes two
issues: - incorrect callerid (RemoteParty Number) is displayed
inside MiaRec web-interface - "one-way audio issue" after the call is
transferred to another phone.
Added new configuration parameter to INI file (see explanation above): [Protocol::SIP] SupportNonSymmetric = [0 | 1]
2010-08-02 Version 3.1.344
Recording Core
(MiaRec.exe
version 3.0.565)
Changes to MiaRec Web Services (SOAP API):
WSDL file is possible to retrieve now via http://<ip-address>:<port>?wsdl (for example, http://localhost:6084?wsdl)
2010-07-20 Version 3.1.343
Recording Core
(MiaRec.exe
version 3.0.563)
Changes to MiaRec Web Services (SOAP API):
RecordingFilter.action is String now instead of Enum.
Disabled PingRecorder.py script by default. On some systems it causes constant restart of application every 5-10 minutes. Probably, because of some security settings on Windows Server, which prevent a communication between Python script and MiaRec service.
2010-07-18 Version 3.1.342
Recording Core
(MiaRec.exe
version 3.0.560)
Added support of custom parameters on per filter-basis. If the call matches the filter condition, then it can be assigned unlimited number of custom parameters. This can be used for integration with CRM system, for example. For example, call can be assigned the customer name/id.
Example:
filter1 action = record filter1 condition = caller-number = '123' OR callee-number = '123' filter1 customer-name = John Smith
Changes to MiaRec Web Services (SOAP API):
It supports now storing of custom parameters inside filters.
Also it supports adding filters to [Filters::OnCallStop] section inside INI file
When SOAP request fails, it generates how Exception with detailed description of error instead of pure SOAP_FAULT.
Fixed SOAP log capability. In previous version the received SOAP packets were not stored inside log file. Only sent packets were stored.
Better naming of soap log files (easier to find correct log file for analyzing): soap_20100101_000000_recv.log soap_20100101_000000_send.log Instead of: soap_recv_20100101_000000.log soap_send_20100101_000000.log
2010-07-02 Version 3.1.341
Recording Core
(MiaRec.exe
version 3.0.557)
Fixed bug in Avaya protocol handling, which caused a deadlock in a program and then automatic restart of it.
2010-07-01 Version 3.1.340
Recording Core (MiaRec.exe
version 3.0.556)
Fixed bug introduced in previous version (two days ago). This bug causes some audio files to be empty (size 1KB). THis bug touches following protocols: H.323, MGCP, MGCP PRI Backhaul, SIP, Skinny.
2010-06-29 Version 3.1.339
Recording Core (MiaRec.exe
version 3.0.555)
Fixed support of fragmented UDP packets. For example, SIP INVITE message is sent inside multiple IP frames instead of one. This happens because IP packet can hold maximum 1514 bytes by default. This issue caused some calls recorded with empty caller-ids
Added support of SIP over TCP. Some softphones (based on Microsoft RTC API) use always TCP rather than UDP for SIP messages.
Improved signficantly Avaya protocol: now extension is extracted from RTCP packet, which is sent by IP phone. This is very reliable method of getting caller-id on Avaya system.
Web-interface
Allow create/edit/delete of Notes for regular users. Permissions can be flexibly configured. It is possible to grant some users rights to create/edit/delete Notes, while disallow such operations for other users.
Fixed issue with deleting Notes. Old version didn't delete notes from database.
Width, position and visibility of columns in calls table are remembered
now and restoted after user logins to system again.
2010-06-04 Version 3.1.331
Recording Core (MiaRec.exe
version 3.0.552)
Fixed compatibility with UNISTIM, Avaya and TAPI protocol, which was broken by new recording engine (previous change)
Backup script ignores active calls and checks if call was already archived in a destination database (sqlite). So, it is possible to run backup script many times with the same destination directory. New calls will be added to backup. Existing calls will remain untouched.
2010-05-27 Version 3.1.330
Recording Core (MiaRec.exe
version 3.0.551)
New recording engine is implemted: improved significantly performance of MiaRec, when it is used for recording hundreds of concurrent calls.
Fixed mistyping inside INI parameters: should be "consecutive" instead of "cosective"
Fixed issue during creating audio file with name, with exists already. Sometimes OS returns error ENOENT instead of EEXIST
Use only SrcIp:SrcPort -> DstIp:DstPort for Pure RTP call. Other masks (like SrcIp -> DstIp:DstPort, SrcIp:SrcPort -> DstIp) create problems on some buggy telephone systems. For example, some Cisco Call Managers use always port 2000 for RTP streams. Use "IgnoreRtpPortChangeLight" configuration option (see below) if you want to use old behavior.
Added configuration parameter 'IgnoreRtpPortChangeLight' to section
[Protocol::Rtp]
2010-05-17 Version 3.1.328
Recording Core (MiaRec.exe
version 3.0.546)
MiaRec writes now messages to Windows NT Event Log system: start/stop application, license type, errors etc.
Fixed serious bug in Skinny packets parser. If bogus data is detected as Skinny packet and skinny message length is too big, then the program will go out of memory because of excessive reassembling of bogus packets.
Fixed bad audio quality on systems, where CPU is loaded significantly (more than 80%).
2010-05-13 Version 3.1.326
Recording Core (MiaRec.exe
version 3.0.543)
Added ability to limit port on which we expect Skinny packets. By default all packets are analyzed (decoded). Now it is possible to decode only packets on port 2000, for example. This is very useful if MiaRec receives a lot of TCP packets from mirroring interface, which are not Skinny (for example, HTTP, File Transfer etc). A decoding thread is overloaded and MiaRec crashes because watchdog expires. See configuration parameter "SignalingPort" inside section [Protocol::Skinny]
Added option '--older [days]' to BackupDaily.py script. With this option it it possible to backup, for example, all calls, which are older than 30 days.
Added option '--remore-calls' to BackupDaily.py script.
2010-05-07 Version 3.1.324
Recording Core (MiaRec.exe
version 3.0.542)
Disabled "TRACE" method inside default configuration of Apache as recommended b PCI compliance check tool: "Web Server HTTP Trace/Track Method Support Cross-Site Tracing Vulnerability"
"expose_php" set to "off" inside default PHP.ini file as recommended by PCI compliance check tools
Other modules:
Telnet CLI: Show statistics about dropped packets
2010-04-29 Version 3.1.322
Recording Core (MiaRec.exe
version 3.0.541)
Updated Apache to the latest version (2.2.15)
Updatd PHP to the latest version (5.3.2)
Improved support of Skinny protocol: sometimes Cisco Call Manager (CCM) restarts RTP stream unpredictable (usually it happens when call is answered and dialtone is replaced with real voice). That non-standard behavior caused a splitting a call through multiple files: one side of conversation is stored in one file and the other isde is stored in a separate file with empty caller-ids.
Improved support of TAPI protocol: some calls were recorded incorectly (with empty caller-ids).
Added UNICODE support for TAPI protocol (sometimes Cisco softphone sends name in UNICODE instead of ANSI).
2010-04-18 Version 3.1.318
Recording Core (MiaRec.exe
version 3.0.539)
Fixed memory leakage, which happens with very short calls (less than 1 second). Such calls were left in memory for relatively long period (30 minutes), which may cause performance degradation if the system records hundreds of concurrent calls.
2010-04-08 Version 3.1.316
Recording Core (MiaRec.exe
version 3.0.537)
Added support of Call Pick-Up feature. Call pick-up is a feature used in a telephone system that allows one to answer someone else’s telephone call. If a colleague's telephone is ringing, one can answer that call by picking up one’s own telephone and then using the “call pick-up” feature, instead of walking to the colleague’s desk. The "call pick-up" feature is accessed by pressing a preprogrammed button (usually labelled "Pick-Up"), or by pressing a special sequence of buttons (like *30) on the telephone set.
For example, the initial call was made from 555 to 1111. Phone 1111 is ringing, but nobody answers the call on that phone. Some other phone is used for "call pick-up". The one makes an outgoing call to *30 (or any other predefined sequence of buttons). This call appears on SIP protocol level as a call from 2222 (the phone, from which pickup is made) to *30. Then IP-PBX stops ringing the first phone (1111) and audio from 555 is connected to the second phone (2222). On SIP protocol level such call still appears as a call between 2222 and *30. Usually IP-PBX sends "Remote-Party-ID" header inside 200 OK response. This header contains information about the party, to which the second phone was connected actually. So, instead of *30 the phone can display 555 as a remote party number.
Added support of rewriting caller-ids (source and/or destination phone number) by using REGEX rules. Configuration is stored inside section [RewriteCallerId] (read comments inside MiaRec.ini file for details).
Web-interface
Optimized displaying of "Active calls only". The list of calls is sorted by setuptime instead of lastupdatetime
2010-04-06 Version 3.1.312
Recording Core (MiaRec.exe
version 3.0.533)
Added support of SIP Remote-Party-ID header Example of SIP INVITE message:
In this case the call will be stored as "7777 (John Smith) --> 5555" instead of expected "2222 (Sales Department) --> 5555". "Remote-Party-ID" header is used instead of "From" header.
Added "IgnoreRemotePartyId" configuration parameter to INI file
Web-interface
Columns "Time", "Disconnect Time" and "Caller Port" are sortable now
Fixed mistake in search parameters (Data From/To). When both "From" and "To" are set to the same date, then no calls were returned at all, but should return calls in 24 hours interval between 'From' and 'From + 24 hours'
2010-03-23 Version 3.1.309
Recording Core (MiaRec.exe
version 3.0.532)
Fixed crash of application, which may occur in some circumstances.
Improved support of Avaya protocol (Avaya 1608 D01A phone is supported now).
2010-03-08 Version 3.1.306
Recording Core (MiaRec.exe
version 3.0.529)
64-bit version of MiaRec is released, which increases performance on 64-bit OS and eliminates memory limit, which exists on 32-bit OS (maximum 2GB is available to 32-bit application).
Fixed issue with TAPI protocol. Some buggy endpoints (Cisco softphones) do not change RTP port and SyncId!!! between calls. This caused a voice from one call appears in another call record.
2010-01-28 Version 3.1.301
Recording Core (MiaRec.exe
version 3.0.525)
Added 'LowPriority' configuration option for Pure Rtp calls (section [Protocol::Rtp])
Other modules
New version of WinPcap (4.1.1) is included into MiaRec Business installer
2010-01-28 Version 3.1.301
Recording Core (MiaRec.exe
version 3.0.523)
Added support of TCP packets fragmentation, when a very large signaling packet (H.323, TAPI, Skinny, MGCP PRI Backhaul) is sent in multiple portions (two or more TCP packets) because TCP packet has by default maximum size 1514 bytes.
Added support of UDP packets fragmentsion (SIP protocol and other UDP based signaling protocols). Sometimes SIP INVITE message can be larger than a single UDP packet can hold (maximum 1514 bytes by default).
Fixed bug in MGCP protocol. MDCX message with incorrect call-id caused unexpected call disconnect of active call.
Added support of "Diversion" header in SIP protocol. This header exits in SIP INVITE message of the forwarded call. It contains a phone number, from which the call was forwarded from.
Added support of using 'transfer-to-number/transfer-to-name/transfer-to-id' and 'transfer-from-number/transfer-from-name/transfer-from-id' inside call recording filters
Added support of new version of Skinny protocol, which is used in Cisco Call Manager 7.1
2009-11-12 Version 3.1.297
Recording Core (MiaRec.exe
version 3.0.518)
Fixed serious problem with Ignored calls. If recording filters are configured to ignore some calls, then it in some circumstances call can be wrongly recorded with empty caller-ids or not recorded at all because it is wrongly detected as ignored call.
Fixed support of MGCP and MGCP PRI Backhaul protocols, which was broken in the previous version.
Added support of protocols priority, which is usefull when the same call appears in the system in many protocols, for example, call is received by Voice Gateway (VG). VG communicates with Cisco Call Manager (CCM) with H.323 protocol. At the same time CCM communicates with IP phones with Skinny protocol. So, there are two call legs: the first is between VG and CCM, the second is between CCM and IP Phone. Protocols priority allows to solve the issue, when call is recorded with public DNIS number instead of local extension number.
2009-11-04 Version 3.1.293
Recording Core (MiaRec.exe
version 3.0.514)
Increased performance and optimized memory usage.
Added workaround for buggy IP PBX systems, who use the same RTP port for multiple rtp streams at the same time. This caused incorrect recording of such calls: missing calls and crops in the recorded audio file. For these purposes new configuration parameter was added: 'RtpCompareBothSrcAndDstIp'
Fixed problem with audio shifting because of long silence (for example, call is put on hold)
Added workaround for Rtp pure calls, which are sent to gateway on the same RTP port. In this case multiple RTP streams are handled by single call instance (recorded into single audio file), but should be processed by multiple instances.
Added ability to disable resolving of phone's IP into NETBIOS/DNS name. By default is disabled now.
Added support of very large trace files (> 4GB)
Web-interface
Fixed error, which occurs when user tries to delete call. This error was introduced in previous version.
Repalced script "OptimizeDatabase.py" with "Pgsql\bin\vacuumdb.exe". This script is executed regularly on database (every night) and optimizes indexes and other data structures in order to make access to database faster.
Added script 'DeleteOldIgnoredCalls.py', which can be used to automatically delete from database calls, which are stored there because of option 'SaveCDRsForIgnoredCalls = 1'. This script is to be executed automatically at night and delete calls, which are older, let's say 30 days. This allows to decrease database size and thus make it faster for search operation. Usually storing of ignored calls inside database for a long period is not necessary. 'SaveCDRsForIgnoredCalls' is used usually only for testing call recording filters.
2009-10-03 Version 3.1.292
Web-interface
Added support of creating Notes on recorded calls. In this version only adminstrators can add/edit/delete notes. Regular users have no sufficient rights yet (will be added in one of the next versions).
2009-09-28 Version 3.1.290
Recording Core (MiaRec.exe
version 3.0.501)
Added support of recording very long calls (trader calls). The call is established once in the morning and disconnects only at the end of a day. During a day such call contains phases of "talk" and "silence". Old version was recording such call into a single very large audio file. New version is able to detect silence periods and splits audio on multiple small parts. Only "talk" periods are recorded. "Silence" is ignored and not stored on disk.
2009-09-24 Version 3.1.285
Recording Core (MiaRec.exe
version 3.0.500)
Added ability to, optionally, disable Automatic Gain Controller (AGC) and Packet Loss Cancealment (PLC) filters. See options 'UseAGC', 'AGCMaxGain' and 'UsePLC' inside MiaRec.ini file. Disabling of these filters can increase overall performance in the cost of audio quality.
MP3 bitrate and quality settings are configurable now. See options 'Mp3Bitrate' and 'Mp3Quality' inside MiaRec.ini file.
2009-09-22 Version 3.1.284
Recording Core (MiaRec.exe
version 3.0.499)
Added support of Packet8 phones. They have created own version of RTP
protocol.
Fixed rare deadlock in the application, which causes automatic
restart of the service (watchdog mechanism)
2009-09-17 Version 3.1.282
Recording Core (MiaRec.exe
version 3.0.496)
Added support of opening Network Interface Card (NIC) in non-promiscuous mode. Some Wi-Fi adapters doesn't support promiscuous mode and recording is possible only when such mode is disabled.
Added support of configuring Pcap kernel buffer size (see 'PcapKernelBuffer' inside MiaRec.ini)
2009-08-24 Version 3.1.275
Recording Core (MiaRec.exe
version 3.0.494)
Fixed problem with automatic creating of non-existing parent directories, when audio file is stored on network share (UNC path)
2009-08-18 Version 3.1.272
Recording Core (MiaRec.exe
version 3.0.491)
Improved processing of Skinny protocol. Sometimes Cisco Call Manager sends OpenReceiveChannel command to IP phone and then immediately CloseReceiveChannel and again OpenReceiveChannel. This causes a call recorded with empty caller-ids.
Fixed compatibility with Broadsoft IP PBX (SIP protocol). When Broadsoft receives INVITE from endpoint, which is behind NAT (SDP contains local ip-address, for example, 192.168.0.1), it starts sending RTP to this local ip. Such packets go to nowhere, but recorder sees them and starts recording. Sometimes it is only 10 packets, sometimes more than 100. Broadsoft continues sending such RTP packets till the moment, when at least one RTP is received from remote endpoint. In this case it can extract real ip-address and port of NAT server and start sending RTP to new address. This non-standard behavior caused call splitted on two files: one side of conversation is stored into one file and the other side is stored into separate file with empty caller-ids.
Fixed compatibility with Broadsoft IP PBX (SIP protocol), which sends RE-INVITE with the same CSeq as original INVITE (bug in Broadsoft?). This causes a problem with distinguishing of responses between INVITE and RE-INVITE.
SIP Protocol: fixed bug with call scenario, when INVITE has no SDP, but ACK has SDP.
Web-interface
Fixed incorrect displaying of date/time, when customer has timezone with
half hour, like -4:30 (Caracas)
2009-07-24 Version 3.1.270
Recording Core (MiaRec.exe
version 3.0.488)
By default audio files are encoded into MP3 rather than WAV. MP3 encoding routines were optimized significantly in recent versions and now hunreds of calls can be encoded simultaneously.
Added new configuration parameters: 'RtpHoldTimeout', 'SaveCDRsForIgnoredCalls', 'RtpFastAccessListAddTimeout'
Increased default value of 'MinCosecutiveRtpMaskMatch' to 100. Old value (50) is not enough.
SQL ConnectQuery modifies recordstate column now
Display "Protocol CallId" in web-interface
Improved processing of Avaya protocol: some calls were recorded with empty caller-ids
Fixed bug in processing of MGCP protocol: some calls were recorded with empty extension number.
Improved recording algorithms for situtation, when first RTP packet is received before signaling packet (SIP, H.323 etc). This may happen because RTP is sent over UDP, while signaling may be sent over TCP, which is slower than UDP.
Improved recording algorithms for situation, when IP PBX starts sending new RTP stream (with newly generated sync id) even if SDP parameters were not changed. This situation caused splitting audio onto two files. First files contained one side of conversation, while other side is stored into separate file.
Web-interface
Added support of displaying Ignored calls in web-interface
(configuration option 'SaveCDRsForIgnoredCalls' should be set to 1)
2009-06-26 Version 3.1.263
Recording Core (MiaRec.exe
version 3.0.479)
Added configuration parameter 'AudioBufferSize' to MiaRec.ini file.
Optimized algorithms for processing of Avaya protocol: less memory usage, higher performance under high load.
Fixed memory leakage
Fixed rare crashes during processing of some UNISTIM packets
Fixed issue in RTP stack, which may cause recording of excessive silence periods into audio file.
Web-interface
Fixed bug with inability to play audio file, if its callstate is not 6 (normal disconnect), but for example, 7 (hold) or 8 (transferred)
Other modules
Changes inside Python script "MyConfigParser.py": print warning instead of throwing exception, when MiaRec.ini file has incorrect syntax (for example, because of mistyping made by user)
Telnet CLI: added command 'show pcap stat'
2009-06-18 Version 3.1.259
Recording Core (MiaRec.exe
version 3.0.473)
Added configuration parameters for different timeout into MiaRec.ini (RtpStartTimeout, RtpNormalTimeout, RtpEndTimeout)
Fixed memory leakage because some of calls are never disconnected.
Added workaround for Aastra PBX, which has bug in RTP stack: it sends all packets with SSRC equal to 0. If a duration between consecutive calls is less then 5 seconds, then voice will be recorded into incorrect file.
Default value for configuration parameter "MinCosecutiveRtpMaskMatch" is increased from 10 to 50. Empiric tests show that MIN_CONSECUTIVE_MASK_MATCHES = 10 is too low. It should be at least 50, otherwise on some systems it may produce one-way call without call signaling (pure RTP). When Cisco receives incoming call from the phone behind NAT, It tries first to send RTP packets to IP address and port, which is provided inside INVITE SDP. This IP and port may be local and not reachable from public network. After sending about 20-30 packets, CCM sends own SDP to the phone. The phone starts sending own RTP to CCM and this opens NAT hole on the router. CCM detects this incoming traffic and starts sending own packets in reverse direction. So, for a single call it may be three (3) unique rtp streams instead of normal two streams.
Fixed rare deadlock in the program, which causes automatic restart of the service (watchdog mechanism).
Other
modules
Telnet CLI: trace configuration is reloaded upon command "config reload".
Web-interface
Fixed incorrect display of partially recorded files.
2009-05-30 Version 3.1.251
Recording Core (MiaRec.exe
version 3.0.460)
Added support of SQLite database engine. CDRs can be stored inside this database.
Added support of Cisco MGCP PRI Backhaul protocol, which is used very often between Voice Gateway and Cisco Call Manager.
2009-05-27 Version 3.1.250
Recording Core (MiaRec.exe
version 3.0.458)
Fixed crash with SIP and MGCP protocols, when response is parsed with invalid status code.
Fixed crash caused by some packets in UNISTIM protocol.
Other
modules
Added "FixDisconnectTime.py" script, which is to be run periodically (every night, for example). And it will fix disconnected time for all calls which were not completed normally (because of application crash).
2009-05-22 Version 3.1.246
Recording Core (MiaRec.exe
version 3.0.454)
Fixed compatibility with Polycom phones (SIP protocol). Sometimes they can send CANCEL after 200 OK is received. In this case CANCEL should be ignored according to RFC (The CANCEL request, as the name implies, is used to cancel a previous request sent by a client. Specifically, it asks the UAS to cease processing the request and to generate an error response to that request. CANCEL has no effect on a request to which a UAS has already given a final response).
2009-05-19 Version 3.1.244
Other
modules (MiaRec.exe
version 3.0.451)
Added Telnet command "config reload", which reloads configuration
without necessity to restart service.
Added SOAP interface (integration with third-party applications). It allows to add/edit/delete recording filters and reload configuration through SOAP interface.
Ports for Telnet, LiveMonitoring and SOAP interface are configurable now through INI file.
2009-05-05 Version 3.1.243
Recording Core (MiaRec.exe
version 3.0.446)
Fixed rare deadlock inside the program, which caused automatic
restart of the service (watchdog mechanism).
Fixed memory leakage, which happens with Skinny packtets, which contains multiple messages inside single TCP packet.
Fixed rare crash in H.323 protocol, which is caused by corrupted packet.
2009-04-30 Version 3.1.241
Recording Core (MiaRec.exe
version 3.0.444)
Fixed rare deadlock inside the program, which caused automatic restart of the service (watchdog mechanism).
Other
modules
Telnet CLI: correct processing of "Left Arrow" and "Right Arrow" keys
2009-04-26 Version 3.1.240
Recording Core (MiaRec.exe
version 3.0.439)
Live Monitoring: changed "rtsp://" link to "live://" to prevent conflict with other programs, which may be installed on user's computer and which attached themselves to "rtsp://" link.
Live Monitoring: dynamically decrease RTP jitter buffer size when live monitoring is used on the call. This decreases significantly audio latency.
2009-04-24 Version 3.1.239
Recording Core (MiaRec.exe
version 3.0.438)
Improved processing of Skinny protocol: some "buggy" Cisco IP phones send RTP packets with comfort noise and sync is = 0 (this is not standard behavior). This issue caused splitting of call on two parts: one side of conversation is recorded into one file, while other side is recorded into separate file with empty caller-ids.
Fixed random crashes, which are caused by deadlock in the program
Fixed issue with creating incorrect filenames, like "D:\Recordings\D:\Recordings\call.wav", which occurs when both configuration parameters "OutputDirectory" and "FileNameFormat" have absolute paths.
Optimized MP3 encoding algorithms
2009-04-16 Version 3.1.237
Recording Core (MiaRec.exe
version 3.0.432)
Improved processing of Avaya protocol: some calls are detected with empty caller-id because of Avaya has changed own protocol.
Fixed problem with recording calls on high load servers: some calls were recorded with empty caller-ids or audio from one call appeared inside file of another call.
Fixed rare crash on Skinny protocol, when single Skinny packet contains multiple messages belong to different calls (like "DisconnectCall A" and immediately "ConnectCall B").
Improved processing of Skinny protocol: if signaling message (OpenReceiveChannel) is lost or delayed, then call was recorded into two files: one side of conversation was stored in one file and the other side was stored in another file with empty caller-ids.
Other modules
Added support of Live Monitoring: it is possible to listen to an active call in realtime with very low latency (about 200ms)
Web Interface
Access rights permissions (extensions) can be matched to "number" (default), "name" or both fields (configurable via config.php)
2009-04-03 Version 3.1.235
Recording Core (MiaRec.exe
version 3.0.423)
Improved processing of H.323 and Skinny protocols: ignore duplicating packets, which may occur when port mirroring is configure on multiple ports.
Fixed issue with memory leakage, which happens with very short calls.
2009-04-02 Version 3.1.234
Recording Core (MiaRec.exe version 3.0.421)
Fixed processing of RE-INVITE with Packet8 phones. This error caused that only first 2 minutes of a call was recorded.
Web Interface
Fixed incorrect displaying "Partial record (license limit)" on good calls. This problem happened only betwen version 3.1.226 (released on 2009-03-16) and this one.
2009-04-01 Version 3.1.232
Recording Core (MiaRec.exe version 3.0.420)
Added support of protocol configuration (enable/disable, ports). This allows to switch off parsing of particular protocol, like SIP, H.323, Skinny, MGCP and others.
2009-03-30 Version 3.1.230
Other modules
Added script DeleteOldCall.py, which can be used for automatic deleting of old calls (older than 30, 60 or any other number of days).