Installation checklist

This article contains a checklist for MiaRec installation process.

Install MiaRec on compatible server

Configure port mirroring on the switch

Configure firewall on the server

Activate HASP USB dongle

Configure recording filters (optional)

Configure e-mail notification (optional)

Create users for web access (optional)

Install Live Player on supervisor's computer (optional)

Activate HASP dongle

The purchased licenses are stored inside the memory of a HASP USB dongle (key).

It is necessary to activate the dongle before the first usage as initially it is shipped to our customers with an empty memory (no licenses inside).

Step by step instructions:

1) Download and install HASP drivers

2) Download HaspActivate utility and save on your computer

3) Start HaspActivate utility. You should see a window like on below screenshot


4) Connect HASP USB dongle to the computer. Wait a few seconds while Windows detects the new hardware and then you should see inside HaspActivate utility that the key is "ready for saving memory to file".


5) Save memory of the dongle into a file (press "Save..." button and chose a destination folder for saving the file).

6) Send the saved file to us by e-mail ( As soon as we receive a file, we prepare a new firmware for your dongle and send you by e-mail.

7) When you receive a new firmware, use Hasp Activate utility for writing the firmware to the dongle's memory. Click on "Second step" tab inside utility and the dongle to computer. You should see message "Ready to update memory"


8) Click on "Update..." button and select the file, which you received from us.

9) When update is completed, in the bottom of HaspActivate utility you should see a licenses, which were written to the dongle:


Now activation is completed and you can start using MiaRec in full mode.

Note: HaspActivate utility doesn't work inside Remote Desktop Session (RDP). If you are connected to the server via RDP, then you may receive error "The HASP HL license you requested to update has not been found" in the step 9.

In this case you need to do one of the following:

  • Connect to the server manually and repeat steps 8-9
  • Connect to the server via VNC remote control software and repeat steps 8-9
  • Plug the dongle to another computer, to which you have a direct access. For example, a laptop with Windows XP, Vista, 7, 2003 or 2008. Then repeat steps 7-9 on that computer. When the dongle is activated, you can safely connect it back to the server.

Frequently asked questions

Will you send me new dongle when I purchase more licenses?
No. We will send you updated firmware for the dongle. See next question for details.
How to add more licenses to the dongle?
You need to repeat steps 2-9. You will receive new firmware by e-mail.
How to move licenses to another server?
It is easy. Install MiaRec and HASP drivers on new server and connect the dongle to it.
MiaRec will detect the dongle automatically and read licenses from its memory.
You do not need to activate the dongle again.
Do I need to change something inside MiaRec configuration after I connect the dongle?
No. MiaRec will detect the dongle automatically and read licenses from its memory.
I tested MiaRec with a trial license code. Do I need to remove that code from MiaRec.ini file?
No. It is not necessary. When you connect HASP dongle to the server, MiaRec will read licenses from it.

Configuring users

MiaRec protects an access to calls with login and password. An administrator can create an unlimited number of user accounts. And each user account may have unique access permissions. 

In this article we will show how to create users with specific access permissions.

We will do the following:

  • Create user's group with name "Users"
  • Create account with name "John Smith" and login "john.smith"
  • This user will be able to see only calls with phone number (extension) "201". All other calls will be hidden from him.
  • This user will be able to playback calls, but cannot delete them or move to other folder.

In order to create a new user, login to MiaRec and click on "Settings" tab in the left bottom corner.

MiaRec Settings

Now you can create a separate group for users or use one of the existing groups.

Click on "Add" button inside "Groups" list.

Add Group

We create group with name "Users". Inside tab "View calls" select "None" (this means that all users inside this group will not be able to view calls by default). 

Add Group

Save group.

Then select the newly created group and click on button "Add" inside "Users" list:

Add user

Enter user's name and login/password.

Then check "Override access permissions of Group".

Add user

Select "View calls" tab and select "List of ..." and "... extensions".

Then click on "Add" button inside "Extensions list" on the right side.

View calls

Enter extension (phone number), calls for which will be visible to that user. For example, we enter extension "201".

Enter extension

Click on "Operations with calls" tab. And check "All visible" for "Playback":

Operations with calls

Save this user.

Now you can login with newly created login/password.

History of changes

2014-08-19 Version 3.1.484

