MiaRec v.3 (old) documentation

This is a documentation for old version of MiaRec (v.3), which was discontinued in November 2014.

The documentation for the latest version of MiaRec (v.5) is available here.

FAQ

Is this software or hardware?

MiaRec is a software-based solution. This allows it to be considerably less expensive than hardware-based analogs (appliances). You can install MiaRec on existing server or purchase a dedicated server, which will be used for call recording purposes.

Save audio files on a network drive

By default MiaRec stores recorded calls on a local disk inside directory C:\Program Files\MiaRec Business\Data\Recordings.

This article explains how to store calls on a network (UNC) path, like \\some-server\recordings.

MiaRec is running as a service application. Windows OS applies some limitations to service applications: by default UNC paths are not accessible from a service.

In order to access UNC paths from a service, you need to have the Windows Domain Controller on on a nework.

Both MiaRec and Storage servers should be members of the same domain.

Configuration of network storage server

MiaRec server should have sufficient access rights to the Storage server.

You need to share some folder on the Storage server and grant write pemissions to MiaRec server on that folder.

Step 1. Create a folder on Storage server, for example C:\Recordings and open properties of it.

Select 'Share this folder' and enter desired name into 'Share name' input box (or use a default one).

See below screenshot as an example.

Share this folder

Step 2. Click on Permission button.

You will see a new dialog "Rermissions for Recordings":

Permissions for ...

Step 3. You need to add the computer, where MiaRec is running, to the permissions list and grant full access rights to that computer.

Click on Add button (see step 2) and new dialog "Select Users, Computers, or Groups" will be opened:

Select Users...

Step 4. Click on Object Types button and make sure that Computers entry is checked:

Object Types

Step 5. Click OK and go back to "Select Users, Computers, or Groups" dialog. Type MiaRec computer's name into corresponding field:

Enter Object Name...

In our example MiaRec is installed on a computer name with NETBIOS name WIN2K3-SERVER.

Click OK inside that dialog and you will return to "Permissions for Recordings" dialog.

Step 6. Grant "Full Control" permissions to the newly added computer:

Grant Permissions

Configuration of the Storage server is completed.

Configuration of MiaRec server

Open MiaRec.ini file (by default located in C:\Program Files\MiaRec Business\Bin).

Find there following line:

FileNameFormat=C:\Program Files\MiaRec Business\Data\Recordings\%{setup-time#%Y%m%d}\%{setup-time#%Y%m%d%H%M%S}.mp3

And replace it with UNC path, for example:

FileNameFormat = \\my-storage-server\Recordings\%{setup-time#%Y%m%d}\%{setup-time#%Y%m%d%H%M%S}.mp3

In our example, my-stogate-server is a NETBIOS name of the Storage server.

\\my-storage-server\Recordings is UNC path to the folder, which was shared in previous steps.

Save MiaRec.ini file and restart MiaRec service.

Now MiaRec should save calls on a network path.

Note: If your recording filters have "filename" line, then you need to edit them also:

[Filters::OnCallStart]

filter1 action = record
filter1 condition = caller-ip = '192.168.0.0/24' OR callee-ip = '192.168.0.0/24'
filter1 filename = \\my-storage-server\Recordings1\%{setup-time#%Y%m%d%H%M%S}.mp3

filter2 action = record
filter2 condition = caller-ip = '192.168.1.0/24' OR callee-ip = '192.168.1.0/24'
filter2 filename = \\my-storage-server\Recordings2\%{setup-time#%Y%m%d%H%M%S}.mp3

default_action = ignore

Supported VoIP protocols

MiaRec is compatible with all IP PBX systems, supporting the following protocols:

  • H.323
  • SIP
  • Cisco Skinny (SCCP)
  • MGCP
  • MGCP PRI Backhaul

Other proprietary protocols also may be supported, if audio is sent inside RTP packets. In this case, caller-id information (phone number) will be not available and each call will be stored only with date/time and IP-address or MAC address of caller and called parties.

Please, feel free to contact us to find out if your IP PBX is supported.

Supported operating systems

MiaRec supports the following operating systems:

  • Windows 2003
  • Windows 2008
  • Windows 2012
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Linux RedHat/Centos

Both 32 and 64-bit versions are supported.

What equipment do I need?

MiaRec requires following equipment:

MiaRec doesn't require any other proprietary hardware.

Installation

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

HaspActivate

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

HaspActivate

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 (sales@miarec.com). 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"

HaspActivate

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:

HaspActivate

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

Database

  • Updated PostreSQL database engine to version 9.3.4.4

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:
    [Protocol::SIPREC] 
    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.

Other

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

Other

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

Other

  • Added SyncWebSettings.py 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 BackupDaily.py 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

Other

  • Fixed issue in Backup script. The sub-folder was not created when in non-interactive mode.
  • Fixed DeleteOldCalls.py and DeleteOldIgnoredCalls.py 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 127.0.0.1 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

Web-interface

  • 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

Other

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

Other

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

Other

  • Fixed automatic update of database from old versions
  • Added new scripts ImportCallsFromCSV.py and ImportFromSolo.py

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.

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:

        INVITE sip:5555@example.com:5060 SIP/2.0
        From: "Sales Department" <sip:2222@example.com>;tag=5BB58307-10EC6E72
        To: <sip:5555@example.com>
        Remote-Party-ID: "John Smith" <sip:7777@example.com>;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

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).
  • Fixed mistake inside script Restore.py

SaveCDRsForIgnoredCalls

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]).

Example:

[Recording]
FileNameFormat=C:\Recordings\%{setup-time#%Y%m%d}\%{setup-time#%Y-%m-%d-%H%M%S}.mp3

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

Backup/restore calls

Backup calls

To start backup manually, you need to execute Backup.cmd (located in C:\Program Files\MiaRec Business\Bin\Scripts).

Backup calls

You will be asked 6 simple questions:

  1. Enter folder to backup. Leave empty to backup all folders

    Folders are the ones, which you see on the left side in web interface. If you need to backup all files, then press Enter without typing anything. Otherwise you can type a name of folder, which you want to backup.

  2. Enter Directory for storing backup files

    You will need to enter a destination, where backup of call recording files will be stored. For example, type F:\MyBackup if you want to store it on disk F.

  3. Enter lower date limit in format YYYY/MM/DD or leave empty to set no limit. Only calls occured after this date will be backed up

    You can limit a period for which backup is created (for example, backup of calls for last 30 days). If you need to backup all calls, then press Enter without typing anything.

  4. Enter upper date limit in format YYYY/MM/DD or leave empty to set no limit. Only calls occured before this date will be backed up

    See question 3.

  5. Create sub-directory with name YYYY-MM-DD-HHMMSS (y or n)?

    Optinally backup can be stored inside sub-folder, with name YYYY-MM-DD-HHMMSS, for example, F:\MyBackup\2009-01-05-134556.

    If you type "n", then backup will be stored directly inside directory, which you entered in quetion 2 (F:\MyBackup). If this directory contains already a previous backup, then new calls will be added to backup (the previous files will not be lost).

  6. Remove CDRs and MP3 files after successfull backup (y or n)?

    Type ‘n’ here to create a backup copy of calls.

    If you type ‘y’ then all backed up calls will be deleted from MiaRec after successful backup.

After you answer the 6th question, the backup process will begin. It may take some time depending on how many calls you have on the system.

Backup calls

Note: Backup includes only the recorded audio files with the corresponding call information (date of call, caller/called phone numbers etc). Backup does not include the following information:

  • User accounts created inside MiaRec web interface
  • Rules for automatic sorting of calls into folders

If you are moving MiaRec to other server, then you need to re-create user accounts and sorting rules manually on the new server.

Restore calls from backup

Restoring of calls is easy. Start Restore.cmd (located in C:\Program Files\MiaRec Business\Bin\Scripts).

You will be asked only two questions:

  1. Enter source directory, where backup files are located in

    Type here a directory, where backup was stored, for example, F:\MyBackup or F:\MyBackup\2009-01-05-134556 (depends on what you typed in the 5th question during backup process).

  2. Enter destination directory, where MP3 files should be restored to

    Type here a directory, where you want to save the restored audio files.

    Usually this is C:\Program Files\MiaRec Business\Data\Recordings

When restore process is completed, you will be able to see the restored calls inside MiaRec web-interface.

Restore calls

Live monitoring

Live Monitoring is a feature of MiaRec, which allows supervisors to listen to active calls in real-time.

When you select an active call inside MiaRec, you will see "Live Monitoring" link inside call details pane (see below screenshot).

Live Monitoring

A click on "Live Monitoring" link will open Live Player application, which will allow supervisor to listen to active calls in real-time (see below screenshot).

Live Player

Note: Live Player application should be installed on supervisor's computer in advance.

MiaRec.ini configuration file

Rarely used yet advanced configuration of MiaRec is done via configuration file MiaRec.ini (see C:\Program Files\MiaRec Business\Bin\MiaRec.ini).

MiaRec.ini has a standard INI file format (see Wikipedia: INI file format).

The basic format is following:

# This line is a comment
; This is also a comment
[Section String]
Key Name = Value String

Where:

Some of most important configuration parameters are described in documentation. Others (rarely used) are described inside INI file itself in comments.

MiaRec reads the configuration file during a start or upon a request from Telnet console. This means that "MiaRec" service should be restarted after INI file is modified. Alternatively, instead of restarting the service, it is possible to send command "reload config" from Telnet console. The latter method is recommended when there are active calls, which are recorded at the moment.

Advanced recording rules

On this page:

Introduction

MiaRec supports very powerful recording filters, which allow to:

  • specify which calls to record and which to ignore depending on call parameters (caller/callee ip-address, mac-address, telephone number etc.)
  • change a default file naming for calls (for example, phones can be united into groups by their ip-addresses and every group is stored inside own directory)

Recording filters are specified inside section [Filters::OnCallStart] in MiaRec.ini configuration file.

Example:

[Filters::OnCallStart]

filter1 condition = caller-number = '100' OR callee-number = '100'
filter1 action    = record

filter2 condition = caller-number = '200' OR callee-number = '200'
filter2 action    = record

filter3 condition = caller-number = '300' OR callee-number = '300'
filter3 action    = record

default_action    = ignore

In this example only those calls will be recorded, which are made from/to phones 100, 200 or 300.

All other calls will be ignored (see default_action = ignore).

Note, starting from version 5.0 MiaRec supports configuring per-user recording rules via web interface. These per-user rules are executed after recording filters in INI file. Recording filters from INI file are always executed first. If one of filter's condition matches, then per-user rules are not executed. This allows to configure some advanced global ignore rules, like "ignore all internal calls":

[Filters::OnCallStart]

# Ignore all internal calls, where both caller and called phone numbers are 3 digits.
filter_internal_calls_action     = ignore
filter_internal_calls_condition  = caller-number LIKE '___' AND callee-number LIKE '___'

Syntax of filters

Syntax of filters is following:

<unique-name-of-filter>condition  = CONDITION
<unique-name-of-filter>action     = [ record | ignore ]
<unique-name-of-filter>filename   = FILENAME-FORMAT

Each filter has unique name and consits of three lines: action, condition and filename. The last line (filename) is optional.

Name of filter

Each recording filter should have unique name. For example:

[Filters::OnCallStart]

filter1_condition = caller-number = 12345
filter1_action = record

filter2_condition = caller-ip = 10.0.0.0/24
filter2_action = record
filter2_filename = C:\Calls\Network2\%{setup-time#%Y%m%d%H%M%S}.mp3

my new filter condition = caller-ip = 10.0.5.0/24
my new filter action = ignore

In this example three filters are specified with the following names:

  • filter1_
  • filter2_
  • my new filter

Filter name may contain letters, digits, underscore and space characters.

Condition of filter

condition is a logical expression. Example:

filter1 condition = caller-ip = 192.168.0.1

filter2 condition = caller-ip >= 192.168.0.10 AND caller-ip <= 192.168.0.20

filter3 condition = caller-number LIKE '011%'

filter4 condition = caller-ip = 10.0.0.5 AND NOT (callee-ip = 10.0.0.1 OR callee-ip = 10.0.0.2)

Read Syntax of filter condition for details.

Action of filter

action specifies what to do with a call. Following actions are supported:

ActionDescription
record

Record the call, which matches that filter's condition.

If filename line exists, then call will be recorded with specified name, otherwise the default file name will be used.

ignoreIgnore a call (do not record it). Audio file for that call will not be stored on disk and normally such call will not be visible inside MiaRec web-interface. But, optionally, it is possible to show ignored calls inside MiaRec web-interface (see SaveCDRsForIgnoredCalls). 

Filename

filename specifies a file name format for calls, which match the filter's condition. It is optional. If it is omitted, then a default file name format is used as specified in section [Recording] parameter FileNameFormat. A syntax of this field is the same (see File name format).

Default action

Note, starting from version 5.2 a default action is configured inside web-interfaces. Settings for default action inside INI file are ignored during normal system operation. Although they are used when MiaRec recorder functions without a database.

For calls, which do not match any of recording filters, a default action is performed. Default action may be record or ignore. Optionally, a default file name format (default_filename) can be specified.

Example:

[Filters::OnCallStart]

filter1_condition = caller-number = '123456' OR callee-number = '123456'
filter1_action    = record

default_action    = ignore

In above example only phone with number '123456' will be recorded. All other calls will be ignored (see default_action = ignore).

Optionally, you can specify default_filename. This parameter will override the one, which is specified inside FileNameFormat in section [Recording]

Example:

[Filters::OnCallStart]

filter1_condition = caller-number = '123' OR callee-number = '123'
filter1_action    = record
filter1_filename  = C:\Phone123\%{setup-time#%Y%m%d%H%M%S}.mp3

default_action    = record
default_filename  = C:\OtherPhones\%{setup-time#%Y%m%d%H%M%S}.mp3

In this example, calls with number 123 will be stored inside directory C:\Phone123\.

All other calls will be stored inside directory C:\OtherPhones\.

Note, if a default action is omitted, then it has implicit value record.

Order of filters

The order of filters is important when a call may match multiple filters. In this case the first matched filter is used.

For example, we have following filters:

[Filters::OnCallStart]

filter1_action     = record
filter1_condition  = caller-ip = '192.168.0.0/24'

filter2_action     = ignore
filter2_condition  = caller-port = 5060

And our call has caller-ip equal to 192.168.0.5 and caller-ip equal to 5060.

Such call will match a condition of both filters, but action of the first one will be pefrormed (record).

If you change the order of filters inside INI file, like:

[Filters::OnCallStart]

filter2_action     = ignore
filter2_condition  = caller-port = 5060

filter1_action     = record
filter1_condition  = caller-ip = '192.168.0.0/24'

Then the mentioned call will be ignored because first matched filter has action ignore.

Troubleshooting

When recording filters are not working as you expected, then use the following recommendations:

  • Look at Windows Event Log (Control Panel -> Administration -> Event Viewer). If syntax of recording filter is incorrect, MiaRec will write an error message to Windows Event Log.
  • Change SaveCDRsForIgnoredCalls parameter inside MiaRec.ini to 1. Normally, ignored calls are not visible inside MiaRec calls history. When SaveCDRsForIgnoredCalls = 1, the ignored calls will be shown inside MiaRec with a special icon and message "Ignored by filters". This will allow you to see if the problem is in your filters. Read details here: SaveCDRsForIgnoredCalls.
  • Verify that recording filters have phone number/name in the same format as they appear inside MiaRec web-interface. Sometimes you may expect that your phones have extension 2XX (for example), but, in reality, they are 92XX (with additional prefix). MiaRec extracts phone numbers from voip signaling messages, which are sent by your phones. You should create recording filters with exactly the same phone numbers as they are visible to MiaRec.

Post-recording filters

MiaRec supports post-recording filters. In a contrast to regular recording filters, which are executed when call is started, the port-recording filters are executed when call is completed.

Post-recording filters allows to do a post-processing of a call. For example, delete automatically calls, which are shorter than 5 seconds. Or move completed calls to other location (to network drive).

Post-recording filters are configured inside section [Filters::OnCallStop] in MiaRec.ini configuration file.

Example of post-recording filters:

[Filters::OnCallStop]

filter1_codition = duration < 5
filter1_action = delete

default_action = rename
default_filename  = \\my-storage\Calls\%{filename}

In this example, short calls (shorter than 5 seconds) are removed automatically. Remaining calls are moved to network storage directory \\my-storage\Calls.

Syntax of port-recording filters is similar to regular recording filters (see Recording filters).

This page describes only differences between regular filters and port-recording filters.

Action of post-recording filters

Post-recording filters support the following actions:

ActionDescription
renameRename or move to other location the audio file after call is completed.
deleteDelete a call after it is completed.
recordStore a call as normal. Do not do any modification of a call after it is completed.

Call parameters

Post-recording filters support all call parameters, which are supported in regular recording filters (see Syntax of filter condition), plus additional parameters, listed in the following table:

Call parameterDescription
alerting-time

Date/time when phone started ringing.

Format: YYYY-mm-DD HH:MM:SS

Where:

  • YYYY is a year
  • mm is a month (1-12)
  • DD is a day (1-31)
  • HH is an hour (0-23)
  • MM is a minute (0-59)
  • SS is a second (0-59)

Example:

alerging-time = 2007-06-10 13:45:51
connect-time

Date/time when call was answered.

Format: YYYY-mm-DD HH:MM:SS

disconnect-time

Date/time when call was disconnected.

Format: YYYY-mm-DD HH:MM:SS

duration

Duration of voice part of a call in seconds.

This is a difference beween connect-time and disconnect-time.

Examples:

duration < 5
duration >= 30
total-duration

Total duration of a call in seconds.

This is a difference beween setup-time and disconnect-time.

Examples: 

total-duration < 5
call-state

Phase (state) of the call. It is a numeric value, one of:

  • 0 - Idle
  • 1 - Initiated. The first phase of a call: the caller sent invitation to the callee
  • 2 - Accepted. The callee received invitation and confirmed this
  • 3 - Alerting. The callee started ringing
  • 4 - Connected. The call was answered
  • 5 - Disconnecting. The call was initiated for disconnecting by one of  parties
  • 6 - Disconnected. The call was completed (disconnected)
  • 7 - Hold. The call was put on Hold
  • 8 - Transferred. The call was transferred to the third party

Example:

call-state = 7

Example of post-recording filters

[Filters::OnCallStart]

filter1_condition = caller-number = '123456' OR callee-number = '123456'
filter1_action    = record
filter1_filename  = C:\MyCalls\%{setup-time#%Y%m%d%H%M%S}.mp3

default_action    = ignore


[Filters::OnCallStop]

default_action    = rename
default_filename  = D:\MyRecordings\%{filename}

Above example demonstrates both regular recording filters (section [Filters::OnCallStart]) and post-recording filters (section [Filters::OnCallStop]):

  • Phone with number '123456' will be recorded. This is defined in the following lines:
    filter1_condition = caller-number = '123456' OR callee-number = '123456'
    filter1_action    = record
    
  • Audio files for this phone will be stored initially inside directory C:\MyCalls\. See:
    filter1_filename  = C:\MyCalls\%{setup-time#%Y%m%d%H%M%S}.mp3
  • All other calls will be ignored. See:
    [Filters::OnCallStart]
    default_action = ignore
  • When calls are completed, audio files will be moved to directory D:\MyRecordings\. See:
    [Filters::OnCallStop]
    default_action = rename
    default_filename  = D:\MyRecordings\%{filename}

Syntax of recording filter condition

On this page:

Syntax

Condition of recording filter has following syntax:

<filter-name> condition = [ NOT ]  EXPRESSION  [ AND | OR ] [ ( ] EXPRESSION [ ) ] ...

Where, EXPRESSION is:

CALL-PARAMETER  [ = | > | >= | < | <= | <> | != | LIKE | RLIKE ]  [ VALUE | CALL-PARAMETER ]
  • CALL-PARAMETER is a call parameter, like caller-ip, caller-number, duration etc.
  • VALUE is a literal value, to which a call parameter is compared, for example, 1234, "Jonh Smith" etc.
  • =, >, >=, <, <=, <>, !=, LIKE and RLIKE are comparison operators.

Examples of recording filter condition:

filter1 condition = caller-ip = 192.168.0.1

filter2 condition = caller-number = 1234 OR caller-number = 5678

filter3 condition = caller-ip = 10.0.0.0/24 AND NOT callee-ip = 192.168.1.2

filter4 condition = (caller-number = 100 OR caller-number = 200) AND callee-number <> 300 

filter5 condition = caller-number LIKE '011%'

filter6 condition = caller-number RLIKE '^011(22|34).*$'

Call parameters

The following table lists all supported call parameters.

Call parameterDescription

caller-ip

callee-ip

IP-address of caller/callee

Formats:

  • x.x.x.x
  • x.x.x.x/y.y.y.y
  • x.x.x.x/z

where:

  • x.x.x.x is ip-address
  • y.y.y.y is a network mask in dot notation, like 255.255.255.0
  • z is a network mask in CIRD notation (prefix length), like 24 (which is equivalent to 255.255.255.0).

Examples:

caller-ip = 192.168.0.1
caller-ip > 10.0.1.5 AND caller-ip < 10.0.1.20
callee-ip = 10.0.2.0/255.255.255.0
callee-ip = 10.0.2.0/24

caller-port

callee-port

IP port

Examples:

caller-port = 5060
caller-port = 1720 OR callee-port = 1720

caller-mac

callee-mac

MAC-address.

Format: XX-XX-XX-XX-XX-XX

Examples:

caller-mac = 01-02-34-56-AF-F5

caller-number

callee-number

Phone number

Examples:

caller-number = 123456
caller-number = '+100' OR callee-number = '+100'
caller-number LIKE '011%'

caller-name

callee-name

Name of phone.

The value of this parameter depends on voip signaling protocol (SIP, H.323, Skinny etc).

Examples:

caller-name = "John Smith"
caller-name = "Marry" OR callee-name "Marry"

caller-id

callee-id

Id of phone.

The value of this parameter depends on voip signaling protocol (SIP, H.323, Skinny etc).

Examples:

caller-id = user1@sip.example.com
caller-id = Phone41 OR callee-id = Phone41

agent-id

agent-name

Id and Name of Agent.

These parameters are available only when Avaya TSAPI integration is enabled.

Examples:

agent-id = 50001
agent-name = 'John Smith'

transfer-from-number

transfer-from-name

transfer-from-id

Number, name and id of phone, from which the call was transferred.

The value of this parameter depends on voip signaling protocol (SIP, H.323, Skinny etc).

Examples:

transfer-from-number = 123456
transfer-from-name = 'John Smith'

transfer-to-number

transfer-to-name

transfer-to-id

Number, name and id of phone, to which the call was transferred.

The value of this parameter depends on voip signaling protocol (SIP, H.323, Skinny etc).

Examples:

transfer-to-number = 12456
transfer-to-name = 'John Smith'
setup-time

Date/time when call was started

Format: YYYY-mm-DD HH:MM:SS

Where:

  • YYYY is a year
  • mm is a month (1-12)
  • DD is a day (1-31)
  • HH is an hour (0-23)
  • MM is a minute (0-59)
  • SS is a second (0-59)

Example:

setup-time = 2007-06-10 13:45:51
voip-protocol

Voip protocol of the call. It is a numeric value, one of:

  • 0 – Unknown (not recognized protocol). Call is recorded from RTP packets
  • 1 - SIP
  • 2 - H.323
  • 4 - SCCP (Cisco Skinny)
  • 5 - MGCP
  • 6 - Avaya (H.323 protocol with proprietary extensions)
  • 7 - Nortel UNISTIM
  • 8 - TAPI
  • 9 - MGCP PRI Backhaul (it is used between Cisco CCM and Voice Gateway)
  • 10 - Alcatel (proprietary protocol used by Alcatel OmniPCX)

Example:

voip-protocol <> 0
sip-header-invite

Value of specific SIP header inside INVITE message. The name of header is specified after hash (#) symbol.

Examples:

sip-header-invite#User-Agent LIKE "Asterisk%"

Call parameters can be compared to literal values or to other call parameters, like:

caller-ip = 10.0.0.1
caller-port = callee-port

Literal values

Literal values are contacts, which are compared to call parameters.

Example:

caller-number = '123456789'

In above example a literal value '123456789' is compared to call parameter caller-number.

If a literal value contains space characters, then it should be enclosed into single (') or double (") quotes. For example:

caller-number = 123456789            <-- OK

caller-number = '123456789'          <-- OK

caller-name   = "John Smith"         <-- OK

caller-name   = John Smith           <-- Not valid

If a literal value itself contains a quote character, for example, d’Arnaud, then use following rules:

  • If a literal value contains either a single or double quote character, but not both at the same time, then enclose the value into different quotes, like:

    caller-name = "d'Arnaud"
    
    caller-name = 'Using double quotes charcter (")'
  • If a literal value contains both single and double quote characters, precede them with a special escape character ‘\’, like:

    caller-name = 'd\'Arnaud'
    
    caller-name = "Using double quotes charcter (\")"
  • If a literal value contains escape character '\', you must double it, like:

    caller-name = "Sample \\ name"
    

Comparison operators (=, >, < etc)

The following table lists all supported comparison operators.

OperatorDescriptionExamples

=

==

Equal to
caller-ip = 192.168.0.1
callee-port == 5060

<>

!=

Not equal to
caller-ip <> 10.0.0.1
callee-port != 5060 

>

Greater than
caller-ip > 10.0.0.10

<

Less than
caller-port < 3000

>=

Greaten than or equal to
caller-ip >= 192.168.0.1

<=

Less than or equal to
caller-ip <= 192.168.0.50

LIKE

Simple pattern matching
caller-ip LIKE '192.168.0.%'

NOT LIKE

Negation of simple pattern matching
caller-number NOT LIKE '011%'

RLIKE

Pattern matching using regular expressions (REGEX)
caller-number RLIKE '^011(22|34).*$'

NOT RLIKE

Negation of Pattern matching using regular expressions (REGEX)
caller-ip NOT RLIKE '^192\.168\.(0|1)\..*$'

Logical opertors (AND, OR, NOT)

Complex expessions can be created with the help of logical operators (AND, OR, NOT etc).

OperatorDescriptionExamples

AND

&&

Logical AND
caller-ip=192.168.0.1 AND caller-port=5060
caller-ip=10.0.0.1 && callee-ip=10.0.0.20

NOT

!

Negates value
NOT (caller-port > 1024 AND caller-port < 6000)
! (caller-port < 1024 OR caller-port > 6000)

OR

||

Logical OR
caller-ip=10.0.0.1 OR callee-ip=10.0.0.1
caller-ip=10.0.0.1 || callee-ip=10.0.0.1

Prentheses "(" and ")" are supported inside expressions, like:

caller-ip=192.168.0.1 AND ( callee-ip = 10.0.0.1/24 OR callee-ip = 80.25.23.10 )

Simple pattern matching (LIKE)

Pattern matching comparison supports following wildcard characters:

CharacterDescription
%

Matches any number of characters, even zero characters

Examples:

  • caller-name LIKE 'David%'

    ... will match David, Davidson, but not Davi

  • caller-name LIKE 'D%d%'

    ... will match David, Davidson, Dady

_

Matches exactly one character

Examples:

  • caller-name LIKE 'D_vi_'

    ... will match David, but not Davidson

  • caller-name LIKE 'D__vi_'

    ... will match Daavid, but not David

To test for literal instances of a wildcard character, precede it by the escape character '\'. 

StringDescription

\%

Matches exactly one '%' character

  • caller-name LIKE 'David\%'

    ... will match David%

\_

Matches exactly one '_' character

  • caller-name LIKE 'David\_'

    ... will match David_

\\

Matches exactly one '\' character

  • caller-name LIKE 'David\\'

    ... will match David\

Regular expressions pattern matching (RLIKE)

A regular expression is a powerful way of specifying a pattern for a complex search.

Examples:

callee-number RLIKE '^011(22|34).*$'

... will match any call, which was made to phone number starting either with 01122 or 01134

caller-ip NOT RLIKE '^192\.168\.(0|1)\..*$'

... will match any call, which was originated from IP 192.168.0.* or 192.168.1.*

MiaRec uses Henry Spencer's implementation of regular expressions, which is aimed at conformance with POSIX 1003.2.

Metacharacters

A regular expression for the RLIKE operator may use any of the following metacharacters and constructs:

MetacharacterDescription
.

Matches any single character. For example:

  • a.c

    ... will match  "abc", but not "ac" or "abbc"

[  ]

A bracket expression. Matches a single character that is contained within the brackets. For example:

  • [abc]

    ... will match "a", "b" or "c".

  • [hc]at

    ... will match "hat" and "cat".

A '-' character between two other characters forms a range that matches all characters from the first character to the second. For example:

  • [0-9]

    ... will match any decimal digit.

  • [a-z]

    ... will match any lowercase letter from "a" to "z".

These forms can be mixed:

  • [abcx-z]

    ... will match "a", "b", "c", "x", "y" or "z".

To include a literal '-' character, it must be written first or last, for example, [abc-], [-abc].

To include a literal ] character, it must immediately follow the opening bracket [, for example, []abc].

[^  ]

Matches a single character that is not contained within the brackets. For example:

  • [^abc]

    ... will match any character other than "a", "b", or "c".

  • [^a-z]

    ... will match any single character that is not a lowercase letter from "a" to "z".

As above, literal characters and ranges can be mixed, like [^abcx-z]

*

Matches the preceding element zero or more times. For example:

  • ab*c

    ... will match "ac", "abc", "abbbc" etc.

  • [0-9]*

    ... will match "" (empty string), "0", "1", "2", "14", "502", "98541654", and so on (any combination of digits).

(  )*

Matches zero of more instances of the characters sequence, specified inside parentheses. For example:

  • (ab)*

    ... will match "", "ab", "abab", "ababab", and so on.

  • (1234)*

    ... will match "", "1234", "12341234", "123412341234", and so on.

+

Matches the preceding element one or more times. For example:

  • ba+

    ... will match "ba", "baa", "baaa", and so on.

  • 0[0-9]+

    ... will match "00", "01", "02", "001", "01234", "09876543210", or any other combination of digits with preceding 0 and minimum length equal to two character.

?

Matches the preceding element zero or one time. For example:

  • ba?

    ... will match "b", or "ba", but not "baa"

  • 0[0-9]?

    ... will match "0", "01", "02", "03", and so on.

|

The choice (aka alternation or set union) operator matches either the expression before or the expression after the operator. For example:

  • abc|def

    ... will match "abc" or "def".

  • (0|011)[1-9]+

    ... will match phone number, which starts with either 0 or 011.

{n}

Matches the preceding element exactly n times. For example: 

  • a{3}

    ... will match "aaa", but not "a", "aa" or "aaaa"

  • [0-9]{5}

    ... will match "01234", "56789" or any other combination of digits, which has lenght 5 characters.

{m, n}

Matches the preceding element at least m and not more than n times. For example:

  • a{3,5}

    ... will match "aaa", "aaaa", "aaaaa", but not "aa" or "aaaaaaaa".

{m, }

Matches the preceding element at least m times. For example:

  • a{2,}

    ... will match "aa", "aaa", "aaaa", and so on.

^

Matches the beginning of a string. For example:

  • ^[hc]at

    ... will match "hat" and "cat", but only at the beginning of the string

$

Matches the end of a string. For example:

  • [hc]at$

    ... will match "hat" and "cat", but only at the end of the string not "David Bowie"

  • ^[hc]at$

    ... will match "hat" and "cat", but only when the string contains no other characters

\

Backslash (\) character is used for escaping metacharacters. For example:

  • 1+2

    ... will match "12", "112", "11112", but not "1+2", because "plus" character has a special meaning (see above).

  • 1\+2

    ... will match exactly "1+2". In this example, "plus" character is escaped with backslash character (\+).

POSIX character classes

The POSIX standard defines some classes or categories as shown in the following table

POSIX character classASCII equivalentDescription
[:alnum:][A-Za-z0-9]Alphanumeric characters
[:alpha:][A-Za-z]Alphabetic characters
[:blank:][ \t]Space and tab
[:cntrl:][\x00-\x1F\x7F]Control characters
[:digit:][0-9]Digits
[:graph:][\x21-\x7E]Visible characters
[:lower:][a-z]Lowercase letters
[:print:][\x20-\x7E]Visible characters and spaces
[:punct:][][!"#$%&'()*+,./:;<=>?@\^_`{|}~-]Punctuation characters
[:space:][ \t\r\n\v\f]Whitespace characters
[:upper:][A-Z]Uppercase letters
[:xdigit:][A-Fa-f0-9]Hexadecimal digits

POSIX character classes can only be used within bracket expressions ([  ]). For example:

 [[:upper:]ab] 

... will match the uppercase letters and lowercase "a" and "b".

REGEX Tester utility

Writing a correct REGEX expression may be a challenging task. We recommend to use a special program REGEX Tester for testing RLIKE expressions for any syntax errors.

Download it from our web-site and start on your computer. Type your regular expression and a tested string into a program and click "Test" button. Inside "Result" field you will see either TRUE or FALSE. TRUE means that the tested string matches the expression. FALSE means that the tested string doesn't match the expression. In the case of syntax error in a regular expression, you will see a corresponding error instead of TRUE/FALSE.

REGEX Tester

E-mail notification

MiaRec sends notification by e-mail when one of the following events occurs:

  • MiaRec service is started or stopped
  • MiaRec service is automatically restarted becaues of application crash
  • License is changed because of dongle was disconnected or trial period expired
  • License is exceeded (some calls were not recorded because of not enough licenses)

Configuration of e-mail notification is done via MiaRec.ini configuration file (section [Mail::Notification]).

Example:

[Mail::Notification]

Host     = mail.example.com

Login    = user@example.com

Password = password

From     = miarec@example.com

To       = admin@example.com

SubjectPrefix = %{app-name} [%{computer-name}]

LicenseExceedInterval = 30

Where:

  • Host is an address of SMTP mail server. It maybe be in form of:
    • ip-address (like 10.0.0.1)
    • domain name (like mail.example.com)
    • ip-address/domain-name with port (like 10.0.0.1:25 or mail.example.com:25)
  • Login is a mail account (if mail server requires an authentication).
  • Password is a password for mail account
  • From is an address, which will be used as a sender for e-mail notifications
  • To is an address of recepient
  • SubjectPrefix is a prefix, which will be added to the subject of e-mail. This prefix allows to distinguish messages from multiple MiaRec servers. %{app-name} will be replaced by name of application as specified inside section [Main] option Name. %{computer-name} wil be replaced by NETBIOS name of a computer, on which MiaRec is running.
  • LicenseExceedInterval is a minimum inverval between two e-mail notifications, which are sent by MiaRec because of license exceeding. This option allows to prevent an overflow of mail box with too many notifications.

Troubleshooting

Most frequent issues

I hear only one side when I playback a call

Wave form

This problem can be caused by one of the following:

  1. Your headphones play incorrectly in stereo audio
  2. Firewall is running on your computer, which blocks one way of network traffic
  3. QoS (802.1p) is not supported by Network Interface Card
  4. Out-of-date drivers for Network Interface Card
  5. One of network cables, which are connected to HUB, is broken
  6. Rtp packets are non-symmetric or Rtp SyncId is changed unexpectedly in a middle of a call
  7. Changes in voip protocol or "bug" inside MiaRec

 


1. Your headphones play incorrectly in stereo audio

First of all, check if your headphones play correctly in audio stereo format.

By default, MiaRec saves audio in stereo format. One call party is recorded in the left audio channel and the other party is recorded in the right audio channel.

Try to play the file on another computer and using different headphones.

If you cannot do that, then send a sample audio file to us for review. We will tell you for sure if your audio file contains two sides or only one side.

 


2. Firewall is running on your computer, which blocks one way of network traffic

Some firewalls may block one side of the conversation. Try to disable firewall on your computer and make a test call again.

Note, many antiviruses today include own built-in firewall. Check settings of your antivirus and make sure that firewall is disabled or configured correctly.

Below you will find step-by-step configuration guides for some known firewalls:

 


3. QoS (802.1p) is not not supported by Network Interface Card

This problem sometimes occurs with 3Com network interface cards.

Read 802.1p support on Network Card

 


4. Out-of-date drivers for Network Interface Card

This problem occurs with some old drivers on Windows XP.

On newer operating systems (Vista, 7, 2008) such problem should not occur.

Read Update drivers of Network Card

 


5. One of network cables, which are connected to HUB, is broken

Such problem occurs only if HUB is used. Switch with Port Mirroring is not affected by this problem.

Try to replace network cables, which are connected to HUB.

Or at least rotate them (for example, exchange cables "Modem -> Router" and "HUB -> Computer").

Make sure that all cables are firmly plugged into connectors on all devices.

 


6. Rtp packets are non-symmetric or Rtp SyncId is changed unexpectedly in a middle of a call

Some voip phones use non-symmertic ports for sending and receiving of RTP packets.

Others may change Rtp SyncId in a middle of call.

Both these reasons will cause a situation when MiaRec creates two files for a single call.

You will see inside MiaRec two call recordings instead of one.

The first file will have audio from one side of the conversation and the second file will have audio from the other side. The second file may have no audio at all if your license doesn't allow recording of more than one concurrent call.

Below you will find a workaround for this non-standard behavior of your phone.

But we suggest you to contact us and collect log as described in point 7 because this issue may be caused also by a bug inside MiaRec.

 

Workaround for MiaRec Solo:

Go to Settings -> Advanced and enable following options:

  • Ignore UDP port change
  • Ignore RTP SyncSourceId change

 

Workaround for MiaRec Business:

Open configuration file MiaRec.ini and change following options:

  • IgnoreRtpPortChange=no
  • IgnoreRtpSyncInfoChange=no

To:

  • IgnoreRtpPortChange=yes
  • IgnoreRtpSyncInfoChange=yes
It is not recommended to change both options at the same time. Usually a change of only one option will solve the issue. Situation, when both options should be changed to "yes" is very rare.

 


7. Changes in voip protocol or "bug" inside MiaRec

If none of the above helped, please collect network log and send it to our support team for investigation.

It doesn't work as expected

It may be a number of reasons why MiaRec doesn't work as expected.

What symptoms do you have?

  • Symptom 1. It doesn't record calls at all. When you make a call, MiaRec shows nothing.
  • Symptom 2. MiaRec records call, but you can only hear one side of the conversation.
  • Symptom 3. MiaRec records call, but each party is stored in a separate file.

Symptom 1. It doesn't record calls at all. When you make a call, MiaRec shows nothing.

Check if you correctly installed a Switch with port mirroring

In order to record calls, you should connect your IP Phones through a Switch with port mirroring support.

See How it works.

Check if you have any firewall applications on your computer, like ZoneAlarm, etc.

Some firewalls may block voip traffic, which is sent from ip phones. They treat such traffic as unwanted.

Try to shutdown any firewall applications on your computer and check if MiaRec records your calls after that.

Below you will find instructions for some well-known firewalls:

If your firewall is not listed here, please, contact us at support@miarec.com and we will send you instructions for your firewall.

Send us details of your network

Describe in details:

  • all nework devices you have and how they are connected between each other.
  • operating system
  • name of voip service provider

Send e-mail to support@miarec.com and we will investigate the problem and send you further instructions.

Symptom 2. MiaRec records call, but you can only hear one side of the conversation.

Read: I hear only one side when I playback a call

Symptom 3. MiaRec records call, but each party is stored in separate files.

Collect network log and send it to our support team for investigation of the issue.

I forgot password for web access

Access to MiaRec web-interface is protected with login and password.

Forgot password

If you forgot a password for administrator account, then you need to do following:

  • Go to directory C:\Program Files\MiaRec Business\Bin\Scripts
  • Run CreateAdminAccount.cmd script

You will be asked 3 simple questions:

  1. Enter name of group for this user
  2. Entern login name
  3. Enter password

See below screenshot for details:

CreateAdminAccount

After you reply to all three questions, the new account with administration rights will be created. Then you can login to MiaRec with newly created login/password.

Note: For security reasons MiaRec never stores passwords in open text inside database. Passwords are always encrypted with one-way hash algorithm. It is not possible to decrypt a password. That's why you need to create a new administrator account inside MiaRec. After you login to MiaRec with newly created account, you can reset a password for a previous admin account.

Partial record (license limit)

"Partial record (license limit)" means one of the following:

  • Either you have more concurrent calls than your license allows to record
  • Or you use an evaluation license, which allows you to record only first 2 minutes of every call

Partial record (license limit)

Audio for such partially recorded calls is not stored on disk (when an evaluation license is used, then only first 2 minutes are stored on disk).

To fix this issue you need to purchase appropriate number of recording licenses.

Update drivers for Network Interface Card (NIC)

Some old drivers (for example, from Broadcom) do not support promiscuous mode.

This causes following issues:

  • one-way audio (when only one side of conversation is recorded)
  • no audio is recorded at all (both sides of conversation are not recorded).

Promiscuous mode is a special mode of Network Interface Card, which allows sniffering packets. MiaRec uses packet sniffing technology for recording calls.

When promiscuous mode is not supported by NIC, a call recording is not possible.

Fortunately, all network adapters that we know do support promiscuous mode.

But some old drivers have promiscuous mode disabled by default. It is necessary to update driver of NIC to the latest version, which is available on an official vendor's web-site.

It is important to download drivers directly from web-site of NIC's manufacturer (Broadcom, 3Com, Intel etc) rather than from manufacturer of computer (Dell, HP, Sony etc). Sometimes web-site of computer's manufacturer contains old drivers.

Windows Event Log - monitoring status of MiaRec

In a case of error MiaRec writes detailed information to Windows Event Log.

Open Control Panel -> Administrative Tools -> Event Viewer and select Windows Logs -> Application.

When MiaRec service is started, it writes information about own version and number of licenses, which are installed on the server. See below screenshot for details:

MiaRec inside Event Viewer

Also MiaRec writes information about any errors. Examples of such errors:

  • Live monitoring doesn't work becaues port 554 is busy by other application
  • Some calls are not recorded because of not enough licenses
  • Audio file cannot be stored on a network drive because of write permission issues.

Windows Event Log contains also messages from PostgreSQL database. This is a database, which is used by MiaRec for storing call information.

Collecting network log

This article contains step-by-step instructions for collecting network log. This logging information will help us to investigate and fix the problem, which you probably faced with.

MiaRec is intended to support a wide range of Voip phones and IP PBX systems. Sometimes it happens that telephone equipment vendor uses non-standard technique or simply has a bug in a software/firmware. And in this case MiaRec records calls incorrectly.

We appreciate your effort in collecting the log information, which will help us to make our product better.

Download freeware network sniffer Wireshark from http://www.wireshark.org/download.html, install on your computer and start it.

You will see the main dialog of Wireshark as shown on below screenshot:

Wireshark 

The process of collecting log consits of the following steps:

  1. Start logging
  2. Make test call
  3. Stop logging
  4. Save collected log into the file
  5. Send log file to us by e-mail

Open menu Capture->Interfaces:

Wireshark

You will see network interfaces, which are available on your server. Something like:

Wireshark

You should choose the network interface which is used for call recording. If you have multiple interfaces and don’t know which to choose, wait for a while and see what interface has a network activity (column “Packets”). On above screenshot you can see that Interface “Intel(R) PRO/100 VE Network Connection” has 541 packets sent/received, while other interfaces have zero or much less network activity.

Click “Capture” button. This will start logging. A capturing dialog will be shown to you:

Wireshark

Now the logging is started and you need to make one or more test calls. When you finish a call, click on "Stop" button. This will stop logging process.

Save the collected log information into a file. Choose menu “File->Save”:

Wireshark

Choose a directory where to save the file and it’s filename:

Wireshark

Click “Save” button.

Compress the resulting file with Zip or Rar archivator and send it by e-mail to support@miarec.com.

Do not send us file, if it is too big (more than 20MB). Instead, we will open for you FTP account on our server and you will upload the file to our FTP server.

Note: Wireshark is a network sniffer. It writes to file all network packets which are sent over your network. The longer you collect log, the bigger file will be produced. Usually a few minutes of log is enough to investigate the problem. So, do not leave the sniffer in running mode for a long time as the size of resulting file may be too large. Anytime you can stop logging and start again to clear the output file.

802.1p support on Network Interface Card (NIC)

This article described how to enable 802.1p tagging support on Ethernet Network Interface Card (NIC) adapter.

When 802.1p support is disabled on a computer, where MiaRec is running, then following issue may occur:

  • one-way audio (when only one side of conversation is recorded)
  • no audio is recorded at all (both sides of conversation are not recorded).

802.1p is is a standard that enables Quality of Service (QoS). QoS gives higher priority to voip audio packets, thus improving a call quality (less delays, less packet loss).

When one of above issues occurs, it is necessary to check if NIC supports 802.1p.

Open properties of your NIC.

And then click on "Configure" button.

Network Interface Card Properties

Check if you have there option "802.1p Support" and make sure it is "Enabled".

Note, if you do not have such option, then do nothing (your NIC supports 802.1p by default).

 

Network Interface Card - 802.1p Support

 

If a problem with audio still exists, please, contact our technical support team by phone or e-mail.

SOAP API