Recording engine

  • Fixed occassional crash of application, which was introduced in version 3.1.475.
  • [SIP protocol] Fix of processing Remote-Party-ID in UPDATE message for outgoing call scenario. This issue caused both caller and called numbers to have the same value.
  • Added support of Windows Performance Counters. Many performance metrics are available in Perfmon for MiaRec application, like current active calls, peak active calls, calls per second etc. It requires Vista/2008 or newer operating system.
  • Significantly improved performance of recording engine under high load (200+ concurrent calls) for Cisco Active Recording method.

2014-07-24 Version 3.1.481

Recording engine

  • [SIP protocol] Added support of handling Remote-Party-ID in UPDATE message. On some incoming call scenarios Cisco UCM may send INVITE with incorrect caller number. Then CUCM sends UPDATE message with correct number in Remote-Party-ID header

2014-07-23 Version 3.1.480

Recording engine

  • [Cisco active recording, Built-in-Bridge] Added support of Cisco Built-in-Bridge recording method. Configuration is available in section [Protocol::CiscoBiB] in MiaRec.ini file

2014-07-21 Version 3.1.475

Recording engine

  • [SIP protocol] Added support of handling P-Asserted-Identification. This allows to record correctly Call Pickup scenarios, when user dials a feature code like *33 to pickup the incoming call
  • Fixed issue in call scenarios, when codec sample rate changes in a middle of a call. For example, when call is established with G.722 wideband 16KHz codec and then it is changed to G.711 narrowband. As a result the audio file was recorded with distorted voice.

2014-07-14 Version 3.1.473

Web interface

  • Fixed Recording Rule edit dialog. The Unsorted folder was not selected automatically.
  • Fixed issue with using mask symbols (_ and %) in recording rules. The issue is caused by changes in PostgreSQL database engine from version 8.x to 9.x. Update of PostgreSQL engine was made on 2014-06-20

2014-07-02 Version 3.1.463

Web interface

  • Replaced Windows Media Player plugin with HTML5 Audio Player, which is supported by all modern web-browsers. On older web-browsers a Flash or Silverlight plugin is used. This change allows to playback call recordings on any web-browser (IE, Chrome, Firefox, Safari) and even on any platform (Windows, Mac, Linux, iOS, Android).
  • Fixed issue with editing of Recording rules. The folder was not pre-selected.
  • Recording rules are displayed ordered ("not recording" rules first).
  • Recording rules are loaded to MiaRec in particular order ("not recording" rules first)
  • Fixed link "Live monitoring" for Callee Party

Recording core

  • Changed order in which recording filters are processed from INI file and Database. Now the filters from INI file are checked first, then filters (recording rules) from database, and then default_action from INI file.

2014-06-20 Version 3.1.457

Recording core + Web interface

  • Added support of configuring recording filters inside Web interface
  • Added support of live monitoring in distributed environment with a single web portal and multiple remote recorders
  • Added support of live monitoring of consecutive calls of particular user without restart of Live Player application
  • Display call details of monitored call inside Live Player application


  • Updated PostreSQL database engine to version

2014-04-09 Version 3.1.445

Recording core

  • [Broadsoft SIPREC interface] Fixed issue: 200 OK response from MiaRec was sent to the same port, on which the original INVITE message was received, but BroadWorks system expects to receive response on port as specified in "send-by" of Via header. New configuration parameter:
    SendRespToSrcPort = [yes | no]

2014-04-08 Version 3.1.443

Web interface

  • Significant improvement of display/search calls on high volumes (millions of records). Changes:
    • Paging: show only Next/Prev buttons. Do not show total number of calls as this requires execution of very expensive database command "SELECT COUNT(*)".
    • Disabled sorting on all columns except: setuptime, callid, agentid. Reason: only the mentioned columns have database indexes, which speed-up search process. When sorting calls by other columns, the indexes were not utilized and database was forced to scan all existing records from disk

2014-02-19 Version 3.1.440

Recording core

  • Added support of changing codec sample rate on the flight. For example, when call is established with 8000Hz sample rate (codec G.711) and then in a middle of a call the codec is re-negotiated to 16000Hz sample rate (G.722). This happens with Cisco UCM phone system in the following scenario:
    • User dials extension of other user in the same network (a call will be established between two Cisco IP phones)
    • Call is established and user hears welcome message like "All calls will be recorded for quality assurance purposes" (G.711 codec)
    • Then the call is transferred.
    • Call is established between two users with G.722 codec.
  • Added support of live monitoring of calls, which utilize wide-band codecs (G.722). Audio is automatically resampled to 8KHz.


  • Password for MiaRecUser is randomly generated during installation for security purposes. Additionally password length is increased to 32 characters to comply with security policies at some sites.

2014-02-17 Version 3.1.439

Recording core

2013-12-18 Version 3.1.437

Recording core (MiaRec.exe version 3.0.662)

  • Added integration with Broadsoft SIPREC interface. Configuration is available through MiaRec.ini file, section [Protocol::SIPREC]
  • Added support of non-ANSI character encoding for Cisco Skinny protocol. Normally string values are encoded with UTF-8, which was supported in old version of MiaRec. But with some CUCM versions the string values inside Skinny packet may be encoded with "iso-8859-2" or any other character encoding set. This caused "empty caller-id" issue.
    Configuration parameter "CharacterEncoding" was added to MiaRec.ini file inside section [Protocol::Skinny].
  • Workaround for call scenarios when Cisco IP Phone changes RTP SyncId in a middle of call. This caused "one-way audio" issue. In old version it was required to manually adjust parameter "IgnoreRtpSyncInfoChange" according to behavior of IP Phones. In new version it is automatically adjusted.
  • Fixed processing of SIP re-INVITE message for phones behind NAT/DMZ. This caused "one-way audio" issue.
  • Decreased delay of reading license from HASP USB dongle, when the latter is connected while MiaRec service is running.


  • Change default settings. Audio format is "mono" now and "AGC" is disabled. This can be changed through MiaRec.ini file
  • It is possible to disable Voip Passive Recording modules and keep only active recording (for example, Broadsoft SIPREC). Parameter "Listen" should be set to "-1" inside MiaRec.ini file.
  • Link "Download file" can be hidden from web-interface. Parameter "hide_download_link" should be modified inside "config.php" file.

2013-06-18 Version 3.1.429

Recording core (MiaRec.exe version 3.0.646)

  • Improvements in a workaround for a bug in Cisco phones firmware. Cisco CCM sends CallInfo msg formatted as CCM7+, but version header field contains version CCM 5. Now MiaRec analyzes CallInfo message content and automatically fixes version of the packet. There is no need in option 'ForceVersion' anymore (see log for previous version).

2013-06-16 Version 3.1.428

Recording core (MiaRec.exe version 3.0.645)

  • Added option 'ForceVersion' in section [Protocol::Skinny]. This is a workaround for a bug in Cisco phones firmware. Sometimes CCM sends CallInfo packet formatted as version CCM 8.x, but Skinny packet contains "version" field set to 0 (basic version). This causes incorrect parsing of caller/called phone number and names because Cisco has changed format of CallInfo packet. This occurred with CCM 8 and Cisco wireless phone 7921. 


  • Added script. This script synchronizes web settings between two instances of MiaRec (primary and redundancy). When this script is run (on schedule basis), the changes in web settings (users' login/password, access permissions, auto-sort into folders ruls) are automatically populated to the second server (redundancy).
  • Fixed script
  • Fixed incorrect handling of time savings in Scheduler and trace/log rotation functions (which appeared in MiaRec releases since 2012/03/28. Because of this bug a log file was rotated indefinitely during one hour period. For example, log file rotation is scheduled every sunday at 4:00am. But it was executed in loop between 4:00 and 5:00.

2013-05-08 Version 3.1.418


  • Fixed issue in Backup script. The sub-folder was not created when in non-interactive mode.
  • Fixed and scripts as they were not working due to update in Backup script some time ago.
  • Replaced default "demo/demo" account with "admin/admin"

2013-04-18 Version 3.1.417

Recording core (MiaRec.exe version 3.0.639)

  • Added support of Muting recording (PCI Compliance). Third-party application can initiate mute/unmute recording on particular extension via Web-services SOAP API

Web-services SOAP API

  • Added functions 'muteRecording' and 'unmuteRecording'.
  • Renamed [SOAP] to [API::SOAP].
  • Added support of authorization (by login/password) and permissions for API. For example, it is possible to limit from which ip-address API client can connect, what operations it can perform, which phones it can control/monitor etc. See details in MiaRec.ini file in section [API::User::user1]
  • IpAddress for default API user (when LoginRequired=no) is limited to for security reasons
  • Web-services API supports higher number of clients. Requests from multiple clients are processed simultaneously.
  • Improved SOAP logging. Ip-address is put into log filename
  • Improved PTRACE for SOAP (write client ip-address inside messages)
  • Dynamically replace service URL inside returned WSDL file. Old version always returned http://localhost:6084
    New version puts correct ip-address and port on which SOAP is listening.

2013-04-15 Version 3.1.416


  • Fixed Chrome25 bug with rendering of date picker (it was rendered with 100% width)
  • Calls per page is fixed to values 5, 10, 20, 50, 100, 200, 500, 1000 rather than dynamic list
  • Fixed rare issue with web-interface when different elements were rendered with incorrect dimensions or position.

2013-04-10 Version 3.1.414

Recording core (MiaRec.exe version 3.0.634)

  • Fixed issue with correct handling of duplicating packets (when two ports are mirrored on a network switch and the packets comes through both ports). Byte-to-byte comparison doesn't work because network switch may modify IP headers (QoS) for the out packet. It caused one-way audio issue for some Skinny call scenarios: When call is put on hold and the second "consultative" call is made from the same phone.

2013-04-08 Version 3.1.413


  • Updated WinPCap version to 4.1.3 (compatible with Windows 8 and Server 2012).

2013-04-06 Version 3.1.412

Recording core (MiaRec.exe version 3.0.633)

  • Continue of fix with SIP TCP packets reassembling (see previous version).

2013-04-04 Version 3.1.411

Recording core (MiaRec.exe version 3.0.632)

  • Fixed issue with SIP TCP packets reassembling. Large packets were not reassembled and only first portion was parsed. This may cause empty caller-ids issue.

2013-03-07 Version 3.1.409

Recording core (MiaRec.exe version 3.0.631)

  • Substitute automatically "%23" with "#" inside SIP phone number
  • Added support of PCap BPF filter (option "PcapFilter" inside MiaRec.ini file), which allows filtering of network packets on a network driver level. This is useful in two cases: 
    • complex call scenarios
    • high traffic on mirroring interface (50+ Mbps), which is necessary to ignore
  • Fixed crash of application, which occurs in some rare call scenarios under high load (500+ concurrent calls)


  • Updated Apache to latest version 2.2.22 and PHP to version 5.3.22
  • Fixed length of value "protocol-callid". It was truncated to 32 bytes in StartQuery SQL
  • Refactoring of Backup/Restore scrips (cleaner code, add Spinner, CDR only backup/restore)
  • Increased AJAX timeout to 240 seconds which fixes "Transaction aborted" error when loading calls from database with millions of records.
  • Added script file for exporting call details into Excel file

2012-08-27 Version 3.1.406

Recording core (MiaRec.exe version 3.0.628)

  • Fixed one-way audio issue for some particular call scenarios on Talkswitch IP PBX

2012-07-13 Version 3.1.405

Recording core (MiaRec.exe version 3.0.627)

  • Fixed crash of application, which occurs during parse of corrupted SIP packets
  • Fixed crash of application, which occurs when received IP packet has bogus data (UDP header contains data length, which is less than UDP header length).
  • Removed limitations for MinConsecutiveRtpMaskMatch and MinConsecutiveRtpSyncIdMatch. They were minimum 5 and maximum 500 packets. Now there are no limits. Default value is set to 10000. This is necessary for some buggy IP PBX systems, which continue to send RTP packets to old port after re-INVITE is received with new port in SDP. This causes "one-way audio" issue.
  • Fixed "one-way audio" issue in Cisco Skinny protocol. Some Cisco UC5XX models may send CloseReceiveChannel immediately after OpenReceiveChannel. Then they send new OpenReceiveChannel message. IP Phone doesn't have even time for response with acknowledge to the first request (OpenReceiveChannelAck). Acknowledge to the first request is received after CloseReceiveChannel message.
  • Added support of TCP reassembling. This fixes issue with empty caller-ids for some SIP calls. When SIP is sent over TCP protocol and the receiving party has too small TCP window size value, then the message is sent over multiple TCP fragments.

2012-03-30 Version 3.1.404

Recording core (MiaRec.exe version 3.0.623)

  • Fixed "one-way audio" issue in SIP protocol for scenario when INVITE message is not responded (for example, because of called party is off-line). In this case CANCEL message is not sent. The caller party may re-use the same RTP port for next calls.


  • Fixed automatic update of database from old versions
  • Added new scripts and

2011-10-07 Version 3.1.398

Recording core (MiaRec.exe version 3.0.621)

  • New method of Avaya call recording. MiaRec tightly integrates with Avaya via TSAPI interface. More details: Avaya Communication Manager Call Recording via TSAPI
  • 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.


  • 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.


  • 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


  • 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:
    Also, IgnoreRtpPortChange should be set to "yes" inside MiaRec.ini file:


  • 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


  • Added closing button on "Auto-sort calls into folders" tab


  • Python scripts supports reading of settings from MiaRec.ini file, which is saved in UNICODE format

2011-05-04 Version 3.1.376


  • Updated Python scripts according to recent changes in database structure

2011-05-03 Version 3.1.375


  • 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


  • 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 but send a response from another NIC (with ip
    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):
    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 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.

        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):
      Instead of:

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.


  • 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 script.
    With this option it it possible to backup, for example, all calls, which are older than 30 days.
  • Added option '--remore-calls' to 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).


  • 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:

        INVITE SIP/2.0
        From: "Sales Department" <>;tag=5BB58307-10EC6E72
        To: <>
        Remote-Party-ID: "John Smith" <>;party=calling;

    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


  • 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)


  • Fixed error, which occurs when user tries to delete call. This error was introduced in previous version.
  • Repalced script "" 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 '', 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


  • 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,, 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.


  • 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.


  • 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.


  • 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 "": 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".


  • 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 "" 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, which can be used for automatic deleting of old calls (older than 30, 60 or any other number of days).
  • Fixed mistake inside script


SaveCDRsForIgnoredCalls parameter inside MiaRec.ini configuration file specifies if ignored calls are visible inside MiaRec.

Normally, when calls are ignored by recording filters, they are not visible inside MiaRec.

But, when parameter SaveCDRsForIgnoredCalls is set to 1, the ignored calls appear inside MiaRec together with normal calls. Such calls are marked with a special icon and message "Ignored by filters (no audio is recorded)" as shown on below screenshot:

Ignored by filters

This option may be very useful during testing of recording filters. You can see inside MiaRec, which calls are recorded and which are ignored.

Upgrade from v3 to v5+

Upgrade from MiaRec version 3.x consists of the following steps:

  1. Backup recordings on version 3.x

  2. [Optional] Stop all MiaRec services and backup full directory C:\Program Files\MiaRec Business

  3. Uninstall version 3.x

  4. Install MiaRec version 5.x (download from here)

  5. Import recordings from backup

  6. Create users/groups/roles

  7. Assign previously recorded calls to users

Supported data migration during upgrade

During upgrade the following data will be migrated from old version to new one:

  • Call recordings

  • Folders (they will be migrated to "categories").

Non-supported data migration during upgrade

Data, which is not migrated from old version to new one:

  • Users configuration. Due to significant changes in users access right system, the user accounts are not migrated from old version. It is necessary to re-create users manually in new version.

  • Auto-sort into folders rules. We are working on similar functionality for auto categorizing calls. But, probably, you do not need such auto-sorting anymore. In old version the folders were used primarily for grouping calls by users. Our customers created a dedicated folder for each user. In new version this is not necessary anymore because MiaRec automatically sorts calls by users and provides search "by user" capability out-of-box.

Incompatibilities between v.5 and v.3

New version of MiaRec includes a lot of new features and improvements in usability and user experience. Below we will list only significant incompatibilities between new and old versions:

  • New role-based permission system (more intuitive and flexible)

  • "Folders" were replaced with more flexible "Categories" (one call may be marked with multiple categories simultaneously).

  • "Recording rules" are configured on per-user basis. Previously the recording rules were configured separately from user's configuration.

Location for audio files

Note: Starting from version 5.0 a configuration of audio file location is implemented via web-portal. Web-portal settings override MiaRec.ini settings.

Location of audio files is configured inside MiaRec.ini configuration file (see option FileNameFormat inside section [Recording]).



In above example audio files are stored inside directory C:\Recordings\.

Note: A default location of audio files can be overriden inside recording filters.

As you probably noticed, file path contains special parameters, like %{setup-time#%Y%m%d}.This is very powerful way of configuring audio files location. These parameters are described in details in article "File name format".